diff --git a/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
index f33a7de..e3e8bdb 100644
--- a/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
+++ b/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
@@ -223,7 +223,7 @@
       }
     }
   },
-  "revision": "20190105",
+  "revision": "20190206",
   "rootUrl": "https://firebasedynamiclinks.googleapis.com/",
   "schemas": {
     "AnalyticsInfo": {
@@ -264,6 +264,21 @@
       },
       "type": "object"
     },
+    "AppPreview": {
+      "description": "Customizable parameters on the app preview page.\nThe text fields no longer need translation.",
+      "id": "AppPreview",
+      "properties": {
+        "openButtonText": {
+          "description": "Text that appears on the button to open up the app. Optional\nDefaults to \"Open\"",
+          "type": "string"
+        },
+        "savePositionText": {
+          "description": "Text that asks if user wants to save place in app. Optional.\nDefaults to \"Save my place in the app. A link will be copied to continue\nto this page\"",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "CreateManagedShortLinkRequest": {
       "description": "Request to create a managed Short Dynamic Link.",
       "id": "CreateManagedShortLinkRequest",
@@ -468,6 +483,10 @@
           "$ref": "AndroidInfo",
           "description": "Android related information. See Android related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)."
         },
+        "appPreview": {
+          "$ref": "AppPreview",
+          "description": "Optional customizable parameters on the app preview page"
+        },
         "desktopInfo": {
           "$ref": "DesktopInfo",
           "description": "Desktop related information. See desktop related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)."
diff --git a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
index a0f67b1..0f2259c 100644
--- a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
+++ b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
@@ -187,6 +187,45 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// AppPreview: Customizable parameters on the app preview page.
+// The text fields no longer need translation.
+type AppPreview struct {
+	// OpenButtonText: Text that appears on the button to open up the app.
+	// Optional
+	// Defaults to "Open"
+	OpenButtonText string `json:"openButtonText,omitempty"`
+
+	// SavePositionText: Text that asks if user wants to save place in app.
+	// Optional.
+	// Defaults to "Save my place in the app. A link will be copied to
+	// continue
+	// to this page"
+	SavePositionText string `json:"savePositionText,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "OpenButtonText") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "OpenButtonText") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *AppPreview) MarshalJSON() ([]byte, error) {
+	type NoMethod AppPreview
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // CreateManagedShortLinkRequest: Request to create a managed Short
 // Dynamic Link.
 type CreateManagedShortLinkRequest struct {
@@ -536,6 +575,9 @@
 	// ate-manually).
 	AndroidInfo *AndroidInfo `json:"androidInfo,omitempty"`
 
+	// AppPreview: Optional customizable parameters on the app preview page
+	AppPreview *AppPreview `json:"appPreview,omitempty"`
+
 	// DesktopInfo: Desktop related information. See desktop related
 	// parameters in
 	// the
diff --git a/servicecontrol/v1/servicecontrol-api.json b/servicecontrol/v1/servicecontrol-api.json
index d646fc3..a52c429 100644
--- a/servicecontrol/v1/servicecontrol-api.json
+++ b/servicecontrol/v1/servicecontrol-api.json
@@ -196,7 +196,7 @@
       }
     }
   },
-  "revision": "20190128",
+  "revision": "20190204",
   "rootUrl": "https://servicecontrol.googleapis.com/",
   "schemas": {
     "AllocateInfo": {
@@ -1021,7 +1021,7 @@
       "id": "Operation",
       "properties": {
         "consumerId": {
-          "description": "Identity of the consumer who is using the service.\nThis field should be filled in for the operations initiated by a\nconsumer, but not for service-initiated operations that are\nnot related to a specific consumer.\n\nThis can be in one of the following formats:\n  project:\u003cproject_id\u003e,\n  project_number:\u003cproject_number\u003e,\n  api_key:\u003capi_key\u003e.",
+          "description": "Identity of the consumer who is using the service.\nThis field should be filled in for the operations initiated by a\nconsumer, but not for service-initiated operations that are\nnot related to a specific consumer.\n\n- This can be in one of the following formats:\n    - project:PROJECT_ID,\n    - project`_`number:PROJECT_NUMBER,\n    - api`_`key:API_KEY.",
           "type": "string"
         },
         "endTime": {
diff --git a/servicecontrol/v1/servicecontrol-gen.go b/servicecontrol/v1/servicecontrol-gen.go
index d9e1b61..4bee850 100644
--- a/servicecontrol/v1/servicecontrol-gen.go
+++ b/servicecontrol/v1/servicecontrol-gen.go
@@ -1561,10 +1561,10 @@
 	// consumer, but not for service-initiated operations that are
 	// not related to a specific consumer.
 	//
-	// This can be in one of the following formats:
-	//   project:<project_id>,
-	//   project_number:<project_number>,
-	//   api_key:<api_key>.
+	// - This can be in one of the following formats:
+	//     - project:PROJECT_ID,
+	//     - project`_`number:PROJECT_NUMBER,
+	//     - api`_`key:API_KEY.
 	ConsumerId string `json:"consumerId,omitempty"`
 
 	// EndTime: End time of the operation.
diff --git a/storage/v1/storage-api.json b/storage/v1/storage-api.json
index 49d0a51..0342a63 100644
--- a/storage/v1/storage-api.json
+++ b/storage/v1/storage-api.json
@@ -26,7 +26,7 @@
   "description": "Stores and retrieves potentially large, immutable data objects.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/storage/docs/json_api/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/KPalWULMnQfaqumeaBhBrVfHFNM\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/5J1bGH010PqoE1O9vmClDRlYmZI\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
     "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
@@ -2766,7 +2766,7 @@
       }
     }
   },
-  "revision": "20181109",
+  "revision": "20190129",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Bucket": {
@@ -2859,6 +2859,7 @@
           "description": "The bucket's IAM configuration.",
           "properties": {
             "bucketPolicyOnly": {
+              "description": "The bucket's Bucket Policy Only configuration.",
               "properties": {
                 "enabled": {
                   "description": "If set, access checks only use bucket-level IAM policies or above.",
@@ -3295,6 +3296,34 @@
       },
       "type": "object"
     },
+    "Expr": {
+      "description": "Represents an expression text. Example: title: \"User account presence\" description: \"Determines whether the request has a user account\" expression: \"size(request.user) \u003e 0\"",
+      "id": "Expr",
+      "properties": {
+        "description": {
+          "description": "An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
+          "type": "string"
+        },
+        "expression": {
+          "description": "Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.",
+          "type": "string"
+        },
+        "kind": {
+          "default": "storage#expr",
+          "description": "The kind of item this is. For storage, this is always storage#expr. This field is ignored on input.",
+          "type": "string"
+        },
+        "location": {
+          "description": "An optional string indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
+          "type": "string"
+        },
+        "title": {
+          "description": "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.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Notification": {
       "description": "A subscription to receive Google PubSub notifications.",
       "id": "Notification",
@@ -3695,7 +3724,8 @@
           "items": {
             "properties": {
               "condition": {
-                "type": "any"
+                "$ref": "Expr",
+                "description": "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."
               },
               "members": {
                 "annotations": {
diff --git a/storage/v1/storage-gen.go b/storage/v1/storage-gen.go
index 53b4e22..641383d 100644
--- a/storage/v1/storage-gen.go
+++ b/storage/v1/storage-gen.go
@@ -449,6 +449,7 @@
 
 // BucketIamConfiguration: The bucket's IAM configuration.
 type BucketIamConfiguration struct {
+	// BucketPolicyOnly: The bucket's Bucket Policy Only configuration.
 	BucketPolicyOnly *BucketIamConfigurationBucketPolicyOnly `json:"bucketPolicyOnly,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "BucketPolicyOnly") to
@@ -475,6 +476,8 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// BucketIamConfigurationBucketPolicyOnly: The bucket's Bucket Policy
+// Only configuration.
 type BucketIamConfigurationBucketPolicyOnly struct {
 	// Enabled: If set, access checks only use bucket-level IAM policies or
 	// above.
@@ -1201,6 +1204,57 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// Expr: Represents an expression text. Example: title: "User account
+// presence" description: "Determines whether the request has a user
+// account" expression: "size(request.user) > 0"
+type Expr struct {
+	// Description: An optional description of the expression. This is a
+	// longer text which describes the expression, e.g. when hovered over it
+	// in a UI.
+	Description string `json:"description,omitempty"`
+
+	// Expression: Textual representation of an expression in Common
+	// Expression Language syntax. The application context of the containing
+	// message determines which well-known feature set of CEL is supported.
+	Expression string `json:"expression,omitempty"`
+
+	// Kind: The kind of item this is. For storage, this is always
+	// storage#expr. This field is ignored on input.
+	Kind string `json:"kind,omitempty"`
+
+	// Location: An optional string indicating the location of the
+	// expression for error reporting, e.g. a file name and a position in
+	// the file.
+	Location string `json:"location,omitempty"`
+
+	// Title: 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.
+	Title string `json:"title,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Description") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *Expr) MarshalJSON() ([]byte, error) {
+	type NoMethod Expr
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Notification: A subscription to receive Google PubSub notifications.
 type Notification struct {
 	// CustomAttributes: An optional list of additional attributes to attach
@@ -1784,7 +1838,11 @@
 }
 
 type PolicyBindings struct {
-	Condition interface{} `json:"condition,omitempty"`
+	// Condition: 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.
+	Condition *Expr `json:"condition,omitempty"`
 
 	// Members: A collection of identifiers for members who may assume the
 	// provided role. Recognized identifiers are as follows:
diff --git a/toolresults/v1beta3/toolresults-api.json b/toolresults/v1beta3/toolresults-api.json
index 85d2303..d88acd5 100644
--- a/toolresults/v1beta3/toolresults-api.json
+++ b/toolresults/v1beta3/toolresults-api.json
@@ -15,7 +15,7 @@
   "description": "Reads and publishes results from Firebase Test Lab.",
   "discoveryVersion": "v1",
   "documentationLink": "https://firebase.google.com/docs/test-lab/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/3PU0tfPO0Ff5odyEdFP_aystsQs\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/4klElBDrVMG1VukQ-i6HEIPiaCI\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -1161,7 +1161,7 @@
       }
     }
   },
-  "revision": "20190128",
+  "revision": "20190207",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AndroidAppInfo": {
@@ -1659,6 +1659,35 @@
       },
       "type": "object"
     },
+    "IndividualOutcome": {
+      "description": "Step Id and outcome of each individual step that was run as a group with other steps with the same configuration.",
+      "id": "IndividualOutcome",
+      "properties": {
+        "outcomeSummary": {
+          "enum": [
+            "failure",
+            "flaky",
+            "inconclusive",
+            "skipped",
+            "success",
+            "unset"
+          ],
+          "enumDescriptions": [
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+          ],
+          "type": "string"
+        },
+        "stepId": {
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ListExecutionsResponse": {
       "id": "ListExecutionsResponse",
       "properties": {
@@ -1788,6 +1817,26 @@
       },
       "type": "object"
     },
+    "MultiStep": {
+      "description": "Details when multiple steps are run with the same configuration as a group.",
+      "id": "MultiStep",
+      "properties": {
+        "multistepNumber": {
+          "description": "Unique int given to each step. Ranges from 0(inclusive) to total number of steps(exclusive). The primary step is 0.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "primaryStep": {
+          "$ref": "PrimaryStep",
+          "description": "Present if it is a primary (original) step."
+        },
+        "primaryStepId": {
+          "description": "Step Id of the primary (original) step, which might be this step.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Outcome": {
       "description": "Interprets a result so that humans and machines can act on it.",
       "id": "Outcome",
@@ -1948,6 +1997,40 @@
       },
       "type": "object"
     },
+    "PrimaryStep": {
+      "description": "Stores rollup test status of multiple steps that were run as a group and outcome of each individual step.",
+      "id": "PrimaryStep",
+      "properties": {
+        "individualOutcome": {
+          "description": "Step Id and outcome of each individual step.",
+          "items": {
+            "$ref": "IndividualOutcome"
+          },
+          "type": "array"
+        },
+        "rollUp": {
+          "description": "Rollup test status of multiple steps that were run with the same configuration as a group.",
+          "enum": [
+            "failure",
+            "flaky",
+            "inconclusive",
+            "skipped",
+            "success",
+            "unset"
+          ],
+          "enumDescriptions": [
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ProjectSettings": {
       "description": "Per-project settings for the Tool Results service.",
       "id": "ProjectSettings",
@@ -2125,6 +2208,10 @@
           },
           "type": "array"
         },
+        "multiStep": {
+          "$ref": "MultiStep",
+          "description": "Details when multiple steps are run with the same configuration as a group. These details can be used identify which group this step is part of. It also identifies the groups 'primary step' which indexes all the group members.\n\n- In response: present if previously set. - In create request: optional, set iff this step was performed more than once. - In update request: optional"
+        },
         "name": {
           "description": "A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build\n\nA PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.\n\n- In response: always set - In create request: always set - In update request: never set",
           "type": "string"
diff --git a/toolresults/v1beta3/toolresults-gen.go b/toolresults/v1beta3/toolresults-gen.go
index e45eebc..36a5f0c 100644
--- a/toolresults/v1beta3/toolresults-gen.go
+++ b/toolresults/v1beta3/toolresults-gen.go
@@ -1184,6 +1184,44 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// IndividualOutcome: Step Id and outcome of each individual step that
+// was run as a group with other steps with the same configuration.
+type IndividualOutcome struct {
+	// Possible values:
+	//   "failure"
+	//   "flaky"
+	//   "inconclusive"
+	//   "skipped"
+	//   "success"
+	//   "unset"
+	OutcomeSummary string `json:"outcomeSummary,omitempty"`
+
+	StepId string `json:"stepId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "OutcomeSummary") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "OutcomeSummary") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *IndividualOutcome) MarshalJSON() ([]byte, error) {
+	type NoMethod IndividualOutcome
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 type ListExecutionsResponse struct {
 	// Executions: Executions.
 	//
@@ -1484,6 +1522,45 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// MultiStep: Details when multiple steps are run with the same
+// configuration as a group.
+type MultiStep struct {
+	// MultistepNumber: Unique int given to each step. Ranges from
+	// 0(inclusive) to total number of steps(exclusive). The primary step is
+	// 0.
+	MultistepNumber int64 `json:"multistepNumber,omitempty"`
+
+	// PrimaryStep: Present if it is a primary (original) step.
+	PrimaryStep *PrimaryStep `json:"primaryStep,omitempty"`
+
+	// PrimaryStepId: Step Id of the primary (original) step, which might be
+	// this step.
+	PrimaryStepId string `json:"primaryStepId,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "MultistepNumber") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "MultistepNumber") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *MultiStep) MarshalJSON() ([]byte, error) {
+	type NoMethod MultiStep
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Outcome: Interprets a result so that humans and machines can act on
 // it.
 type Outcome struct {
@@ -1746,6 +1823,48 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// PrimaryStep: Stores rollup test status of multiple steps that were
+// run as a group and outcome of each individual step.
+type PrimaryStep struct {
+	// IndividualOutcome: Step Id and outcome of each individual step.
+	IndividualOutcome []*IndividualOutcome `json:"individualOutcome,omitempty"`
+
+	// RollUp: Rollup test status of multiple steps that were run with the
+	// same configuration as a group.
+	//
+	// Possible values:
+	//   "failure"
+	//   "flaky"
+	//   "inconclusive"
+	//   "skipped"
+	//   "success"
+	//   "unset"
+	RollUp string `json:"rollUp,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "IndividualOutcome")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "IndividualOutcome") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *PrimaryStep) MarshalJSON() ([]byte, error) {
+	type NoMethod PrimaryStep
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // ProjectSettings: Per-project settings for the Tool Results service.
 type ProjectSettings struct {
 	// DefaultBucket: The name of the Google Cloud Storage bucket to which
@@ -2210,6 +2329,16 @@
 	// and any new value for an existing key will update that key's value
 	Labels []*StepLabelsEntry `json:"labels,omitempty"`
 
+	// MultiStep: Details when multiple steps are run with the same
+	// configuration as a group. These details can be used identify which
+	// group this step is part of. It also identifies the groups 'primary
+	// step' which indexes all the group members.
+	//
+	// - In response: present if previously set. - In create request:
+	// optional, set iff this step was performed more than once. - In update
+	// request: optional
+	MultiStep *MultiStep `json:"multiStep,omitempty"`
+
 	// Name: A short human-readable name to display in the UI. Maximum of
 	// 100 characters. For example: Clean build
 	//
diff --git a/tpu/v1/tpu-api.json b/tpu/v1/tpu-api.json
index aed51d8..9c924d5 100644
--- a/tpu/v1/tpu-api.json
+++ b/tpu/v1/tpu-api.json
@@ -658,7 +658,7 @@
       }
     }
   },
-  "revision": "20181010",
+  "revision": "20190205",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
@@ -855,14 +855,18 @@
           "enum": [
             "HEALTH_UNSPECIFIED",
             "HEALTHY",
-            "UNHEALTHY",
-            "TIMEOUT"
+            "DEPRECATED_UNHEALTHY",
+            "TIMEOUT",
+            "UNHEALTHY_TENSORFLOW",
+            "UNHEALTHY_MAINTENANCE"
           ],
           "enumDescriptions": [
             "Health status is unknown: not initialized or failed to retrieve.",
             "The resource is healthy.",
             "The resource is unhealthy.",
-            "The resource is unresponsive."
+            "The resource is unresponsive.",
+            "The in-guest ML stack is unhealthy.",
+            "The node is under maintenance/priority boost caused rescheduling and\nwill resume running once rescheduled."
           ],
           "type": "string"
         },
diff --git a/tpu/v1/tpu-gen.go b/tpu/v1/tpu-gen.go
index c310407..45a15cb 100644
--- a/tpu/v1/tpu-gen.go
+++ b/tpu/v1/tpu-gen.go
@@ -510,8 +510,12 @@
 	//   "HEALTH_UNSPECIFIED" - Health status is unknown: not initialized or
 	// failed to retrieve.
 	//   "HEALTHY" - The resource is healthy.
-	//   "UNHEALTHY" - The resource is unhealthy.
+	//   "DEPRECATED_UNHEALTHY" - The resource is unhealthy.
 	//   "TIMEOUT" - The resource is unresponsive.
+	//   "UNHEALTHY_TENSORFLOW" - The in-guest ML stack is unhealthy.
+	//   "UNHEALTHY_MAINTENANCE" - The node is under maintenance/priority
+	// boost caused rescheduling and
+	// will resume running once rescheduled.
 	Health string `json:"health,omitempty"`
 
 	// HealthDescription: Output only.
diff --git a/tpu/v1alpha1/tpu-api.json b/tpu/v1alpha1/tpu-api.json
index 2bea016..074b44e 100644
--- a/tpu/v1alpha1/tpu-api.json
+++ b/tpu/v1alpha1/tpu-api.json
@@ -658,7 +658,7 @@
       }
     }
   },
-  "revision": "20181010",
+  "revision": "20190205",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
@@ -855,14 +855,18 @@
           "enum": [
             "HEALTH_UNSPECIFIED",
             "HEALTHY",
-            "UNHEALTHY",
-            "TIMEOUT"
+            "DEPRECATED_UNHEALTHY",
+            "TIMEOUT",
+            "UNHEALTHY_TENSORFLOW",
+            "UNHEALTHY_MAINTENANCE"
           ],
           "enumDescriptions": [
             "Health status is unknown: not initialized or failed to retrieve.",
             "The resource is healthy.",
             "The resource is unhealthy.",
-            "The resource is unresponsive."
+            "The resource is unresponsive.",
+            "The in-guest ML stack is unhealthy.",
+            "The node is under maintenance/priority boost caused rescheduling and\nwill resume running once rescheduled."
           ],
           "type": "string"
         },
diff --git a/tpu/v1alpha1/tpu-gen.go b/tpu/v1alpha1/tpu-gen.go
index 5712b55..205a48f 100644
--- a/tpu/v1alpha1/tpu-gen.go
+++ b/tpu/v1alpha1/tpu-gen.go
@@ -510,8 +510,12 @@
 	//   "HEALTH_UNSPECIFIED" - Health status is unknown: not initialized or
 	// failed to retrieve.
 	//   "HEALTHY" - The resource is healthy.
-	//   "UNHEALTHY" - The resource is unhealthy.
+	//   "DEPRECATED_UNHEALTHY" - The resource is unhealthy.
 	//   "TIMEOUT" - The resource is unresponsive.
+	//   "UNHEALTHY_TENSORFLOW" - The in-guest ML stack is unhealthy.
+	//   "UNHEALTHY_MAINTENANCE" - The node is under maintenance/priority
+	// boost caused rescheduling and
+	// will resume running once rescheduled.
 	Health string `json:"health,omitempty"`
 
 	// HealthDescription: Output only.
