diff --git a/googleapis/api/annotations/http.pb.go b/googleapis/api/annotations/http.pb.go
index e32d3b4f30e71ec7d1db70e1e54ad39dddb8befe..9d57e05848c9bb8f8b75bb17912736ec4652e9b2 100644
--- a/googleapis/api/annotations/http.pb.go
+++ b/googleapis/api/annotations/http.pb.go
@@ -25,14 +25,14 @@ type Http struct {
 	// A list of HTTP configuration rules that apply to individual API methods.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules []*HttpRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules []*HttpRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	// 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.
-	FullyDecodeReservedExpansion bool     `protobuf:"varint,2,opt,name=fully_decode_reserved_expansion,json=fullyDecodeReservedExpansion" json:"fully_decode_reserved_expansion,omitempty"`
+	FullyDecodeReservedExpansion bool     `protobuf:"varint,2,opt,name=fully_decode_reserved_expansion,json=fullyDecodeReservedExpansion,proto3" json:"fully_decode_reserved_expansion,omitempty"`
 	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
 	XXX_unrecognized             []byte   `json:"-"`
 	XXX_sizecache                int32    `json:"-"`
@@ -297,7 +297,7 @@ type HttpRule struct {
 	// Selects methods to which this rule applies.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// Determines the URL pattern is matched by this rules. This pattern can be
 	// used with any of the {get|put|post|delete|patch} methods. A custom method
 	// can be defined using the 'custom' field.
@@ -314,11 +314,11 @@ type HttpRule struct {
 	// `*` 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.
-	Body string `protobuf:"bytes,7,opt,name=body" json:"body,omitempty"`
+	Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"`
 	// 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).
-	AdditionalBindings   []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings" json:"additional_bindings,omitempty"`
+	AdditionalBindings   []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -353,22 +353,22 @@ type isHttpRule_Pattern interface {
 }
 
 type HttpRule_Get struct {
-	Get string `protobuf:"bytes,2,opt,name=get,oneof"`
+	Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"`
 }
 type HttpRule_Put struct {
-	Put string `protobuf:"bytes,3,opt,name=put,oneof"`
+	Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"`
 }
 type HttpRule_Post struct {
-	Post string `protobuf:"bytes,4,opt,name=post,oneof"`
+	Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"`
 }
 type HttpRule_Delete struct {
-	Delete string `protobuf:"bytes,5,opt,name=delete,oneof"`
+	Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"`
 }
 type HttpRule_Patch struct {
-	Patch string `protobuf:"bytes,6,opt,name=patch,oneof"`
+	Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"`
 }
 type HttpRule_Custom struct {
-	Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,oneof"`
+	Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"`
 }
 
 func (*HttpRule_Get) isHttpRule_Pattern()    {}
@@ -581,9 +581,9 @@ func _HttpRule_OneofSizer(msg proto.Message) (n int) {
 // A custom pattern is used for defining custom HTTP verb.
 type CustomHttpPattern struct {
 	// The name of this custom HTTP verb.
-	Kind string `protobuf:"bytes,1,opt,name=kind" json:"kind,omitempty"`
+	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
 	// The path matched by this custom verb.
-	Path                 string   `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
+	Path                 string   `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/authorization_config.pb.go b/googleapis/api/authorization_config.pb.go
index 0d119518fc588aad13b8e06ae22fc15e11503775..419629e44a0e3ee24b73c46949f8fb8185a18323 100644
--- a/googleapis/api/authorization_config.pb.go
+++ b/googleapis/api/authorization_config.pb.go
@@ -31,7 +31,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type AuthorizationConfig struct {
 	// The name of the authorization provider, such as
 	// firebaserules.googleapis.com.
-	Provider             string   `protobuf:"bytes,1,opt,name=provider" json:"provider,omitempty"`
+	Provider             string   `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/configchange/config_change.pb.go b/googleapis/api/configchange/config_change.pb.go
index c1722cd791789b3cfcd8cd4fdaa8fdffee24c608..367846ec6fa929d92ecf3d16f9b2842e2875c22f 100644
--- a/googleapis/api/configchange/config_change.pb.go
+++ b/googleapis/api/configchange/config_change.pb.go
@@ -72,18 +72,18 @@ type ConfigChange struct {
 	// - visibility.rules[selector=="google.LibraryService.CreateBook"].restriction
 	// - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
 	// - logging.producer_destinations[0]
-	Element string `protobuf:"bytes,1,opt,name=element" json:"element,omitempty"`
+	Element string `protobuf:"bytes,1,opt,name=element,proto3" json:"element,omitempty"`
 	// Value of the changed object in the old Service configuration,
 	// in JSON format. This field will not be populated if ChangeType == ADDED.
-	OldValue string `protobuf:"bytes,2,opt,name=old_value,json=oldValue" json:"old_value,omitempty"`
+	OldValue string `protobuf:"bytes,2,opt,name=old_value,json=oldValue,proto3" json:"old_value,omitempty"`
 	// Value of the changed object in the new Service configuration,
 	// in JSON format. This field will not be populated if ChangeType == REMOVED.
-	NewValue string `protobuf:"bytes,3,opt,name=new_value,json=newValue" json:"new_value,omitempty"`
+	NewValue string `protobuf:"bytes,3,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
 	// The type for this change, either ADDED, REMOVED, or MODIFIED.
-	ChangeType ChangeType `protobuf:"varint,4,opt,name=change_type,json=changeType,enum=google.api.ChangeType" json:"change_type,omitempty"`
+	ChangeType ChangeType `protobuf:"varint,4,opt,name=change_type,json=changeType,proto3,enum=google.api.ChangeType" json:"change_type,omitempty"`
 	// Collection of advice provided for this change, useful for determining the
 	// possible impact of this change.
-	Advices              []*Advice `protobuf:"bytes,5,rep,name=advices" json:"advices,omitempty"`
+	Advices              []*Advice `protobuf:"bytes,5,rep,name=advices,proto3" json:"advices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -153,7 +153,7 @@ func (m *ConfigChange) GetAdvices() []*Advice {
 type Advice struct {
 	// Useful description for why this advice was applied and what actions should
 	// be taken to mitigate any implied risks.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/distribution/distribution.pb.go b/googleapis/api/distribution/distribution.pb.go
index 2933b141741397b3d3c937ca95cc76384d1c45b8..ea2ca8aad57ed59503b75e1b8f7f0556c408dcb5 100644
--- a/googleapis/api/distribution/distribution.pb.go
+++ b/googleapis/api/distribution/distribution.pb.go
@@ -38,10 +38,10 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // will render the `mean` and `sum_of_squared_deviation` fields meaningless.
 type Distribution struct {
 	// The number of values in the population. Must be non-negative.
-	Count int64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
+	Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
 	// The arithmetic mean of the values in the population. If `count` is zero
 	// then this field must be zero.
-	Mean float64 `protobuf:"fixed64,2,opt,name=mean" json:"mean,omitempty"`
+	Mean float64 `protobuf:"fixed64,2,opt,name=mean,proto3" json:"mean,omitempty"`
 	// The sum of squared deviations from the mean of the values in the
 	// population.  For values x_i this is:
 	//
@@ -51,12 +51,12 @@ type Distribution struct {
 	// describes Welford's method for accumulating this sum in one pass.
 	//
 	// If `count` is zero then this field must be zero.
-	SumOfSquaredDeviation float64 `protobuf:"fixed64,3,opt,name=sum_of_squared_deviation,json=sumOfSquaredDeviation" json:"sum_of_squared_deviation,omitempty"`
+	SumOfSquaredDeviation float64 `protobuf:"fixed64,3,opt,name=sum_of_squared_deviation,json=sumOfSquaredDeviation,proto3" json:"sum_of_squared_deviation,omitempty"`
 	// If specified, contains the range of the population values. The field
 	// must not be present if the `count` is zero.
-	Range *Distribution_Range `protobuf:"bytes,4,opt,name=range" json:"range,omitempty"`
+	Range *Distribution_Range `protobuf:"bytes,4,opt,name=range,proto3" json:"range,omitempty"`
 	// Defines the histogram bucket boundaries.
-	BucketOptions *Distribution_BucketOptions `protobuf:"bytes,6,opt,name=bucket_options,json=bucketOptions" json:"bucket_options,omitempty"`
+	BucketOptions *Distribution_BucketOptions `protobuf:"bytes,6,opt,name=bucket_options,json=bucketOptions,proto3" json:"bucket_options,omitempty"`
 	// If `bucket_options` is given, then the sum of the values in `bucket_counts`
 	// must equal the value in `count`.  If `bucket_options` is not given, no
 	// `bucket_counts` fields may be given.
@@ -69,7 +69,7 @@ type Distribution struct {
 	// `bucket_options`.
 	//
 	// Any suffix of trailing zero bucket_count fields may be omitted.
-	BucketCounts         []int64  `protobuf:"varint,7,rep,packed,name=bucket_counts,json=bucketCounts" json:"bucket_counts,omitempty"`
+	BucketCounts         []int64  `protobuf:"varint,7,rep,packed,name=bucket_counts,json=bucketCounts,proto3" json:"bucket_counts,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -144,9 +144,9 @@ func (m *Distribution) GetBucketCounts() []int64 {
 // The range of the population values.
 type Distribution_Range struct {
 	// The minimum of the population values.
-	Min float64 `protobuf:"fixed64,1,opt,name=min" json:"min,omitempty"`
+	Min float64 `protobuf:"fixed64,1,opt,name=min,proto3" json:"min,omitempty"`
 	// The maximum of the population values.
-	Max                  float64  `protobuf:"fixed64,2,opt,name=max" json:"max,omitempty"`
+	Max                  float64  `protobuf:"fixed64,2,opt,name=max,proto3" json:"max,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -255,13 +255,13 @@ type isDistribution_BucketOptions_Options interface {
 }
 
 type Distribution_BucketOptions_LinearBuckets struct {
-	LinearBuckets *Distribution_BucketOptions_Linear `protobuf:"bytes,1,opt,name=linear_buckets,json=linearBuckets,oneof"`
+	LinearBuckets *Distribution_BucketOptions_Linear `protobuf:"bytes,1,opt,name=linear_buckets,json=linearBuckets,proto3,oneof"`
 }
 type Distribution_BucketOptions_ExponentialBuckets struct {
-	ExponentialBuckets *Distribution_BucketOptions_Exponential `protobuf:"bytes,2,opt,name=exponential_buckets,json=exponentialBuckets,oneof"`
+	ExponentialBuckets *Distribution_BucketOptions_Exponential `protobuf:"bytes,2,opt,name=exponential_buckets,json=exponentialBuckets,proto3,oneof"`
 }
 type Distribution_BucketOptions_ExplicitBuckets struct {
-	ExplicitBuckets *Distribution_BucketOptions_Explicit `protobuf:"bytes,3,opt,name=explicit_buckets,json=explicitBuckets,oneof"`
+	ExplicitBuckets *Distribution_BucketOptions_Explicit `protobuf:"bytes,3,opt,name=explicit_buckets,json=explicitBuckets,proto3,oneof"`
 }
 
 func (*Distribution_BucketOptions_LinearBuckets) isDistribution_BucketOptions_Options()      {}
@@ -400,11 +400,11 @@ func _Distribution_BucketOptions_OneofSizer(msg proto.Message) (n int) {
 //    Lower bound (1 <= i < N):       offset + (width * (i - 1)).
 type Distribution_BucketOptions_Linear struct {
 	// Must be greater than 0.
-	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets" json:"num_finite_buckets,omitempty"`
+	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets,proto3" json:"num_finite_buckets,omitempty"`
 	// Must be greater than 0.
-	Width float64 `protobuf:"fixed64,2,opt,name=width" json:"width,omitempty"`
+	Width float64 `protobuf:"fixed64,2,opt,name=width,proto3" json:"width,omitempty"`
 	// Lower bound of the first bucket.
-	Offset               float64  `protobuf:"fixed64,3,opt,name=offset" json:"offset,omitempty"`
+	Offset               float64  `protobuf:"fixed64,3,opt,name=offset,proto3" json:"offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -466,11 +466,11 @@ func (m *Distribution_BucketOptions_Linear) GetOffset() float64 {
 //    Lower bound (1 <= i < N):       scale * (growth_factor ^ (i - 1)).
 type Distribution_BucketOptions_Exponential struct {
 	// Must be greater than 0.
-	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets" json:"num_finite_buckets,omitempty"`
+	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets,proto3" json:"num_finite_buckets,omitempty"`
 	// Must be greater than 1.
-	GrowthFactor float64 `protobuf:"fixed64,2,opt,name=growth_factor,json=growthFactor" json:"growth_factor,omitempty"`
+	GrowthFactor float64 `protobuf:"fixed64,2,opt,name=growth_factor,json=growthFactor,proto3" json:"growth_factor,omitempty"`
 	// Must be greater than 0.
-	Scale                float64  `protobuf:"fixed64,3,opt,name=scale" json:"scale,omitempty"`
+	Scale                float64  `protobuf:"fixed64,3,opt,name=scale,proto3" json:"scale,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -536,7 +536,7 @@ func (m *Distribution_BucketOptions_Exponential) GetScale() float64 {
 // common boundary of the overflow and underflow buckets.
 type Distribution_BucketOptions_Explicit struct {
 	// The values must be monotonically increasing.
-	Bounds               []float64 `protobuf:"fixed64,1,rep,packed,name=bounds" json:"bounds,omitempty"`
+	Bounds               []float64 `protobuf:"fixed64,1,rep,packed,name=bounds,proto3" json:"bounds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
diff --git a/googleapis/api/experimental.pb.go b/googleapis/api/experimental.pb.go
index 339a302e594537f4906ce342cf731ac488aca7b8..4b34111b89ec14c22b0f6c047aba6bd2d62bcd16 100644
--- a/googleapis/api/experimental.pb.go
+++ b/googleapis/api/experimental.pb.go
@@ -23,7 +23,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // only be used by whitelisted users.
 type Experimental struct {
 	// Authorization configuration.
-	Authorization        *AuthorizationConfig `protobuf:"bytes,8,opt,name=authorization" json:"authorization,omitempty"`
+	Authorization        *AuthorizationConfig `protobuf:"bytes,8,opt,name=authorization,proto3" json:"authorization,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
diff --git a/googleapis/api/httpbody/httpbody.pb.go b/googleapis/api/httpbody/httpbody.pb.go
index 5012c07e6b5c59917ad0a977a39df50f6ccc59bb..c986cddfa2990022eb5745ceb9c5e4189af01cc6 100644
--- a/googleapis/api/httpbody/httpbody.pb.go
+++ b/googleapis/api/httpbody/httpbody.pb.go
@@ -59,12 +59,12 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // handled, all other features will continue to work unchanged.
 type HttpBody struct {
 	// The HTTP Content-Type string representing the content type of the body.
-	ContentType string `protobuf:"bytes,1,opt,name=content_type,json=contentType" json:"content_type,omitempty"`
+	ContentType string `protobuf:"bytes,1,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
 	// HTTP body binary data.
 	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
 	// Application specific response metadata. Must be set in the first response
 	// for streaming APIs.
-	Extensions           []*any.Any `protobuf:"bytes,3,rep,name=extensions" json:"extensions,omitempty"`
+	Extensions           []*any.Any `protobuf:"bytes,3,rep,name=extensions,proto3" json:"extensions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
diff --git a/googleapis/api/label/label.pb.go b/googleapis/api/label/label.pb.go
index 656f75cce23492741adadc877518114b0cafa44f..ef1af9cb35fada9f8c694288b016279a91106d11 100644
--- a/googleapis/api/label/label.pb.go
+++ b/googleapis/api/label/label.pb.go
@@ -51,11 +51,11 @@ func (LabelDescriptor_ValueType) EnumDescriptor() ([]byte, []int) {
 // A description of a label.
 type LabelDescriptor struct {
 	// The label key.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// The type of data that can be assigned to the label.
-	ValueType LabelDescriptor_ValueType `protobuf:"varint,2,opt,name=value_type,json=valueType,enum=google.api.LabelDescriptor_ValueType" json:"value_type,omitempty"`
+	ValueType LabelDescriptor_ValueType `protobuf:"varint,2,opt,name=value_type,json=valueType,proto3,enum=google.api.LabelDescriptor_ValueType" json:"value_type,omitempty"`
 	// A human-readable description for the label.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/metric/metric.pb.go b/googleapis/api/metric/metric.pb.go
index 03baa8e4afb9971503f0abe4025f6b4908f70ed5..54f65179aea694c7536857fbf9728ec62303fb63 100644
--- a/googleapis/api/metric/metric.pb.go
+++ b/googleapis/api/metric/metric.pb.go
@@ -110,7 +110,7 @@ func (MetricDescriptor_ValueType) EnumDescriptor() ([]byte, []int) {
 // existing data unusable.
 type MetricDescriptor struct {
 	// The resource name of the metric descriptor.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The metric type, including its DNS name prefix. The type is not
 	// URL-encoded.  All user-defined custom metric types have the DNS name
 	// `custom.googleapis.com`.  Metric types should use a natural hierarchical
@@ -118,20 +118,20 @@ type MetricDescriptor struct {
 	//
 	//     "custom.googleapis.com/invoice/paid/amount"
 	//     "appengine.googleapis.com/http/server/response_latencies"
-	Type string `protobuf:"bytes,8,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,8,opt,name=type,proto3" json:"type,omitempty"`
 	// The set of labels that can be used to describe a specific
 	// instance of this metric type. For example, the
 	// `appengine.googleapis.com/http/server/response_latencies` metric
 	// type has a label for the HTTP response code, `response_code`, so
 	// you can look at latencies for successful responses or just
 	// for responses that failed.
-	Labels []*label.LabelDescriptor `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty"`
+	Labels []*label.LabelDescriptor `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
 	// Whether the metric records instantaneous values, changes to a value, etc.
 	// Some combinations of `metric_kind` and `value_type` might not be supported.
-	MetricKind MetricDescriptor_MetricKind `protobuf:"varint,3,opt,name=metric_kind,json=metricKind,enum=google.api.MetricDescriptor_MetricKind" json:"metric_kind,omitempty"`
+	MetricKind MetricDescriptor_MetricKind `protobuf:"varint,3,opt,name=metric_kind,json=metricKind,proto3,enum=google.api.MetricDescriptor_MetricKind" json:"metric_kind,omitempty"`
 	// Whether the measurement is an integer, a floating-point number, etc.
 	// Some combinations of `metric_kind` and `value_type` might not be supported.
-	ValueType MetricDescriptor_ValueType `protobuf:"varint,4,opt,name=value_type,json=valueType,enum=google.api.MetricDescriptor_ValueType" json:"value_type,omitempty"`
+	ValueType MetricDescriptor_ValueType `protobuf:"varint,4,opt,name=value_type,json=valueType,proto3,enum=google.api.MetricDescriptor_ValueType" json:"value_type,omitempty"`
 	// The unit in which the metric value is reported. It is only applicable
 	// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
 	// supported units are a subset of [The Unified Code for Units of
@@ -197,14 +197,14 @@ type MetricDescriptor struct {
 	// * `1` represents dimensionless value 1, such as in `1/s`.
 	// * `%` represents dimensionless value 1/100, and annotates values giving
 	//    a percentage.
-	Unit string `protobuf:"bytes,5,opt,name=unit" json:"unit,omitempty"`
+	Unit string `protobuf:"bytes,5,opt,name=unit,proto3" json:"unit,omitempty"`
 	// A detailed description of the metric, which can be used in documentation.
-	Description string `protobuf:"bytes,6,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
 	// A concise name for the metric, which can be displayed in user interfaces.
 	// Use sentence case without an ending period, for example "Request count".
 	// This field is optional but it is recommended to be set for any metrics
 	// associated with user-visible concepts, such as Quota.
-	DisplayName          string   `protobuf:"bytes,7,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,7,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -295,10 +295,10 @@ func (m *MetricDescriptor) GetDisplayName() string {
 type Metric struct {
 	// An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
 	// For example, `custom.googleapis.com/invoice/paid/amount`.
-	Type string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
 	// The set of label values that uniquely identify this metric. All
 	// labels listed in the `MetricDescriptor` must be assigned values.
-	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/api/monitoredres/monitored_resource.pb.go b/googleapis/api/monitoredres/monitored_resource.pb.go
index e1c872888bcc1ffd3c6526bbb26925b3e611c2f6..a9a8bb7cfff6e3c9bacd5d6050a1e86c314a3150 100644
--- a/googleapis/api/monitoredres/monitored_resource.pb.go
+++ b/googleapis/api/monitoredres/monitored_resource.pb.go
@@ -36,23 +36,23 @@ type MonitoredResourceDescriptor struct {
 	// {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}"`.
-	Name string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// 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"`.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Optional. A detailed description of the monitored resource type that might
 	// be used in documentation.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// 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"`.
-	Labels               []*label.LabelDescriptor `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty"`
+	Labels               []*label.LabelDescriptor `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -134,11 +134,11 @@ type MonitoredResource struct {
 	// Required. The monitored resource type. This field must match
 	// the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
 	// example, the type of a Compute Engine VM instance is `gce_instance`.
-	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// 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"`.
-	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -200,9 +200,9 @@ type MonitoredResourceMetadata struct {
 	//     { "name": "my-test-instance",
 	//       "security_group": ["a", "b", "c"],
 	//       "spot_instance": false }
-	SystemLabels *_struct.Struct `protobuf:"bytes,1,opt,name=system_labels,json=systemLabels" json:"system_labels,omitempty"`
+	SystemLabels *_struct.Struct `protobuf:"bytes,1,opt,name=system_labels,json=systemLabels,proto3" json:"system_labels,omitempty"`
 	// Output only. A map of user-defined metadata labels.
-	UserLabels           map[string]string `protobuf:"bytes,2,rep,name=user_labels,json=userLabels" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	UserLabels           map[string]string `protobuf:"bytes,2,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/api/serviceconfig/auth.pb.go b/googleapis/api/serviceconfig/auth.pb.go
index f0387c6e227f0111ba04c57c1ac02baebe26556c..bba004a40b7159aefe5412e4ce0f6e5bcbd11f56 100644
--- a/googleapis/api/serviceconfig/auth.pb.go
+++ b/googleapis/api/serviceconfig/auth.pb.go
@@ -37,9 +37,9 @@ type Authentication struct {
 	// A list of authentication rules that apply to individual API methods.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules []*AuthenticationRule `protobuf:"bytes,3,rep,name=rules" json:"rules,omitempty"`
+	Rules []*AuthenticationRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
 	// Defines a set of authentication providers that a service supports.
-	Providers            []*AuthProvider `protobuf:"bytes,4,rep,name=providers" json:"providers,omitempty"`
+	Providers            []*AuthProvider `protobuf:"bytes,4,rep,name=providers,proto3" json:"providers,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -96,13 +96,13 @@ type AuthenticationRule struct {
 	// Selects the methods to which this rule applies.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// The requirements for OAuth credentials.
-	Oauth *OAuthRequirements `protobuf:"bytes,2,opt,name=oauth" json:"oauth,omitempty"`
+	Oauth *OAuthRequirements `protobuf:"bytes,2,opt,name=oauth,proto3" json:"oauth,omitempty"`
 	// If true, the service accepts API keys without any other credential.
-	AllowWithoutCredential bool `protobuf:"varint,5,opt,name=allow_without_credential,json=allowWithoutCredential" json:"allow_without_credential,omitempty"`
+	AllowWithoutCredential bool `protobuf:"varint,5,opt,name=allow_without_credential,json=allowWithoutCredential,proto3" json:"allow_without_credential,omitempty"`
 	// Requirements for additional authentication providers.
-	Requirements         []*AuthRequirement `protobuf:"bytes,7,rep,name=requirements" json:"requirements,omitempty"`
+	Requirements         []*AuthRequirement `protobuf:"bytes,7,rep,name=requirements,proto3" json:"requirements,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -167,14 +167,14 @@ type AuthProvider struct {
 	// `AuthRequirement.provider_id`.
 	//
 	// Example: "bookstore_auth".
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Identifies the principal that issued the JWT. See
 	// https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
 	// Usually a URL or an email address.
 	//
 	// Example: https://securetoken.google.com
 	// Example: 1234567-compute@developer.gserviceaccount.com
-	Issuer string `protobuf:"bytes,2,opt,name=issuer" json:"issuer,omitempty"`
+	Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
 	// URL of the provider's public key set to validate signature of the JWT. See
 	// [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
 	// Optional if the key set document:
@@ -184,7 +184,7 @@ type AuthProvider struct {
 	//  - can be inferred from the email domain of the issuer (e.g. a Google service account).
 	//
 	// Example: https://www.googleapis.com/oauth2/v1/certs
-	JwksUri string `protobuf:"bytes,3,opt,name=jwks_uri,json=jwksUri" json:"jwks_uri,omitempty"`
+	JwksUri string `protobuf:"bytes,3,opt,name=jwks_uri,json=jwksUri,proto3" json:"jwks_uri,omitempty"`
 	// The list of JWT
 	// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
 	// that are allowed to access. A JWT containing any of these audiences will
@@ -198,10 +198,10 @@ type AuthProvider struct {
 	//
 	//     audiences: bookstore_android.apps.googleusercontent.com,
 	//                bookstore_web.apps.googleusercontent.com
-	Audiences string `protobuf:"bytes,4,opt,name=audiences" json:"audiences,omitempty"`
+	Audiences string `protobuf:"bytes,4,opt,name=audiences,proto3" json:"audiences,omitempty"`
 	// Redirect URL if JWT token is required but no present or is expired.
 	// Implement authorizationUrl of securityDefinitions in OpenAPI spec.
-	AuthorizationUrl     string   `protobuf:"bytes,5,opt,name=authorization_url,json=authorizationUrl" json:"authorization_url,omitempty"`
+	AuthorizationUrl     string   `protobuf:"bytes,5,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -292,7 +292,7 @@ type OAuthRequirements struct {
 	//
 	//      canonical_scopes: https://www.googleapis.com/auth/calendar,
 	//                        https://www.googleapis.com/auth/calendar.read
-	CanonicalScopes      string   `protobuf:"bytes,1,opt,name=canonical_scopes,json=canonicalScopes" json:"canonical_scopes,omitempty"`
+	CanonicalScopes      string   `protobuf:"bytes,1,opt,name=canonical_scopes,json=canonicalScopes,proto3" json:"canonical_scopes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -337,7 +337,7 @@ type AuthRequirement struct {
 	// Example:
 	//
 	//     provider_id: bookstore_auth
-	ProviderId string `protobuf:"bytes,1,opt,name=provider_id,json=providerId" json:"provider_id,omitempty"`
+	ProviderId string `protobuf:"bytes,1,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
 	// NOTE: This will be deprecated soon, once AuthProvider.audiences is
 	// implemented and accepted in all the runtime components.
 	//
@@ -354,7 +354,7 @@ type AuthRequirement struct {
 	//
 	//     audiences: bookstore_android.apps.googleusercontent.com,
 	//                bookstore_web.apps.googleusercontent.com
-	Audiences            string   `protobuf:"bytes,2,opt,name=audiences" json:"audiences,omitempty"`
+	Audiences            string   `protobuf:"bytes,2,opt,name=audiences,proto3" json:"audiences,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/backend.pb.go b/googleapis/api/serviceconfig/backend.pb.go
index 3b597f8461676f1a1e4d8f219bae67c0935abc6e..3652109d1385057474a1cb8fdbd84eac02eb819c 100644
--- a/googleapis/api/serviceconfig/backend.pb.go
+++ b/googleapis/api/serviceconfig/backend.pb.go
@@ -23,7 +23,7 @@ type Backend struct {
 	// A list of API backend rules that apply to individual API methods.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules                []*BackendRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*BackendRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -65,15 +65,15 @@ type BackendRule struct {
 	// Selects the methods to which this rule applies.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// The address of the API backend.
-	Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
+	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
 	// The number of seconds to wait for a response from a request.  The default
 	// deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.
-	Deadline float64 `protobuf:"fixed64,3,opt,name=deadline" json:"deadline,omitempty"`
+	Deadline float64 `protobuf:"fixed64,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
 	// Minimum deadline in seconds needed for this method. Calls having deadline
 	// value lower than this will be rejected.
-	MinDeadline          float64  `protobuf:"fixed64,4,opt,name=min_deadline,json=minDeadline" json:"min_deadline,omitempty"`
+	MinDeadline          float64  `protobuf:"fixed64,4,opt,name=min_deadline,json=minDeadline,proto3" json:"min_deadline,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/billing.pb.go b/googleapis/api/serviceconfig/billing.pb.go
index b882eaf1b483c381150bfd52dc60d0188a998a8d..53a335085fe6277fa34976a6b13572f25cf09dfb 100644
--- a/googleapis/api/serviceconfig/billing.pb.go
+++ b/googleapis/api/serviceconfig/billing.pb.go
@@ -46,7 +46,7 @@ type Billing struct {
 	// There can be multiple consumer destinations per service, each one must have
 	// a different monitored resource type. A metric can be used in at most
 	// one consumer destination.
-	ConsumerDestinations []*Billing_BillingDestination `protobuf:"bytes,8,rep,name=consumer_destinations,json=consumerDestinations" json:"consumer_destinations,omitempty"`
+	ConsumerDestinations []*Billing_BillingDestination `protobuf:"bytes,8,rep,name=consumer_destinations,json=consumerDestinations,proto3" json:"consumer_destinations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -88,10 +88,10 @@ func (m *Billing) GetConsumerDestinations() []*Billing_BillingDestination {
 type Billing_BillingDestination struct {
 	// The monitored resource type. The type must be defined in
 	// [Service.monitored_resources][google.api.Service.monitored_resources] section.
-	MonitoredResource string `protobuf:"bytes,1,opt,name=monitored_resource,json=monitoredResource" json:"monitored_resource,omitempty"`
+	MonitoredResource string `protobuf:"bytes,1,opt,name=monitored_resource,json=monitoredResource,proto3" json:"monitored_resource,omitempty"`
 	// Names of the metrics to report to this billing destination.
 	// Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
-	Metrics              []string `protobuf:"bytes,2,rep,name=metrics" json:"metrics,omitempty"`
+	Metrics              []string `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/consumer.pb.go b/googleapis/api/serviceconfig/consumer.pb.go
index 8b75dd56490532346b4737906085a1aca9a89e2c..f5532022d92245bb827121ad75ce34a154cf7fec 100644
--- a/googleapis/api/serviceconfig/consumer.pb.go
+++ b/googleapis/api/serviceconfig/consumer.pb.go
@@ -74,7 +74,7 @@ func (Property_PropertyType) EnumDescriptor() ([]byte, []int) {
 //        type: INT64
 type ProjectProperties struct {
 	// List of per consumer project-specific properties.
-	Properties           []*Property `protobuf:"bytes,1,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -123,11 +123,11 @@ func (m *ProjectProperties) GetProperties() []*Property {
 // define and set these properties.
 type Property struct {
 	// The name of the property (a.k.a key).
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The type of this property.
-	Type Property_PropertyType `protobuf:"varint,2,opt,name=type,enum=google.api.Property_PropertyType" json:"type,omitempty"`
+	Type Property_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=google.api.Property_PropertyType" json:"type,omitempty"`
 	// The description of the property
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/context.pb.go b/googleapis/api/serviceconfig/context.pb.go
index b28a81b9abddf8d6e61e98a37f58d7b06fa06567..8c8515082e94eb2bbb8ca23cbdd222f9930d5ba7 100644
--- a/googleapis/api/serviceconfig/context.pb.go
+++ b/googleapis/api/serviceconfig/context.pb.go
@@ -39,7 +39,7 @@ type Context struct {
 	// A list of RPC context rules that apply to individual API methods.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules                []*ContextRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*ContextRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -82,11 +82,11 @@ type ContextRule struct {
 	// Selects the methods to which this rule applies.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// A list of full type names of requested contexts.
-	Requested []string `protobuf:"bytes,2,rep,name=requested" json:"requested,omitempty"`
+	Requested []string `protobuf:"bytes,2,rep,name=requested,proto3" json:"requested,omitempty"`
 	// A list of full type names of provided contexts.
-	Provided             []string `protobuf:"bytes,3,rep,name=provided" json:"provided,omitempty"`
+	Provided             []string `protobuf:"bytes,3,rep,name=provided,proto3" json:"provided,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/control.pb.go b/googleapis/api/serviceconfig/control.pb.go
index 12fcd27baac1723e9b0e745008ecc9d4b2d3b101..62dc24590253996c1254c11fdabc90a727d52293 100644
--- a/googleapis/api/serviceconfig/control.pb.go
+++ b/googleapis/api/serviceconfig/control.pb.go
@@ -24,7 +24,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Control struct {
 	// The service control environment to use. If empty, no control plane
 	// feature (like quota and billing) will be enabled.
-	Environment          string   `protobuf:"bytes,1,opt,name=environment" json:"environment,omitempty"`
+	Environment          string   `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/documentation.pb.go b/googleapis/api/serviceconfig/documentation.pb.go
index e43d8f4d99d576ac58db8ad96fbf928e96d11ff6..b43c9598a190acac127502ccc73edcc4ea18d35c 100644
--- a/googleapis/api/serviceconfig/documentation.pb.go
+++ b/googleapis/api/serviceconfig/documentation.pb.go
@@ -76,15 +76,15 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Documentation struct {
 	// A short summary of what the service does. Can only be provided by
 	// plain text.
-	Summary string `protobuf:"bytes,1,opt,name=summary" json:"summary,omitempty"`
+	Summary string `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"`
 	// The top level pages for the documentation set.
-	Pages []*Page `protobuf:"bytes,5,rep,name=pages" json:"pages,omitempty"`
+	Pages []*Page `protobuf:"bytes,5,rep,name=pages,proto3" json:"pages,omitempty"`
 	// A list of documentation rules that apply to individual API elements.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules []*DocumentationRule `protobuf:"bytes,3,rep,name=rules" json:"rules,omitempty"`
+	Rules []*DocumentationRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
 	// The URL to the root of documentation.
-	DocumentationRootUrl string `protobuf:"bytes,4,opt,name=documentation_root_url,json=documentationRootUrl" json:"documentation_root_url,omitempty"`
+	DocumentationRootUrl string `protobuf:"bytes,4,opt,name=documentation_root_url,json=documentationRootUrl,proto3" json:"documentation_root_url,omitempty"`
 	// Declares a single overview page. For example:
 	// <pre><code>documentation:
 	//   summary: ...
@@ -98,7 +98,7 @@ type Documentation struct {
 	//     content: &#40;== include overview.md ==&#41;
 	// </code></pre>
 	// Note: you cannot specify both `overview` field and `pages` field.
-	Overview             string   `protobuf:"bytes,2,opt,name=overview" json:"overview,omitempty"`
+	Overview             string   `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -171,12 +171,12 @@ type DocumentationRule struct {
 	// qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
 	// specify a default for all applicable elements, the whole pattern "*"
 	// is used.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// Description of the selected API(s).
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Deprecation description of the selected element(s). It can be provided if an
 	// element is marked as `deprecated`.
-	DeprecationDescription string   `protobuf:"bytes,3,opt,name=deprecation_description,json=deprecationDescription" json:"deprecation_description,omitempty"`
+	DeprecationDescription string   `protobuf:"bytes,3,opt,name=deprecation_description,json=deprecationDescription,proto3" json:"deprecation_description,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -244,13 +244,13 @@ type Page struct {
 	// </code></pre>
 	// You can reference `Java` page using Markdown reference link syntax:
 	// `[Java][Tutorial.Java]`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
 	// to include content from a Markdown file.
-	Content string `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
+	Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
 	// Subpages of this page. The order of subpages specified here will be
 	// honored in the generated docset.
-	Subpages             []*Page  `protobuf:"bytes,3,rep,name=subpages" json:"subpages,omitempty"`
+	Subpages             []*Page  `protobuf:"bytes,3,rep,name=subpages,proto3" json:"subpages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/endpoint.pb.go b/googleapis/api/serviceconfig/endpoint.pb.go
index 4d273996eefdfdbba272a1af447b250fef1a2a7e..0ce2e78ea65eb9c5904bcea10ee313cef5459445 100644
--- a/googleapis/api/serviceconfig/endpoint.pb.go
+++ b/googleapis/api/serviceconfig/endpoint.pb.go
@@ -37,27 +37,27 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 //       allow_cors: true
 type Endpoint struct {
 	// The canonical name of this endpoint.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// DEPRECATED: This field is no longer supported. Instead of using aliases,
 	// please specify multiple [google.api.Endpoint][google.api.Endpoint] for each of the intended
 	// aliases.
 	//
 	// Additional names that this endpoint will be hosted on.
-	Aliases []string `protobuf:"bytes,2,rep,name=aliases" json:"aliases,omitempty"`
+	Aliases []string `protobuf:"bytes,2,rep,name=aliases,proto3" json:"aliases,omitempty"`
 	// The list of features enabled on this endpoint.
-	Features []string `protobuf:"bytes,4,rep,name=features" json:"features,omitempty"`
+	Features []string `protobuf:"bytes,4,rep,name=features,proto3" json:"features,omitempty"`
 	// 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".
-	Target string `protobuf:"bytes,101,opt,name=target" json:"target,omitempty"`
+	Target string `protobuf:"bytes,101,opt,name=target,proto3" json:"target,omitempty"`
 	// 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.
-	AllowCors            bool     `protobuf:"varint,5,opt,name=allow_cors,json=allowCors" json:"allow_cors,omitempty"`
+	AllowCors            bool     `protobuf:"varint,5,opt,name=allow_cors,json=allowCors,proto3" json:"allow_cors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/log.pb.go b/googleapis/api/serviceconfig/log.pb.go
index 5dd0f610d638e23a4b8d1fec1665909bf07b48a1..9627510ba4cefb960cc597884797c5de501858c7 100644
--- a/googleapis/api/serviceconfig/log.pb.go
+++ b/googleapis/api/serviceconfig/log.pb.go
@@ -32,17 +32,17 @@ type LogDescriptor struct {
 	// include the following characters: upper- and lower-case alphanumeric
 	// characters [A-Za-z0-9], and punctuation characters including
 	// slash, underscore, hyphen, period [/_-.].
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The set of labels that are available to describe a specific log entry.
 	// Runtime requests that contain labels not specified here are
 	// considered invalid.
-	Labels []*label.LabelDescriptor `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty"`
+	Labels []*label.LabelDescriptor `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
 	// A human-readable description of this log. This information appears in
 	// the documentation and can contain details.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The human-readable name for this log. This information appears on
 	// the user interface and should be concise.
-	DisplayName          string   `protobuf:"bytes,4,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/logging.pb.go b/googleapis/api/serviceconfig/logging.pb.go
index 4671b0356f284279413964993101340776a0bf8f..5ecd5fa604c6c4c22079c08b277bf51de8adfa01 100644
--- a/googleapis/api/serviceconfig/logging.pb.go
+++ b/googleapis/api/serviceconfig/logging.pb.go
@@ -53,12 +53,12 @@ type Logging struct {
 	// There can be multiple producer destinations, each one must have a
 	// different monitored resource type. A log can be used in at most
 	// one producer destination.
-	ProducerDestinations []*Logging_LoggingDestination `protobuf:"bytes,1,rep,name=producer_destinations,json=producerDestinations" json:"producer_destinations,omitempty"`
+	ProducerDestinations []*Logging_LoggingDestination `protobuf:"bytes,1,rep,name=producer_destinations,json=producerDestinations,proto3" json:"producer_destinations,omitempty"`
 	// Logging configurations for sending logs to the consumer project.
 	// There can be multiple consumer destinations, each one must have a
 	// different monitored resource type. A log can be used in at most
 	// one consumer destination.
-	ConsumerDestinations []*Logging_LoggingDestination `protobuf:"bytes,2,rep,name=consumer_destinations,json=consumerDestinations" json:"consumer_destinations,omitempty"`
+	ConsumerDestinations []*Logging_LoggingDestination `protobuf:"bytes,2,rep,name=consumer_destinations,json=consumerDestinations,proto3" json:"consumer_destinations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -107,12 +107,12 @@ func (m *Logging) GetConsumerDestinations() []*Logging_LoggingDestination {
 type Logging_LoggingDestination struct {
 	// The monitored resource type. The type must be defined in the
 	// [Service.monitored_resources][google.api.Service.monitored_resources] section.
-	MonitoredResource string `protobuf:"bytes,3,opt,name=monitored_resource,json=monitoredResource" json:"monitored_resource,omitempty"`
+	MonitoredResource string `protobuf:"bytes,3,opt,name=monitored_resource,json=monitoredResource,proto3" json:"monitored_resource,omitempty"`
 	// Names of the logs to be sent to this destination. Each name must
 	// be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
 	// not a domain scoped name, it will be automatically prefixed with
 	// the service name followed by "/".
-	Logs                 []string `protobuf:"bytes,1,rep,name=logs" json:"logs,omitempty"`
+	Logs                 []string `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/monitoring.pb.go b/googleapis/api/serviceconfig/monitoring.pb.go
index 1847f2ea738b14c48ddb401705fb48a60cbd39ce..f1470228512f7e0fa0e8275225c375987e550e30 100644
--- a/googleapis/api/serviceconfig/monitoring.pb.go
+++ b/googleapis/api/serviceconfig/monitoring.pb.go
@@ -61,12 +61,12 @@ type Monitoring struct {
 	// There can be multiple producer destinations, each one must have a
 	// different monitored resource type. A metric can be used in at most
 	// one producer destination.
-	ProducerDestinations []*Monitoring_MonitoringDestination `protobuf:"bytes,1,rep,name=producer_destinations,json=producerDestinations" json:"producer_destinations,omitempty"`
+	ProducerDestinations []*Monitoring_MonitoringDestination `protobuf:"bytes,1,rep,name=producer_destinations,json=producerDestinations,proto3" json:"producer_destinations,omitempty"`
 	// Monitoring configurations for sending metrics to the consumer project.
 	// There can be multiple consumer destinations, each one must have a
 	// different monitored resource type. A metric can be used in at most
 	// one consumer destination.
-	ConsumerDestinations []*Monitoring_MonitoringDestination `protobuf:"bytes,2,rep,name=consumer_destinations,json=consumerDestinations" json:"consumer_destinations,omitempty"`
+	ConsumerDestinations []*Monitoring_MonitoringDestination `protobuf:"bytes,2,rep,name=consumer_destinations,json=consumerDestinations,proto3" json:"consumer_destinations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
 	XXX_unrecognized     []byte                              `json:"-"`
 	XXX_sizecache        int32                               `json:"-"`
@@ -115,10 +115,10 @@ func (m *Monitoring) GetConsumerDestinations() []*Monitoring_MonitoringDestinati
 type Monitoring_MonitoringDestination struct {
 	// The monitored resource type. The type must be defined in
 	// [Service.monitored_resources][google.api.Service.monitored_resources] section.
-	MonitoredResource string `protobuf:"bytes,1,opt,name=monitored_resource,json=monitoredResource" json:"monitored_resource,omitempty"`
+	MonitoredResource string `protobuf:"bytes,1,opt,name=monitored_resource,json=monitoredResource,proto3" json:"monitored_resource,omitempty"`
 	// Names of the metrics to report to this monitoring destination.
 	// Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
-	Metrics              []string `protobuf:"bytes,2,rep,name=metrics" json:"metrics,omitempty"`
+	Metrics              []string `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/quota.pb.go b/googleapis/api/serviceconfig/quota.pb.go
index f3fb6cb503ae2b8825ddb734907c9ec7d694ce23..101e3a78c331c1b26f96e78aa7b286ca0cad8e96 100644
--- a/googleapis/api/serviceconfig/quota.pb.go
+++ b/googleapis/api/serviceconfig/quota.pb.go
@@ -72,12 +72,12 @@ type Quota struct {
 	// List of `QuotaLimit` definitions for the service.
 	//
 	// Used by metric-based quotas only.
-	Limits []*QuotaLimit `protobuf:"bytes,3,rep,name=limits" json:"limits,omitempty"`
+	Limits []*QuotaLimit `protobuf:"bytes,3,rep,name=limits,proto3" json:"limits,omitempty"`
 	// List of `MetricRule` definitions, each one mapping a selected method to one
 	// or more metrics.
 	//
 	// Used by metric-based quotas only.
-	MetricRules          []*MetricRule `protobuf:"bytes,4,rep,name=metric_rules,json=metricRules" json:"metric_rules,omitempty"`
+	MetricRules          []*MetricRule `protobuf:"bytes,4,rep,name=metric_rules,json=metricRules,proto3" json:"metric_rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -130,14 +130,14 @@ type MetricRule struct {
 	// Selects the methods to which this rule applies.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// 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.
-	MetricCosts          map[string]int64 `protobuf:"bytes,2,rep,name=metric_costs,json=metricCosts" json:"metric_costs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MetricCosts          map[string]int64 `protobuf:"bytes,2,rep,name=metric_costs,json=metricCosts,proto3" json:"metric_costs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -203,11 +203,11 @@ type QuotaLimit struct {
 	// 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.
-	Name string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	// 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`).
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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.
@@ -218,7 +218,7 @@ type QuotaLimit struct {
 	// negative values are allowed.
 	//
 	// Used by group-based quotas only.
-	DefaultLimit int64 `protobuf:"varint,3,opt,name=default_limit,json=defaultLimit" json:"default_limit,omitempty"`
+	DefaultLimit int64 `protobuf:"varint,3,opt,name=default_limit,json=defaultLimit,proto3" json:"default_limit,omitempty"`
 	// 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
@@ -228,7 +228,7 @@ type QuotaLimit struct {
 	// indicating unlimited maximum quota.
 	//
 	// Used by group-based quotas only.
-	MaxLimit int64 `protobuf:"varint,4,opt,name=max_limit,json=maxLimit" json:"max_limit,omitempty"`
+	MaxLimit int64 `protobuf:"varint,4,opt,name=max_limit,json=maxLimit,proto3" json:"max_limit,omitempty"`
 	// 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.
@@ -237,20 +237,20 @@ type QuotaLimit struct {
 	// defaults to 0, indicating that there is no free tier for this service.
 	//
 	// Used by group-based quotas only.
-	FreeTier int64 `protobuf:"varint,7,opt,name=free_tier,json=freeTier" json:"free_tier,omitempty"`
+	FreeTier int64 `protobuf:"varint,7,opt,name=free_tier,json=freeTier,proto3" json:"free_tier,omitempty"`
 	// 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.
-	Duration string `protobuf:"bytes,5,opt,name=duration" json:"duration,omitempty"`
+	Duration string `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"`
 	// 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.
-	Metric string `protobuf:"bytes,8,opt,name=metric" json:"metric,omitempty"`
+	Metric string `protobuf:"bytes,8,opt,name=metric,proto3" json:"metric,omitempty"`
 	// 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.
@@ -282,7 +282,7 @@ type QuotaLimit struct {
 	// The "1" at the beginning is required to follow the metric unit syntax.
 	//
 	// Used by metric-based quotas only.
-	Unit string `protobuf:"bytes,9,opt,name=unit" json:"unit,omitempty"`
+	Unit string `protobuf:"bytes,9,opt,name=unit,proto3" json:"unit,omitempty"`
 	// Tiered limit values. Also allows for regional or zone overrides for these
 	// values if "/{region}" or "/{zone}" is specified in the unit field.
 	//
@@ -315,12 +315,12 @@ type QuotaLimit struct {
 	// tier as well.
 	//
 	// Used by metric-based quotas only.
-	Values map[string]int64 `protobuf:"bytes,10,rep,name=values" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	Values map[string]int64 `protobuf:"bytes,10,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	// 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.
-	DisplayName          string   `protobuf:"bytes,12,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,12,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/service.pb.go b/googleapis/api/serviceconfig/service.pb.go
index e86f4bd44c3f1d779927327d48480387ce9b5c03..bf9536e5c2b96c11a2a996f630d735df75c826ad 100644
--- a/googleapis/api/serviceconfig/service.pb.go
+++ b/googleapis/api/serviceconfig/service.pb.go
@@ -55,24 +55,24 @@ type Service struct {
 	// affects the interpretation of the service configuration. For example,
 	// certain features are enabled by default for certain config versions.
 	// The latest config version is `3`.
-	ConfigVersion *wrappers.UInt32Value `protobuf:"bytes,20,opt,name=config_version,json=configVersion" json:"config_version,omitempty"`
+	ConfigVersion *wrappers.UInt32Value `protobuf:"bytes,20,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"`
 	// The DNS address at which this service is available,
 	// e.g. `calendar.googleapis.com`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	Id string `protobuf:"bytes,33,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,33,opt,name=id,proto3" json:"id,omitempty"`
 	// The product title for this service.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// The Google project that owns this service.
-	ProducerProjectId string `protobuf:"bytes,22,opt,name=producer_project_id,json=producerProjectId" json:"producer_project_id,omitempty"`
+	ProducerProjectId string `protobuf:"bytes,22,opt,name=producer_project_id,json=producerProjectId,proto3" json:"producer_project_id,omitempty"`
 	// A list of API interfaces exported by this service. Only the `name` field
 	// of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
 	// author, as the remaining fields will be derived from the IDL during the
 	// normalization process. It is an error to specify an API interface here
 	// which cannot be resolved against the associated IDL files.
-	Apis []*api.Api `protobuf:"bytes,3,rep,name=apis" json:"apis,omitempty"`
+	Apis []*api.Api `protobuf:"bytes,3,rep,name=apis,proto3" json:"apis,omitempty"`
 	// A list of all proto message types included in this API service.
 	// Types referenced directly or indirectly by the `apis` are
 	// automatically included.  Messages which are not referenced but
@@ -81,7 +81,7 @@ type Service struct {
 	//
 	//     types:
 	//     - name: google.protobuf.Int32
-	Types []*ptype.Type `protobuf:"bytes,4,rep,name=types" json:"types,omitempty"`
+	Types []*ptype.Type `protobuf:"bytes,4,rep,name=types,proto3" json:"types,omitempty"`
 	// A list of all enum types included in this API service.  Enums
 	// referenced directly or indirectly by the `apis` are automatically
 	// included.  Enums which are not referenced but shall be included
@@ -89,46 +89,46 @@ type Service struct {
 	//
 	//     enums:
 	//     - name: google.someapi.v1.SomeEnum
-	Enums []*ptype.Enum `protobuf:"bytes,5,rep,name=enums" json:"enums,omitempty"`
+	Enums []*ptype.Enum `protobuf:"bytes,5,rep,name=enums,proto3" json:"enums,omitempty"`
 	// Additional API documentation.
-	Documentation *Documentation `protobuf:"bytes,6,opt,name=documentation" json:"documentation,omitempty"`
+	Documentation *Documentation `protobuf:"bytes,6,opt,name=documentation,proto3" json:"documentation,omitempty"`
 	// API backend configuration.
-	Backend *Backend `protobuf:"bytes,8,opt,name=backend" json:"backend,omitempty"`
+	Backend *Backend `protobuf:"bytes,8,opt,name=backend,proto3" json:"backend,omitempty"`
 	// HTTP configuration.
-	Http *annotations.Http `protobuf:"bytes,9,opt,name=http" json:"http,omitempty"`
+	Http *annotations.Http `protobuf:"bytes,9,opt,name=http,proto3" json:"http,omitempty"`
 	// Quota configuration.
-	Quota *Quota `protobuf:"bytes,10,opt,name=quota" json:"quota,omitempty"`
+	Quota *Quota `protobuf:"bytes,10,opt,name=quota,proto3" json:"quota,omitempty"`
 	// Auth configuration.
-	Authentication *Authentication `protobuf:"bytes,11,opt,name=authentication" json:"authentication,omitempty"`
+	Authentication *Authentication `protobuf:"bytes,11,opt,name=authentication,proto3" json:"authentication,omitempty"`
 	// Context configuration.
-	Context *Context `protobuf:"bytes,12,opt,name=context" json:"context,omitempty"`
+	Context *Context `protobuf:"bytes,12,opt,name=context,proto3" json:"context,omitempty"`
 	// Configuration controlling usage of this service.
-	Usage *Usage `protobuf:"bytes,15,opt,name=usage" json:"usage,omitempty"`
+	Usage *Usage `protobuf:"bytes,15,opt,name=usage,proto3" json:"usage,omitempty"`
 	// Configuration for network endpoints.  If this is empty, then an endpoint
 	// with the same name as the service is automatically generated to service all
 	// defined APIs.
-	Endpoints []*Endpoint `protobuf:"bytes,18,rep,name=endpoints" json:"endpoints,omitempty"`
+	Endpoints []*Endpoint `protobuf:"bytes,18,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
 	// Configuration for the service control plane.
-	Control *Control `protobuf:"bytes,21,opt,name=control" json:"control,omitempty"`
+	Control *Control `protobuf:"bytes,21,opt,name=control,proto3" json:"control,omitempty"`
 	// Defines the logs used by this service.
-	Logs []*LogDescriptor `protobuf:"bytes,23,rep,name=logs" json:"logs,omitempty"`
+	Logs []*LogDescriptor `protobuf:"bytes,23,rep,name=logs,proto3" json:"logs,omitempty"`
 	// Defines the metrics used by this service.
-	Metrics []*metric.MetricDescriptor `protobuf:"bytes,24,rep,name=metrics" json:"metrics,omitempty"`
+	Metrics []*metric.MetricDescriptor `protobuf:"bytes,24,rep,name=metrics,proto3" json:"metrics,omitempty"`
 	// Defines the monitored resources used by this service. This is required
 	// by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
-	MonitoredResources []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,25,rep,name=monitored_resources,json=monitoredResources" json:"monitored_resources,omitempty"`
+	MonitoredResources []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,25,rep,name=monitored_resources,json=monitoredResources,proto3" json:"monitored_resources,omitempty"`
 	// Billing configuration.
-	Billing *Billing `protobuf:"bytes,26,opt,name=billing" json:"billing,omitempty"`
+	Billing *Billing `protobuf:"bytes,26,opt,name=billing,proto3" json:"billing,omitempty"`
 	// Logging configuration.
-	Logging *Logging `protobuf:"bytes,27,opt,name=logging" json:"logging,omitempty"`
+	Logging *Logging `protobuf:"bytes,27,opt,name=logging,proto3" json:"logging,omitempty"`
 	// Monitoring configuration.
-	Monitoring *Monitoring `protobuf:"bytes,28,opt,name=monitoring" json:"monitoring,omitempty"`
+	Monitoring *Monitoring `protobuf:"bytes,28,opt,name=monitoring,proto3" json:"monitoring,omitempty"`
 	// System parameter configuration.
-	SystemParameters *SystemParameters `protobuf:"bytes,29,opt,name=system_parameters,json=systemParameters" json:"system_parameters,omitempty"`
+	SystemParameters *SystemParameters `protobuf:"bytes,29,opt,name=system_parameters,json=systemParameters,proto3" json:"system_parameters,omitempty"`
 	// Output only. The source information for this configuration if available.
-	SourceInfo *SourceInfo `protobuf:"bytes,37,opt,name=source_info,json=sourceInfo" json:"source_info,omitempty"`
+	SourceInfo *SourceInfo `protobuf:"bytes,37,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
 	// Experimental configuration.
-	Experimental         *api1.Experimental `protobuf:"bytes,101,opt,name=experimental" json:"experimental,omitempty"`
+	Experimental         *api1.Experimental `protobuf:"bytes,101,opt,name=experimental,proto3" json:"experimental,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
diff --git a/googleapis/api/serviceconfig/source_info.pb.go b/googleapis/api/serviceconfig/source_info.pb.go
index bea98ff299df16c4495d590be9ba08fa36f9f190..911714d2fe51691e3d662758c607bce2b7cacf28 100644
--- a/googleapis/api/serviceconfig/source_info.pb.go
+++ b/googleapis/api/serviceconfig/source_info.pb.go
@@ -22,7 +22,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Source information used to create a Service Config
 type SourceInfo struct {
 	// All files used during config generation.
-	SourceFiles          []*any.Any `protobuf:"bytes,1,rep,name=source_files,json=sourceFiles" json:"source_files,omitempty"`
+	SourceFiles          []*any.Any `protobuf:"bytes,1,rep,name=source_files,json=sourceFiles,proto3" json:"source_files,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
diff --git a/googleapis/api/serviceconfig/system_parameter.pb.go b/googleapis/api/serviceconfig/system_parameter.pb.go
index 94f1382a01832d5e16fbad440ec7100e980d5778..c8b418ec3ac84d4aa233f262f02b1a667aeeb494 100644
--- a/googleapis/api/serviceconfig/system_parameter.pb.go
+++ b/googleapis/api/serviceconfig/system_parameter.pb.go
@@ -54,7 +54,7 @@ type SystemParameters struct {
 	//               http_header: Api-Key2
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules                []*SystemParameterRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*SystemParameterRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -98,13 +98,13 @@ type SystemParameterRule struct {
 	// methods in all APIs.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// Define parameters. Multiple names may be defined for a parameter.
 	// For a given method call, only one of them should be used. If multiple
 	// names are used the behavior is implementation-dependent.
 	// If none of the specified names are present the behavior is
 	// parameter-dependent.
-	Parameters           []*SystemParameter `protobuf:"bytes,2,rep,name=parameters" json:"parameters,omitempty"`
+	Parameters           []*SystemParameter `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -153,13 +153,13 @@ func (m *SystemParameterRule) GetParameters() []*SystemParameter {
 // is implementation-dependent.
 type SystemParameter struct {
 	// Define the name of the parameter, such as "api_key" . It is case sensitive.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Define the HTTP header name to use for the parameter. It is case
 	// insensitive.
-	HttpHeader string `protobuf:"bytes,2,opt,name=http_header,json=httpHeader" json:"http_header,omitempty"`
+	HttpHeader string `protobuf:"bytes,2,opt,name=http_header,json=httpHeader,proto3" json:"http_header,omitempty"`
 	// Define the URL query parameter name to use for the parameter. It is case
 	// sensitive.
-	UrlQueryParameter    string   `protobuf:"bytes,3,opt,name=url_query_parameter,json=urlQueryParameter" json:"url_query_parameter,omitempty"`
+	UrlQueryParameter    string   `protobuf:"bytes,3,opt,name=url_query_parameter,json=urlQueryParameter,proto3" json:"url_query_parameter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/serviceconfig/usage.pb.go b/googleapis/api/serviceconfig/usage.pb.go
index ab55c122acfbccc1b18ded0b8478c9dcca75e2aa..4eb7f4bbbe6c37d03935757685ed210ca573a62f 100644
--- a/googleapis/api/serviceconfig/usage.pb.go
+++ b/googleapis/api/serviceconfig/usage.pb.go
@@ -24,11 +24,11 @@ type Usage struct {
 	// Requirements that must be satisfied before a consumer project can use the
 	// service. Each requirement is of the form <service.name>/<requirement-id>;
 	// for example 'serviceusage.googleapis.com/billing-enabled'.
-	Requirements []string `protobuf:"bytes,1,rep,name=requirements" json:"requirements,omitempty"`
+	Requirements []string `protobuf:"bytes,1,rep,name=requirements,proto3" json:"requirements,omitempty"`
 	// A list of usage rules that apply to individual API methods.
 	//
 	// **NOTE:** All service configuration rules follow "last one wins" order.
-	Rules []*UsageRule `protobuf:"bytes,6,rep,name=rules" json:"rules,omitempty"`
+	Rules []*UsageRule `protobuf:"bytes,6,rep,name=rules,proto3" json:"rules,omitempty"`
 	// The full resource name of a channel used for sending notifications to the
 	// service producer.
 	//
@@ -37,7 +37,7 @@ type Usage struct {
 	// channel. To use Google Cloud Pub/Sub as the channel, this must be the name
 	// of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
 	// documented in https://cloud.google.com/pubsub/docs/overview.
-	ProducerNotificationChannel string   `protobuf:"bytes,7,opt,name=producer_notification_channel,json=producerNotificationChannel" json:"producer_notification_channel,omitempty"`
+	ProducerNotificationChannel string   `protobuf:"bytes,7,opt,name=producer_notification_channel,json=producerNotificationChannel,proto3" json:"producer_notification_channel,omitempty"`
 	XXX_NoUnkeyedLiteral        struct{} `json:"-"`
 	XXX_unrecognized            []byte   `json:"-"`
 	XXX_sizecache               int32    `json:"-"`
@@ -118,15 +118,15 @@ type UsageRule struct {
 	// methods in all APIs.
 	//
 	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
+	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
 	// If true, the selected method allows unregistered calls, e.g. calls
 	// that don't identify any user or application.
-	AllowUnregisteredCalls bool `protobuf:"varint,2,opt,name=allow_unregistered_calls,json=allowUnregisteredCalls" json:"allow_unregistered_calls,omitempty"`
+	AllowUnregisteredCalls bool `protobuf:"varint,2,opt,name=allow_unregistered_calls,json=allowUnregisteredCalls,proto3" json:"allow_unregistered_calls,omitempty"`
 	// If true, the selected method should skip service control and the control
 	// plane features, such as quota and billing, will not be available.
 	// This flag is used by Google Cloud Endpoints to bypass checks for internal
 	// methods, such as service health check methods.
-	SkipServiceControl   bool     `protobuf:"varint,3,opt,name=skip_service_control,json=skipServiceControl" json:"skip_service_control,omitempty"`
+	SkipServiceControl   bool     `protobuf:"varint,3,opt,name=skip_service_control,json=skipServiceControl,proto3" json:"skip_service_control,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/servicecontrol/v1/check_error.pb.go b/googleapis/api/servicecontrol/v1/check_error.pb.go
index e71d7e30a69f3df64b13801335937650be6bcf24..661fe019ef330441b1141d476e3b6b7ff70f332b 100644
--- a/googleapis/api/servicecontrol/v1/check_error.pb.go
+++ b/googleapis/api/servicecontrol/v1/check_error.pb.go
@@ -114,9 +114,9 @@ func (CheckError_Code) EnumDescriptor() ([]byte, []int) {
 // [google.api.servicecontrol.v1.CheckResponse.check_errors][google.api.servicecontrol.v1.CheckResponse.check_errors].
 type CheckError struct {
 	// The error code.
-	Code CheckError_Code `protobuf:"varint,1,opt,name=code,enum=google.api.servicecontrol.v1.CheckError_Code" json:"code,omitempty"`
+	Code CheckError_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.api.servicecontrol.v1.CheckError_Code" json:"code,omitempty"`
 	// Free-form text providing details on the error cause of the error.
-	Detail               string   `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"`
+	Detail               string   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/api/servicecontrol/v1/distribution.pb.go b/googleapis/api/servicecontrol/v1/distribution.pb.go
index 32191c621b8fc6a0347ad3306600a1dc937b6ebb..bbc13da082a817721828cb7cc3a3272e49d3bafb 100644
--- a/googleapis/api/servicecontrol/v1/distribution.pb.go
+++ b/googleapis/api/servicecontrol/v1/distribution.pb.go
@@ -28,19 +28,19 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 //   - a histogram of the values of the sample points
 type Distribution struct {
 	// The total number of samples in the distribution. Must be >= 0.
-	Count int64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
+	Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
 	// The arithmetic mean of the samples in the distribution. If `count` is
 	// zero then this field must be zero.
-	Mean float64 `protobuf:"fixed64,2,opt,name=mean" json:"mean,omitempty"`
+	Mean float64 `protobuf:"fixed64,2,opt,name=mean,proto3" json:"mean,omitempty"`
 	// The minimum of the population of values. Ignored if `count` is zero.
-	Minimum float64 `protobuf:"fixed64,3,opt,name=minimum" json:"minimum,omitempty"`
+	Minimum float64 `protobuf:"fixed64,3,opt,name=minimum,proto3" json:"minimum,omitempty"`
 	// The maximum of the population of values. Ignored if `count` is zero.
-	Maximum float64 `protobuf:"fixed64,4,opt,name=maximum" json:"maximum,omitempty"`
+	Maximum float64 `protobuf:"fixed64,4,opt,name=maximum,proto3" json:"maximum,omitempty"`
 	// The sum of squared deviations from the mean:
 	//   Sum[i=1..count]((x_i - mean)^2)
 	// where each x_i is a sample values. If `count` is zero then this field
 	// must be zero, otherwise validation of the request fails.
-	SumOfSquaredDeviation float64 `protobuf:"fixed64,5,opt,name=sum_of_squared_deviation,json=sumOfSquaredDeviation" json:"sum_of_squared_deviation,omitempty"`
+	SumOfSquaredDeviation float64 `protobuf:"fixed64,5,opt,name=sum_of_squared_deviation,json=sumOfSquaredDeviation,proto3" json:"sum_of_squared_deviation,omitempty"`
 	// The number of samples in each histogram bucket. `bucket_counts` are
 	// optional. If present, they must sum to the `count` value.
 	//
@@ -52,7 +52,7 @@ type Distribution struct {
 	// below for more details.
 	//
 	// Any suffix of trailing zeros may be omitted.
-	BucketCounts []int64 `protobuf:"varint,6,rep,packed,name=bucket_counts,json=bucketCounts" json:"bucket_counts,omitempty"`
+	BucketCounts []int64 `protobuf:"varint,6,rep,packed,name=bucket_counts,json=bucketCounts,proto3" json:"bucket_counts,omitempty"`
 	// Defines the buckets in the histogram. `bucket_option` and `bucket_counts`
 	// must be both set, or both unset.
 	//
@@ -116,13 +116,13 @@ type isDistribution_BucketOption interface {
 }
 
 type Distribution_LinearBuckets_ struct {
-	LinearBuckets *Distribution_LinearBuckets `protobuf:"bytes,7,opt,name=linear_buckets,json=linearBuckets,oneof"`
+	LinearBuckets *Distribution_LinearBuckets `protobuf:"bytes,7,opt,name=linear_buckets,json=linearBuckets,proto3,oneof"`
 }
 type Distribution_ExponentialBuckets_ struct {
-	ExponentialBuckets *Distribution_ExponentialBuckets `protobuf:"bytes,8,opt,name=exponential_buckets,json=exponentialBuckets,oneof"`
+	ExponentialBuckets *Distribution_ExponentialBuckets `protobuf:"bytes,8,opt,name=exponential_buckets,json=exponentialBuckets,proto3,oneof"`
 }
 type Distribution_ExplicitBuckets_ struct {
-	ExplicitBuckets *Distribution_ExplicitBuckets `protobuf:"bytes,9,opt,name=explicit_buckets,json=explicitBuckets,oneof"`
+	ExplicitBuckets *Distribution_ExplicitBuckets `protobuf:"bytes,9,opt,name=explicit_buckets,json=explicitBuckets,proto3,oneof"`
 }
 
 func (*Distribution_LinearBuckets_) isDistribution_BucketOption()      {}
@@ -297,16 +297,16 @@ type Distribution_LinearBuckets struct {
 	// The number of finite buckets. With the underflow and overflow buckets,
 	// the total number of buckets is `num_finite_buckets` + 2.
 	// See comments on `bucket_options` for details.
-	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets" json:"num_finite_buckets,omitempty"`
+	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets,proto3" json:"num_finite_buckets,omitempty"`
 	// The i'th linear bucket covers the interval
 	//   [offset + (i-1) * width, offset + i * width)
 	// where i ranges from 1 to num_finite_buckets, inclusive.
 	// Must be strictly positive.
-	Width float64 `protobuf:"fixed64,2,opt,name=width" json:"width,omitempty"`
+	Width float64 `protobuf:"fixed64,2,opt,name=width,proto3" json:"width,omitempty"`
 	// The i'th linear bucket covers the interval
 	//   [offset + (i-1) * width, offset + i * width)
 	// where i ranges from 1 to num_finite_buckets, inclusive.
-	Offset               float64  `protobuf:"fixed64,3,opt,name=offset" json:"offset,omitempty"`
+	Offset               float64  `protobuf:"fixed64,3,opt,name=offset,proto3" json:"offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -362,17 +362,17 @@ type Distribution_ExponentialBuckets struct {
 	// The number of finite buckets. With the underflow and overflow buckets,
 	// the total number of buckets is `num_finite_buckets` + 2.
 	// See comments on `bucket_options` for details.
-	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets" json:"num_finite_buckets,omitempty"`
+	NumFiniteBuckets int32 `protobuf:"varint,1,opt,name=num_finite_buckets,json=numFiniteBuckets,proto3" json:"num_finite_buckets,omitempty"`
 	// The i'th exponential bucket covers the interval
 	//   [scale * growth_factor^(i-1), scale * growth_factor^i)
 	// where i ranges from 1 to num_finite_buckets inclusive.
 	// Must be larger than 1.0.
-	GrowthFactor float64 `protobuf:"fixed64,2,opt,name=growth_factor,json=growthFactor" json:"growth_factor,omitempty"`
+	GrowthFactor float64 `protobuf:"fixed64,2,opt,name=growth_factor,json=growthFactor,proto3" json:"growth_factor,omitempty"`
 	// The i'th exponential bucket covers the interval
 	//   [scale * growth_factor^(i-1), scale * growth_factor^i)
 	// where i ranges from 1 to num_finite_buckets inclusive.
 	// Must be > 0.
-	Scale                float64  `protobuf:"fixed64,3,opt,name=scale" json:"scale,omitempty"`
+	Scale                float64  `protobuf:"fixed64,3,opt,name=scale,proto3" json:"scale,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -440,7 +440,7 @@ type Distribution_ExplicitBuckets struct {
 	//  i == 0 (underflow)              -inf           bound[i]
 	//  0 < i < bound_size()            bound[i-1]     bound[i]
 	//  i == bound_size() (overflow)    bound[i-1]     +inf
-	Bounds               []float64 `protobuf:"fixed64,1,rep,packed,name=bounds" json:"bounds,omitempty"`
+	Bounds               []float64 `protobuf:"fixed64,1,rep,packed,name=bounds,proto3" json:"bounds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
diff --git a/googleapis/api/servicecontrol/v1/log_entry.pb.go b/googleapis/api/servicecontrol/v1/log_entry.pb.go
index 9d439dd18e446a6483a49e09dd49f688ef871931..6817098f703513362ff1bfd177d3ec5c14df4a33 100644
--- a/googleapis/api/servicecontrol/v1/log_entry.pb.go
+++ b/googleapis/api/servicecontrol/v1/log_entry.pb.go
@@ -27,19 +27,19 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type LogEntry struct {
 	// Required. The log to which this log entry belongs. Examples: `"syslog"`,
 	// `"book_log"`.
-	Name string `protobuf:"bytes,10,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"`
 	// The time the event described by the log entry occurred. If
 	// omitted, defaults to operation start time.
-	Timestamp *timestamp.Timestamp `protobuf:"bytes,11,opt,name=timestamp" json:"timestamp,omitempty"`
+	Timestamp *timestamp.Timestamp `protobuf:"bytes,11,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
 	// The severity of the log entry. The default value is
 	// `LogSeverity.DEFAULT`.
-	Severity _type.LogSeverity `protobuf:"varint,12,opt,name=severity,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
+	Severity _type.LogSeverity `protobuf:"varint,12,opt,name=severity,proto3,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
 	// A unique ID for the log entry used for deduplication. If omitted,
 	// the implementation will generate one based on operation_id.
-	InsertId string `protobuf:"bytes,4,opt,name=insert_id,json=insertId" json:"insert_id,omitempty"`
+	InsertId string `protobuf:"bytes,4,opt,name=insert_id,json=insertId,proto3" json:"insert_id,omitempty"`
 	// A set of user-defined (key, value) data that provides additional
 	// information about the log entry.
-	Labels map[string]string `protobuf:"bytes,13,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,13,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The log entry payload, which can be one of multiple types.
 	//
 	// Types that are valid to be assigned to Payload:
@@ -81,13 +81,13 @@ type isLogEntry_Payload interface {
 }
 
 type LogEntry_ProtoPayload struct {
-	ProtoPayload *any.Any `protobuf:"bytes,2,opt,name=proto_payload,json=protoPayload,oneof"`
+	ProtoPayload *any.Any `protobuf:"bytes,2,opt,name=proto_payload,json=protoPayload,proto3,oneof"`
 }
 type LogEntry_TextPayload struct {
-	TextPayload string `protobuf:"bytes,3,opt,name=text_payload,json=textPayload,oneof"`
+	TextPayload string `protobuf:"bytes,3,opt,name=text_payload,json=textPayload,proto3,oneof"`
 }
 type LogEntry_StructPayload struct {
-	StructPayload *_struct.Struct `protobuf:"bytes,6,opt,name=struct_payload,json=structPayload,oneof"`
+	StructPayload *_struct.Struct `protobuf:"bytes,6,opt,name=struct_payload,json=structPayload,proto3,oneof"`
 }
 
 func (*LogEntry_ProtoPayload) isLogEntry_Payload()  {}
diff --git a/googleapis/api/servicecontrol/v1/metric_value.pb.go b/googleapis/api/servicecontrol/v1/metric_value.pb.go
index 73c73d8306ca98358d21de28843b8b68151ca5a8..0945c20fed1ad8de4f1ab4ba5cd322ebd1924158 100644
--- a/googleapis/api/servicecontrol/v1/metric_value.pb.go
+++ b/googleapis/api/servicecontrol/v1/metric_value.pb.go
@@ -26,15 +26,15 @@ type MetricValue struct {
 	// The labels describing the metric value.
 	// See comments on [google.api.servicecontrol.v1.Operation.labels][google.api.servicecontrol.v1.Operation.labels] for
 	// the overriding relationship.
-	Labels map[string]string `protobuf:"bytes,1,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The start of the time period over which this metric value's measurement
 	// applies. The time period has different semantics for different metric
 	// types (cumulative, delta, and gauge). See the metric definition
 	// documentation in the service configuration for details.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The end of the time period over which this metric value's measurement
 	// applies.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// The value. The type of value used in the request must
 	// agree with the metric definition in the service configuration, otherwise
 	// the MetricValue is rejected.
@@ -80,19 +80,19 @@ type isMetricValue_Value interface {
 }
 
 type MetricValue_BoolValue struct {
-	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,oneof"`
+	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
 }
 type MetricValue_Int64Value struct {
-	Int64Value int64 `protobuf:"varint,5,opt,name=int64_value,json=int64Value,oneof"`
+	Int64Value int64 `protobuf:"varint,5,opt,name=int64_value,json=int64Value,proto3,oneof"`
 }
 type MetricValue_DoubleValue struct {
-	DoubleValue float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue,oneof"`
+	DoubleValue float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue,proto3,oneof"`
 }
 type MetricValue_StringValue struct {
-	StringValue string `protobuf:"bytes,7,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,7,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type MetricValue_DistributionValue struct {
-	DistributionValue *Distribution `protobuf:"bytes,8,opt,name=distribution_value,json=distributionValue,oneof"`
+	DistributionValue *Distribution `protobuf:"bytes,8,opt,name=distribution_value,json=distributionValue,proto3,oneof"`
 }
 
 func (*MetricValue_BoolValue) isMetricValue_Value()         {}
@@ -285,9 +285,9 @@ func _MetricValue_OneofSizer(msg proto.Message) (n int) {
 // end time, and label values.
 type MetricValueSet struct {
 	// The metric name defined in the service configuration.
-	MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName" json:"metric_name,omitempty"`
+	MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
 	// The values in this metric.
-	MetricValues         []*MetricValue `protobuf:"bytes,2,rep,name=metric_values,json=metricValues" json:"metric_values,omitempty"`
+	MetricValues         []*MetricValue `protobuf:"bytes,2,rep,name=metric_values,json=metricValues,proto3" json:"metric_values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
diff --git a/googleapis/api/servicecontrol/v1/operation.pb.go b/googleapis/api/servicecontrol/v1/operation.pb.go
index c19d1889fa4db5620e2bc704b633aa7641ccf89b..9a260f2900be1f365c5f83a1c2646cf1061635ac 100644
--- a/googleapis/api/servicecontrol/v1/operation.pb.go
+++ b/googleapis/api/servicecontrol/v1/operation.pb.go
@@ -60,9 +60,9 @@ type Operation struct {
 	// In scenarios where an operation is computed from existing information
 	// and an idempotent id is desirable for deduplication purpose, UUID version 5
 	// is recommended. See RFC 4122 for details.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Fully qualified name of the operation. Reserved for future use.
-	OperationName string `protobuf:"bytes,2,opt,name=operation_name,json=operationName" json:"operation_name,omitempty"`
+	OperationName string `protobuf:"bytes,2,opt,name=operation_name,json=operationName,proto3" json:"operation_name,omitempty"`
 	// Identity of the consumer who is using the service.
 	// This field should be filled in for the operations initiated by a
 	// consumer, but not for service-initiated operations that are
@@ -72,13 +72,13 @@ type Operation struct {
 	//   project:<project_id>,
 	//   project_number:<project_number>,
 	//   api_key:<api_key>.
-	ConsumerId string `protobuf:"bytes,3,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
+	ConsumerId string `protobuf:"bytes,3,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"`
 	// Required. Start time of the operation.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End time of the operation.
 	// Required when the operation is used in [ServiceController.Report][google.api.servicecontrol.v1.ServiceController.Report],
 	// but optional when the operation is used in [ServiceController.Check][google.api.servicecontrol.v1.ServiceController.Check].
-	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Labels describing the operation. Only the following labels are allowed:
 	//
 	// - Labels describing monitored resources as defined in
@@ -94,7 +94,7 @@ type Operation struct {
 	//        used to handle the API request (e.g. ESP),
 	//     - `servicecontrol.googleapis.com/platform` describing the platform
 	//        where the API is served (e.g. GAE, GCE, GKE).
-	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Represents information about this operation. Each MetricValueSet
 	// corresponds to a metric defined in the service configuration.
 	// The data type used in the MetricValueSet must agree with
@@ -105,11 +105,11 @@ type Operation struct {
 	// label value combinations. If a request has such duplicated MetricValue
 	// instances, the entire request is rejected with
 	// an invalid argument error.
-	MetricValueSets []*MetricValueSet `protobuf:"bytes,7,rep,name=metric_value_sets,json=metricValueSets" json:"metric_value_sets,omitempty"`
+	MetricValueSets []*MetricValueSet `protobuf:"bytes,7,rep,name=metric_value_sets,json=metricValueSets,proto3" json:"metric_value_sets,omitempty"`
 	// Represents information to be logged.
-	LogEntries []*LogEntry `protobuf:"bytes,8,rep,name=log_entries,json=logEntries" json:"log_entries,omitempty"`
+	LogEntries []*LogEntry `protobuf:"bytes,8,rep,name=log_entries,json=logEntries,proto3" json:"log_entries,omitempty"`
 	// DO NOT USE. This is an experimental field.
-	Importance           Operation_Importance `protobuf:"varint,11,opt,name=importance,enum=google.api.servicecontrol.v1.Operation_Importance" json:"importance,omitempty"`
+	Importance           Operation_Importance `protobuf:"varint,11,opt,name=importance,proto3,enum=google.api.servicecontrol.v1.Operation_Importance" json:"importance,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
diff --git a/googleapis/api/servicecontrol/v1/quota_controller.pb.go b/googleapis/api/servicecontrol/v1/quota_controller.pb.go
index 3391bd8a817ea1fd282508466a49708879acb34b..94f3614418aede0edae2e269d133e910da04bdfa 100644
--- a/googleapis/api/servicecontrol/v1/quota_controller.pb.go
+++ b/googleapis/api/servicecontrol/v1/quota_controller.pb.go
@@ -120,13 +120,13 @@ type AllocateQuotaRequest struct {
 	// `"pubsub.googleapis.com"`.
 	//
 	// See [google.api.Service][google.api.Service] for the definition of a service name.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// Operation that describes the quota allocation.
-	AllocateOperation *QuotaOperation `protobuf:"bytes,2,opt,name=allocate_operation,json=allocateOperation" json:"allocate_operation,omitempty"`
+	AllocateOperation *QuotaOperation `protobuf:"bytes,2,opt,name=allocate_operation,json=allocateOperation,proto3" json:"allocate_operation,omitempty"`
 	// Specifies which version of service configuration should be used to process
 	// the request. If unspecified or no matching version can be found, the latest
 	// one will be used.
-	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -187,7 +187,7 @@ type QuotaOperation struct {
 	// operation is computed from existing information and an idempotent id is
 	// desirable for deduplication purpose, UUID version 5 is recommended. See
 	// RFC 4122 for details.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Fully qualified name of the API method for which this quota operation is
 	// requested. This name is used for matching quota rules or metric rules and
 	// billing status rules defined in service configuration. This field is not
@@ -195,16 +195,16 @@ type QuotaOperation struct {
 	//
 	// Example of an RPC method name:
 	//     google.example.library.v1.LibraryService.CreateShelf
-	MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName" json:"method_name,omitempty"`
+	MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"`
 	// Identity of the consumer for whom this quota operation is being performed.
 	//
 	// This can be in one of the following formats:
 	//   project:<project_id>,
 	//   project_number:<project_number>,
 	//   api_key:<api_key>.
-	ConsumerId string `protobuf:"bytes,3,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
+	ConsumerId string `protobuf:"bytes,3,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"`
 	// Labels describing the operation.
-	Labels map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Represents information about this operation. Each MetricValueSet
 	// corresponds to a metric defined in the service configuration.
 	// The data type used in the MetricValueSet must agree with
@@ -215,9 +215,9 @@ type QuotaOperation struct {
 	// label value combinations. If a request has such duplicated MetricValue
 	// instances, the entire request is rejected with
 	// an invalid argument error.
-	QuotaMetrics []*MetricValueSet `protobuf:"bytes,5,rep,name=quota_metrics,json=quotaMetrics" json:"quota_metrics,omitempty"`
+	QuotaMetrics []*MetricValueSet `protobuf:"bytes,5,rep,name=quota_metrics,json=quotaMetrics,proto3" json:"quota_metrics,omitempty"`
 	// Quota mode for this operation.
-	QuotaMode            QuotaOperation_QuotaMode `protobuf:"varint,6,opt,name=quota_mode,json=quotaMode,enum=google.api.servicecontrol.v1.QuotaOperation_QuotaMode" json:"quota_mode,omitempty"`
+	QuotaMode            QuotaOperation_QuotaMode `protobuf:"varint,6,opt,name=quota_mode,json=quotaMode,proto3,enum=google.api.servicecontrol.v1.QuotaOperation_QuotaMode" json:"quota_mode,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -293,9 +293,9 @@ func (m *QuotaOperation) GetQuotaMode() QuotaOperation_QuotaMode {
 type AllocateQuotaResponse struct {
 	// The same operation_id value used in the AllocateQuotaRequest. Used for
 	// logging and diagnostics purposes.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Indicates the decision of the allocate.
-	AllocateErrors []*QuotaError `protobuf:"bytes,2,rep,name=allocate_errors,json=allocateErrors" json:"allocate_errors,omitempty"`
+	AllocateErrors []*QuotaError `protobuf:"bytes,2,rep,name=allocate_errors,json=allocateErrors,proto3" json:"allocate_errors,omitempty"`
 	// Quota metrics to indicate the result of allocation. Depending on the
 	// request, one or more of the following metrics will be included:
 	//
@@ -306,9 +306,9 @@ type AllocateQuotaResponse struct {
 	// 2. The quota limit reached condition will be specified using the following
 	// boolean metric :
 	//   "serviceruntime.googleapis.com/quota/exceeded"
-	QuotaMetrics []*MetricValueSet `protobuf:"bytes,3,rep,name=quota_metrics,json=quotaMetrics" json:"quota_metrics,omitempty"`
+	QuotaMetrics []*MetricValueSet `protobuf:"bytes,3,rep,name=quota_metrics,json=quotaMetrics,proto3" json:"quota_metrics,omitempty"`
 	// ID of the actual config used to process the request.
-	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -369,13 +369,13 @@ func (m *AllocateQuotaResponse) GetServiceConfigId() string {
 // Represents error information for [QuotaOperation][google.api.servicecontrol.v1.QuotaOperation].
 type QuotaError struct {
 	// Error code.
-	Code QuotaError_Code `protobuf:"varint,1,opt,name=code,enum=google.api.servicecontrol.v1.QuotaError_Code" json:"code,omitempty"`
+	Code QuotaError_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.api.servicecontrol.v1.QuotaError_Code" json:"code,omitempty"`
 	// 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>".
-	Subject string `protobuf:"bytes,2,opt,name=subject" json:"subject,omitempty"`
+	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
 	// Free-form text that provides details on the cause of the error.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -479,8 +479,7 @@ func (c *quotaControllerClient) AllocateQuota(ctx context.Context, in *AllocateQ
 	return out, nil
 }
 
-// Server API for QuotaController service
-
+// QuotaControllerServer is the server API for QuotaController service.
 type QuotaControllerServer interface {
 	// Attempts to allocate quota for the specified consumer. It should be called
 	// before the operation is executed.
diff --git a/googleapis/api/servicecontrol/v1/service_controller.pb.go b/googleapis/api/servicecontrol/v1/service_controller.pb.go
index 3091f30539a8fceadd905b35ce7a45d4fc895c2d..57cbd37d24e0d36ac1ec895f80539f2f6a786060 100644
--- a/googleapis/api/servicecontrol/v1/service_controller.pb.go
+++ b/googleapis/api/servicecontrol/v1/service_controller.pb.go
@@ -33,15 +33,15 @@ type CheckRequest struct {
 	// See
 	// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
 	// for the definition of a service name.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The operation to be checked.
-	Operation *Operation `protobuf:"bytes,2,opt,name=operation" json:"operation,omitempty"`
+	Operation *Operation `protobuf:"bytes,2,opt,name=operation,proto3" json:"operation,omitempty"`
 	// Specifies which version of service configuration should be used to process
 	// the request.
 	//
 	// If unspecified or no matching version can be found, the
 	// latest one will be used.
-	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId      string   `protobuf:"bytes,4,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -96,17 +96,17 @@ func (m *CheckRequest) GetServiceConfigId() string {
 type CheckResponse struct {
 	// The same operation_id value used in the [CheckRequest][google.api.servicecontrol.v1.CheckRequest].
 	// Used for logging and diagnostics purposes.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Indicate the decision of the check.
 	//
 	// If no check errors are present, the service should process the operation.
 	// Otherwise the service should use the list of errors to determine the
 	// appropriate action.
-	CheckErrors []*CheckError `protobuf:"bytes,2,rep,name=check_errors,json=checkErrors" json:"check_errors,omitempty"`
+	CheckErrors []*CheckError `protobuf:"bytes,2,rep,name=check_errors,json=checkErrors,proto3" json:"check_errors,omitempty"`
 	// The actual config id used to process the request.
-	ServiceConfigId string `protobuf:"bytes,5,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId string `protobuf:"bytes,5,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	// Feedback data returned from the server during processing a Check request.
-	CheckInfo            *CheckResponse_CheckInfo `protobuf:"bytes,6,opt,name=check_info,json=checkInfo" json:"check_info,omitempty"`
+	CheckInfo            *CheckResponse_CheckInfo `protobuf:"bytes,6,opt,name=check_info,json=checkInfo,proto3" json:"check_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -166,7 +166,7 @@ func (m *CheckResponse) GetCheckInfo() *CheckResponse_CheckInfo {
 
 type CheckResponse_CheckInfo struct {
 	// Consumer info of this check.
-	ConsumerInfo         *CheckResponse_ConsumerInfo `protobuf:"bytes,2,opt,name=consumer_info,json=consumerInfo" json:"consumer_info,omitempty"`
+	ConsumerInfo         *CheckResponse_ConsumerInfo `protobuf:"bytes,2,opt,name=consumer_info,json=consumerInfo,proto3" json:"consumer_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -207,7 +207,7 @@ func (m *CheckResponse_CheckInfo) GetConsumerInfo() *CheckResponse_ConsumerInfo
 type CheckResponse_ConsumerInfo struct {
 	// The Google cloud project number, e.g. 1234567890. A value of 0 indicates
 	// no project number is found.
-	ProjectNumber        int64    `protobuf:"varint,1,opt,name=project_number,json=projectNumber" json:"project_number,omitempty"`
+	ProjectNumber        int64    `protobuf:"varint,1,opt,name=project_number,json=projectNumber,proto3" json:"project_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -252,7 +252,7 @@ type ReportRequest struct {
 	// See
 	// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
 	// for the definition of a service name.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// Operations to be reported.
 	//
 	// Typically the service should report one operation per request.
@@ -263,13 +263,13 @@ type ReportRequest struct {
 	// If multiple operations are in a single request, the total request size
 	// should be no larger than 1MB. See [ReportResponse.report_errors][google.api.servicecontrol.v1.ReportResponse.report_errors] for
 	// partial failure behavior.
-	Operations []*Operation `protobuf:"bytes,2,rep,name=operations" json:"operations,omitempty"`
+	Operations []*Operation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"`
 	// Specifies which version of service config should be used to process the
 	// request.
 	//
 	// If unspecified or no matching version can be found, the
 	// latest one will be used.
-	ServiceConfigId      string   `protobuf:"bytes,3,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId      string   `protobuf:"bytes,3,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -336,9 +336,9 @@ type ReportResponse struct {
 	// 3. A failed RPC status indicates a general non-deterministic failure.
 	//    When this happens, it's impossible to know which of the
 	//    'Operations' in the request succeeded or failed.
-	ReportErrors []*ReportResponse_ReportError `protobuf:"bytes,1,rep,name=report_errors,json=reportErrors" json:"report_errors,omitempty"`
+	ReportErrors []*ReportResponse_ReportError `protobuf:"bytes,1,rep,name=report_errors,json=reportErrors,proto3" json:"report_errors,omitempty"`
 	// The actual config id used to process the request.
-	ServiceConfigId      string   `protobuf:"bytes,2,opt,name=service_config_id,json=serviceConfigId" json:"service_config_id,omitempty"`
+	ServiceConfigId      string   `protobuf:"bytes,2,opt,name=service_config_id,json=serviceConfigId,proto3" json:"service_config_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -385,9 +385,9 @@ func (m *ReportResponse) GetServiceConfigId() string {
 // Represents the processing error of one [Operation][google.api.servicecontrol.v1.Operation] in the request.
 type ReportResponse_ReportError struct {
 	// The [Operation.operation_id][google.api.servicecontrol.v1.Operation.operation_id] value from the request.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Details of the error when processing the [Operation][google.api.servicecontrol.v1.Operation].
-	Status               *status.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
+	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -510,8 +510,7 @@ func (c *serviceControllerClient) Report(ctx context.Context, in *ReportRequest,
 	return out, nil
 }
 
-// Server API for ServiceController service
-
+// ServiceControllerServer is the server API for ServiceController service.
 type ServiceControllerServer interface {
 	// Checks an operation with Google Service Control to decide whether
 	// the given operation should proceed. It should be called before the
diff --git a/googleapis/api/servicemanagement/v1/resources.pb.go b/googleapis/api/servicemanagement/v1/resources.pb.go
index 158bc829584118fdc8ab85cf1dc9f576e261c9b9..7032f4c464def025addf1402eb825d9cbc62e364 100644
--- a/googleapis/api/servicemanagement/v1/resources.pb.go
+++ b/googleapis/api/servicemanagement/v1/resources.pb.go
@@ -201,9 +201,9 @@ func (Rollout_RolloutStatus) EnumDescriptor() ([]byte, []int) {
 type ManagedService struct {
 	// The name of the service. See the [overview](/service-management/overview)
 	// for naming requirements.
-	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// ID of the project that produces and owns this service.
-	ProducerProjectId    string   `protobuf:"bytes,3,opt,name=producer_project_id,json=producerProjectId" json:"producer_project_id,omitempty"`
+	ProducerProjectId    string   `protobuf:"bytes,3,opt,name=producer_project_id,json=producerProjectId,proto3" json:"producer_project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -251,13 +251,13 @@ func (m *ManagedService) GetProducerProjectId() string {
 type OperationMetadata struct {
 	// The full name of the resources that this operation is directly
 	// associated with.
-	ResourceNames []string `protobuf:"bytes,1,rep,name=resource_names,json=resourceNames" json:"resource_names,omitempty"`
+	ResourceNames []string `protobuf:"bytes,1,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
 	// Detailed status information for each step. The order is undetermined.
-	Steps []*OperationMetadata_Step `protobuf:"bytes,2,rep,name=steps" json:"steps,omitempty"`
+	Steps []*OperationMetadata_Step `protobuf:"bytes,2,rep,name=steps,proto3" json:"steps,omitempty"`
 	// Percentage of completion of this operation, ranging from 0 to 100.
-	ProgressPercentage int32 `protobuf:"varint,3,opt,name=progress_percentage,json=progressPercentage" json:"progress_percentage,omitempty"`
+	ProgressPercentage int32 `protobuf:"varint,3,opt,name=progress_percentage,json=progressPercentage,proto3" json:"progress_percentage,omitempty"`
 	// The start time of the operation.
-	StartTime            *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime            *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -318,9 +318,9 @@ func (m *OperationMetadata) GetStartTime() *timestamp.Timestamp {
 // Represents the status of one operation step.
 type OperationMetadata_Step struct {
 	// The short description of the step.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// The status code.
-	Status               OperationMetadata_Status `protobuf:"varint,4,opt,name=status,enum=google.api.servicemanagement.v1.OperationMetadata_Status" json:"status,omitempty"`
+	Status               OperationMetadata_Status `protobuf:"varint,4,opt,name=status,proto3,enum=google.api.servicemanagement.v1.OperationMetadata_Status" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -367,11 +367,11 @@ func (m *OperationMetadata_Step) GetStatus() OperationMetadata_Status {
 // Represents a diagnostic message (error or warning)
 type Diagnostic struct {
 	// File name and line number of the error or warning.
-	Location string `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
 	// The kind of diagnostic information provided.
-	Kind Diagnostic_Kind `protobuf:"varint,2,opt,name=kind,enum=google.api.servicemanagement.v1.Diagnostic_Kind" json:"kind,omitempty"`
+	Kind Diagnostic_Kind `protobuf:"varint,2,opt,name=kind,proto3,enum=google.api.servicemanagement.v1.Diagnostic_Kind" json:"kind,omitempty"`
 	// Message describing the error or warning.
-	Message              string   `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
+	Message              string   `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -428,10 +428,10 @@ type ConfigSource struct {
 	// 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.
-	Id string `protobuf:"bytes,5,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
 	// Set of source configuration files that are used to generate a service
 	// configuration (`google.api.Service`).
-	Files                []*ConfigFile `protobuf:"bytes,2,rep,name=files" json:"files,omitempty"`
+	Files                []*ConfigFile `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -478,11 +478,11 @@ func (m *ConfigSource) GetFiles() []*ConfigFile {
 // Generic specification of a source configuration file
 type ConfigFile struct {
 	// The file name of the configuration file (full or relative path).
-	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath" json:"file_path,omitempty"`
+	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
 	// The bytes that constitute the file.
 	FileContents []byte `protobuf:"bytes,3,opt,name=file_contents,json=fileContents,proto3" json:"file_contents,omitempty"`
 	// The type of configuration file this represents.
-	FileType             ConfigFile_FileType `protobuf:"varint,4,opt,name=file_type,json=fileType,enum=google.api.servicemanagement.v1.ConfigFile_FileType" json:"file_type,omitempty"`
+	FileType             ConfigFile_FileType `protobuf:"varint,4,opt,name=file_type,json=fileType,proto3,enum=google.api.servicemanagement.v1.ConfigFile_FileType" json:"file_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -537,7 +537,7 @@ func (m *ConfigFile) GetFileType() ConfigFile_FileType {
 type ConfigRef struct {
 	// Resource name of a service config. It must have the following
 	// format: "services/{service name}/configs/{config id}".
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -584,7 +584,7 @@ type ChangeReport struct {
 	// of each change.
 	// A ConfigChange identifier is a dot separated path to the configuration.
 	// Example: visibility.rules[selector='LibraryService.CreateBook'].restriction
-	ConfigChanges        []*configchange.ConfigChange `protobuf:"bytes,1,rep,name=config_changes,json=configChanges" json:"config_changes,omitempty"`
+	ConfigChanges        []*configchange.ConfigChange `protobuf:"bytes,1,rep,name=config_changes,json=configChanges,proto3" json:"config_changes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -633,15 +633,15 @@ type Rollout struct {
 	// date in ISO 8601 format.  "revision number" is a monotonically increasing
 	// positive number that is reset every day for each service.
 	// An example of the generated rollout_id is '2016-02-16r1'
-	RolloutId string `protobuf:"bytes,1,opt,name=rollout_id,json=rolloutId" json:"rollout_id,omitempty"`
+	RolloutId string `protobuf:"bytes,1,opt,name=rollout_id,json=rolloutId,proto3" json:"rollout_id,omitempty"`
 	// Creation time of the rollout. Readonly.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The user who created the Rollout. Readonly.
-	CreatedBy string `protobuf:"bytes,3,opt,name=created_by,json=createdBy" json:"created_by,omitempty"`
+	CreatedBy string `protobuf:"bytes,3,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
 	// The status of this rollout. Readonly. In case of a failed rollout,
 	// the system will automatically rollback to the current Rollout
 	// version. Readonly.
-	Status Rollout_RolloutStatus `protobuf:"varint,4,opt,name=status,enum=google.api.servicemanagement.v1.Rollout_RolloutStatus" json:"status,omitempty"`
+	Status Rollout_RolloutStatus `protobuf:"varint,4,opt,name=status,proto3,enum=google.api.servicemanagement.v1.Rollout_RolloutStatus" json:"status,omitempty"`
 	// Strategy that defines which versions of service configurations should be
 	// pushed
 	// and how they should be used at runtime.
@@ -651,7 +651,7 @@ type Rollout struct {
 	//	*Rollout_DeleteServiceStrategy_
 	Strategy isRollout_Strategy `protobuf_oneof:"strategy"`
 	// The name of the service associated with this Rollout.
-	ServiceName          string   `protobuf:"bytes,8,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName          string   `protobuf:"bytes,8,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -686,10 +686,10 @@ type isRollout_Strategy interface {
 }
 
 type Rollout_TrafficPercentStrategy_ struct {
-	TrafficPercentStrategy *Rollout_TrafficPercentStrategy `protobuf:"bytes,5,opt,name=traffic_percent_strategy,json=trafficPercentStrategy,oneof"`
+	TrafficPercentStrategy *Rollout_TrafficPercentStrategy `protobuf:"bytes,5,opt,name=traffic_percent_strategy,json=trafficPercentStrategy,proto3,oneof"`
 }
 type Rollout_DeleteServiceStrategy_ struct {
-	DeleteServiceStrategy *Rollout_DeleteServiceStrategy `protobuf:"bytes,200,opt,name=delete_service_strategy,json=deleteServiceStrategy,oneof"`
+	DeleteServiceStrategy *Rollout_DeleteServiceStrategy `protobuf:"bytes,200,opt,name=delete_service_strategy,json=deleteServiceStrategy,proto3,oneof"`
 }
 
 func (*Rollout_TrafficPercentStrategy_) isRollout_Strategy() {}
@@ -859,7 +859,7 @@ type Rollout_TrafficPercentStrategy struct {
 	// Maps service configuration IDs to their corresponding traffic percentage.
 	// Key is the service configuration ID, Value is the traffic percentage
 	// which must be greater than 0.0 and the sum must equal to 100.0.
-	Percentages          map[string]float64 `protobuf:"bytes,1,rep,name=percentages" json:"percentages,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	Percentages          map[string]float64 `protobuf:"bytes,1,rep,name=percentages,proto3" json:"percentages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
diff --git a/googleapis/api/servicemanagement/v1/servicemanager.pb.go b/googleapis/api/servicemanagement/v1/servicemanager.pb.go
index e70ed9a2e1e08ad7dc93f7c0c8ed39b363d4634d..101b8ecbc972458fa734b81e23c5a8956520b010 100644
--- a/googleapis/api/servicemanagement/v1/servicemanager.pb.go
+++ b/googleapis/api/servicemanagement/v1/servicemanager.pb.go
@@ -61,18 +61,18 @@ func (GetServiceConfigRequest_ConfigView) EnumDescriptor() ([]byte, []int) {
 // Request message for `ListServices` method.
 type ListServicesRequest struct {
 	// Include services produced by the specified project.
-	ProducerProjectId string `protobuf:"bytes,1,opt,name=producer_project_id,json=producerProjectId" json:"producer_project_id,omitempty"`
+	ProducerProjectId string `protobuf:"bytes,1,opt,name=producer_project_id,json=producerProjectId,proto3" json:"producer_project_id,omitempty"`
 	// Requested size of the next page of data.
-	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token identifying which result to start with; returned by a previous list
 	// call.
-	PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Include services consumed by the specified consumer.
 	//
 	// The Google Service Management implementation accepts the following
 	// forms:
 	// - project:<project_id>
-	ConsumerId           string   `protobuf:"bytes,7,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
+	ConsumerId           string   `protobuf:"bytes,7,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -133,9 +133,9 @@ func (m *ListServicesRequest) GetConsumerId() string {
 // Response message for `ListServices` method.
 type ListServicesResponse struct {
 	// The returned services will only have the name field set.
-	Services []*ManagedService `protobuf:"bytes,1,rep,name=services" json:"services,omitempty"`
+	Services []*ManagedService `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
 	// Token that can be passed to `ListServices` to resume a paginated query.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -183,7 +183,7 @@ func (m *ListServicesResponse) GetNextPageToken() string {
 type GetServiceRequest struct {
 	// The name of the service.  See the `ServiceManager` overview for naming
 	// requirements.  For example: `example.googleapis.com`.
-	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -223,7 +223,7 @@ func (m *GetServiceRequest) GetServiceName() string {
 // Request message for CreateService method.
 type CreateServiceRequest struct {
 	// Initial values for the service resource.
-	Service              *ManagedService `protobuf:"bytes,1,opt,name=service" json:"service,omitempty"`
+	Service              *ManagedService `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -264,7 +264,7 @@ func (m *CreateServiceRequest) GetService() *ManagedService {
 type DeleteServiceRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -305,7 +305,7 @@ func (m *DeleteServiceRequest) GetServiceName() string {
 type UndeleteServiceRequest struct {
 	// The name of the service. See the [overview](/service-management/overview)
 	// for naming requirements. For example: `example.googleapis.com`.
-	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName          string   `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -345,7 +345,7 @@ func (m *UndeleteServiceRequest) GetServiceName() string {
 // Response message for UndeleteService method.
 type UndeleteServiceResponse struct {
 	// Revived service resource.
-	Service              *ManagedService `protobuf:"bytes,1,opt,name=service" json:"service,omitempty"`
+	Service              *ManagedService `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -386,12 +386,12 @@ func (m *UndeleteServiceResponse) GetService() *ManagedService {
 type GetServiceConfigRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The id of the service configuration resource.
-	ConfigId string `protobuf:"bytes,2,opt,name=config_id,json=configId" json:"config_id,omitempty"`
+	ConfigId string `protobuf:"bytes,2,opt,name=config_id,json=configId,proto3" json:"config_id,omitempty"`
 	// Specifies which parts of the Service Config should be returned in the
 	// response.
-	View                 GetServiceConfigRequest_ConfigView `protobuf:"varint,3,opt,name=view,enum=google.api.servicemanagement.v1.GetServiceConfigRequest_ConfigView" json:"view,omitempty"`
+	View                 GetServiceConfigRequest_ConfigView `protobuf:"varint,3,opt,name=view,proto3,enum=google.api.servicemanagement.v1.GetServiceConfigRequest_ConfigView" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
 	XXX_unrecognized     []byte                             `json:"-"`
 	XXX_sizecache        int32                              `json:"-"`
@@ -446,11 +446,11 @@ func (m *GetServiceConfigRequest) GetView() GetServiceConfigRequest_ConfigView {
 type ListServiceConfigsRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The token of the page to retrieve.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The max number of items to include in the response list.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -504,9 +504,9 @@ func (m *ListServiceConfigsRequest) GetPageSize() int32 {
 // Response message for ListServiceConfigs method.
 type ListServiceConfigsResponse struct {
 	// The list of service configuration resources.
-	ServiceConfigs []*serviceconfig.Service `protobuf:"bytes,1,rep,name=service_configs,json=serviceConfigs" json:"service_configs,omitempty"`
+	ServiceConfigs []*serviceconfig.Service `protobuf:"bytes,1,rep,name=service_configs,json=serviceConfigs,proto3" json:"service_configs,omitempty"`
 	// The token of the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -554,9 +554,9 @@ func (m *ListServiceConfigsResponse) GetNextPageToken() string {
 type CreateServiceConfigRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The service configuration resource.
-	ServiceConfig        *serviceconfig.Service `protobuf:"bytes,2,opt,name=service_config,json=serviceConfig" json:"service_config,omitempty"`
+	ServiceConfig        *serviceconfig.Service `protobuf:"bytes,2,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -604,13 +604,13 @@ func (m *CreateServiceConfigRequest) GetServiceConfig() *serviceconfig.Service {
 type SubmitConfigSourceRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The source configuration for the service.
-	ConfigSource *ConfigSource `protobuf:"bytes,2,opt,name=config_source,json=configSource" json:"config_source,omitempty"`
+	ConfigSource *ConfigSource `protobuf:"bytes,2,opt,name=config_source,json=configSource,proto3" json:"config_source,omitempty"`
 	// Optional. If set, this will result in the generation of a
 	// `google.api.Service` configuration based on the `ConfigSource` provided,
 	// but the generated config and the sources will NOT be persisted.
-	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly" json:"validate_only,omitempty"`
+	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -664,7 +664,7 @@ func (m *SubmitConfigSourceRequest) GetValidateOnly() bool {
 // Response message for SubmitConfigSource method.
 type SubmitConfigSourceResponse struct {
 	// The generated service configuration.
-	ServiceConfig        *serviceconfig.Service `protobuf:"bytes,1,opt,name=service_config,json=serviceConfig" json:"service_config,omitempty"`
+	ServiceConfig        *serviceconfig.Service `protobuf:"bytes,1,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -705,9 +705,9 @@ func (m *SubmitConfigSourceResponse) GetServiceConfig() *serviceconfig.Service {
 type CreateServiceRolloutRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The rollout resource. The `service_name` field is output only.
-	Rollout              *Rollout `protobuf:"bytes,2,opt,name=rollout" json:"rollout,omitempty"`
+	Rollout              *Rollout `protobuf:"bytes,2,opt,name=rollout,proto3" json:"rollout,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -755,11 +755,11 @@ func (m *CreateServiceRolloutRequest) GetRollout() *Rollout {
 type ListServiceRolloutsRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The token of the page to retrieve.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The max number of items to include in the response list.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Use `filter` to return subset of rollouts.
 	// The following filters are supported:
 	//   -- To limit the results to only those in
@@ -768,7 +768,7 @@ type ListServiceRolloutsRequest struct {
 	//   -- To limit the results to those in
 	//      [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
 	//      or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
-	Filter               string   `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -829,9 +829,9 @@ func (m *ListServiceRolloutsRequest) GetFilter() string {
 // Response message for ListServiceRollouts method.
 type ListServiceRolloutsResponse struct {
 	// The list of rollout resources.
-	Rollouts []*Rollout `protobuf:"bytes,1,rep,name=rollouts" json:"rollouts,omitempty"`
+	Rollouts []*Rollout `protobuf:"bytes,1,rep,name=rollouts,proto3" json:"rollouts,omitempty"`
 	// The token of the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -879,9 +879,9 @@ func (m *ListServiceRolloutsResponse) GetNextPageToken() string {
 type GetServiceRolloutRequest struct {
 	// The name of the service.  See the [overview](/service-management/overview)
 	// for naming requirements.  For example: `example.googleapis.com`.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The id of the rollout resource.
-	RolloutId            string   `protobuf:"bytes,2,opt,name=rollout_id,json=rolloutId" json:"rollout_id,omitempty"`
+	RolloutId            string   `protobuf:"bytes,2,opt,name=rollout_id,json=rolloutId,proto3" json:"rollout_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -929,7 +929,7 @@ func (m *GetServiceRolloutRequest) GetRolloutId() string {
 type EnableServiceRequest struct {
 	// Name of the service to enable. Specifying an unknown service name will
 	// cause the request to fail.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The identity of consumer resource which service enablement will be
 	// applied to.
 	//
@@ -939,7 +939,7 @@ type EnableServiceRequest struct {
 	//
 	// Note: this is made compatible with
 	// google.api.servicecontrol.v1.Operation.consumer_id.
-	ConsumerId           string   `protobuf:"bytes,2,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
+	ConsumerId           string   `protobuf:"bytes,2,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -987,7 +987,7 @@ func (m *EnableServiceRequest) GetConsumerId() string {
 type DisableServiceRequest struct {
 	// Name of the service to disable. Specifying an unknown service name
 	// will cause the request to fail.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The identity of consumer resource which service disablement will be
 	// applied to.
 	//
@@ -997,7 +997,7 @@ type DisableServiceRequest struct {
 	//
 	// Note: this is made compatible with
 	// google.api.servicecontrol.v1.Operation.consumer_id.
-	ConsumerId           string   `protobuf:"bytes,2,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
+	ConsumerId           string   `protobuf:"bytes,2,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1048,13 +1048,13 @@ type GenerateConfigReportRequest struct {
 	// [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
 	// [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
 	// and [google.api.Service][google.api.Service]
-	NewConfig *any.Any `protobuf:"bytes,1,opt,name=new_config,json=newConfig" json:"new_config,omitempty"`
+	NewConfig *any.Any `protobuf:"bytes,1,opt,name=new_config,json=newConfig,proto3" json:"new_config,omitempty"`
 	// Service configuration against which the comparison will be done.
 	// For this version of API, the supported types are
 	// [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
 	// [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
 	// and [google.api.Service][google.api.Service]
-	OldConfig            *any.Any `protobuf:"bytes,2,opt,name=old_config,json=oldConfig" json:"old_config,omitempty"`
+	OldConfig            *any.Any `protobuf:"bytes,2,opt,name=old_config,json=oldConfig,proto3" json:"old_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1101,16 +1101,16 @@ func (m *GenerateConfigReportRequest) GetOldConfig() *any.Any {
 // Response message for GenerateConfigReport method.
 type GenerateConfigReportResponse struct {
 	// Name of the service this report belongs to.
-	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// ID of the service configuration this report belongs to.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// list of ChangeReport, each corresponding to comparison between two
 	// service configurations.
-	ChangeReports []*ChangeReport `protobuf:"bytes,3,rep,name=change_reports,json=changeReports" json:"change_reports,omitempty"`
+	ChangeReports []*ChangeReport `protobuf:"bytes,3,rep,name=change_reports,json=changeReports,proto3" json:"change_reports,omitempty"`
 	// Errors / Linter warnings associated with the service definition this
 	// report
 	// belongs to.
-	Diagnostics          []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics" json:"diagnostics,omitempty"`
+	Diagnostics          []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1455,8 +1455,7 @@ func (c *serviceManagerClient) DisableService(ctx context.Context, in *DisableSe
 	return out, nil
 }
 
-// Server API for ServiceManager service
-
+// ServiceManagerServer is the server API for ServiceManager service.
 type ServiceManagerServer interface {
 	// Lists managed services.
 	//
diff --git a/googleapis/appengine/legacy/audit_data.pb.go b/googleapis/appengine/legacy/audit_data.pb.go
index 38397d65364ca6743bb93774b4d73d7b0c4c704b..c110f166855759c54af7f5e8647b2e4a17dd5054 100644
--- a/googleapis/appengine/legacy/audit_data.pb.go
+++ b/googleapis/appengine/legacy/audit_data.pb.go
@@ -22,10 +22,10 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type AuditData struct {
 	// Text description of the admin event.
 	// This is the "Event" column in Admin Console's Admin Logs.
-	EventMessage string `protobuf:"bytes,1,opt,name=event_message,json=eventMessage" json:"event_message,omitempty"`
+	EventMessage string `protobuf:"bytes,1,opt,name=event_message,json=eventMessage,proto3" json:"event_message,omitempty"`
 	// Arbitrary event data.
 	// This is the "Result" column in Admin Console's Admin Logs.
-	EventData            map[string]string `protobuf:"bytes,2,rep,name=event_data,json=eventData" json:"event_data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	EventData            map[string]string `protobuf:"bytes,2,rep,name=event_data,json=eventData,proto3" json:"event_data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/appengine/logging/v1/request_log.pb.go b/googleapis/appengine/logging/v1/request_log.pb.go
index 464bec39b431c827fa9207dd86fcd0f00891fb85..b52186c5196142fb4c0df7f46e96f4cf1c745e83 100644
--- a/googleapis/appengine/logging/v1/request_log.pb.go
+++ b/googleapis/appengine/logging/v1/request_log.pb.go
@@ -24,13 +24,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Application log line emitted while processing a request.
 type LogLine struct {
 	// Approximate time when this log entry was made.
-	Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time" json:"time,omitempty"`
+	Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
 	// Severity of this log entry.
-	Severity _type.LogSeverity `protobuf:"varint,2,opt,name=severity,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
+	Severity _type.LogSeverity `protobuf:"varint,2,opt,name=severity,proto3,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
 	// App-provided log message.
-	LogMessage string `protobuf:"bytes,3,opt,name=log_message,json=logMessage" json:"log_message,omitempty"`
+	LogMessage string `protobuf:"bytes,3,opt,name=log_message,json=logMessage,proto3" json:"log_message,omitempty"`
 	// Where in the source code this log message was written.
-	SourceLocation       *SourceLocation `protobuf:"bytes,4,opt,name=source_location,json=sourceLocation" json:"source_location,omitempty"`
+	SourceLocation       *SourceLocation `protobuf:"bytes,4,opt,name=source_location,json=sourceLocation,proto3" json:"source_location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -92,16 +92,16 @@ func (m *LogLine) GetSourceLocation() *SourceLocation {
 type SourceLocation struct {
 	// Source file name. Depending on the runtime environment, this might be a
 	// simple name or a fully-qualified name.
-	File string `protobuf:"bytes,1,opt,name=file" json:"file,omitempty"`
+	File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"`
 	// Line within the source file.
-	Line int64 `protobuf:"varint,2,opt,name=line" json:"line,omitempty"`
+	Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
 	// Human-readable name of the function or method being invoked, with optional
 	// context such as the class or package name. This information is used in
 	// contexts such as the logs viewer, where a file and line number are less
 	// meaningful. The format can vary by language. For example:
 	// `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function`
 	// (Python).
-	FunctionName         string   `protobuf:"bytes,3,opt,name=function_name,json=functionName" json:"function_name,omitempty"`
+	FunctionName         string   `protobuf:"bytes,3,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -157,10 +157,10 @@ func (m *SourceLocation) GetFunctionName() string {
 type SourceReference struct {
 	// Optional. A URI string identifying the repository.
 	// Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
-	Repository string `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+	Repository string `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
 	// The canonical and persistent identifier of the deployed revision.
 	// Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
-	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId" json:"revision_id,omitempty"`
+	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -208,42 +208,42 @@ func (m *SourceReference) GetRevisionId() string {
 // application.
 type RequestLog struct {
 	// Application that handled this request.
-	AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"`
+	AppId string `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
 	// Module of the application that handled this request.
-	ModuleId string `protobuf:"bytes,37,opt,name=module_id,json=moduleId" json:"module_id,omitempty"`
+	ModuleId string `protobuf:"bytes,37,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"`
 	// Version of the application that handled this request.
-	VersionId string `protobuf:"bytes,2,opt,name=version_id,json=versionId" json:"version_id,omitempty"`
+	VersionId string `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
 	// Globally unique identifier for a request, which is based on the request
 	// start time.  Request IDs for requests which started later will compare
 	// greater as strings than those for requests which started earlier.
-	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	// Origin IP address.
-	Ip string `protobuf:"bytes,4,opt,name=ip" json:"ip,omitempty"`
+	Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"`
 	// Time when the request started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time when the request finished.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Latency of the request.
-	Latency *duration.Duration `protobuf:"bytes,8,opt,name=latency" json:"latency,omitempty"`
+	Latency *duration.Duration `protobuf:"bytes,8,opt,name=latency,proto3" json:"latency,omitempty"`
 	// Number of CPU megacycles used to process request.
-	MegaCycles int64 `protobuf:"varint,9,opt,name=mega_cycles,json=megaCycles" json:"mega_cycles,omitempty"`
+	MegaCycles int64 `protobuf:"varint,9,opt,name=mega_cycles,json=megaCycles,proto3" json:"mega_cycles,omitempty"`
 	// Request method. Example: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`, `"DELETE"`.
-	Method string `protobuf:"bytes,10,opt,name=method" json:"method,omitempty"`
+	Method string `protobuf:"bytes,10,opt,name=method,proto3" json:"method,omitempty"`
 	// Contains the path and query portion of the URL that was requested. For
 	// example, if the URL was "http://example.com/app?name=val", the resource
 	// would be "/app?name=val".  The fragment identifier, which is identified by
 	// the `#` character, is not included.
-	Resource string `protobuf:"bytes,11,opt,name=resource" json:"resource,omitempty"`
+	Resource string `protobuf:"bytes,11,opt,name=resource,proto3" json:"resource,omitempty"`
 	// HTTP version of request. Example: `"HTTP/1.1"`.
-	HttpVersion string `protobuf:"bytes,12,opt,name=http_version,json=httpVersion" json:"http_version,omitempty"`
+	HttpVersion string `protobuf:"bytes,12,opt,name=http_version,json=httpVersion,proto3" json:"http_version,omitempty"`
 	// HTTP response status code. Example: 200, 404.
-	Status int32 `protobuf:"varint,13,opt,name=status" json:"status,omitempty"`
+	Status int32 `protobuf:"varint,13,opt,name=status,proto3" json:"status,omitempty"`
 	// Size in bytes sent back to client by request.
-	ResponseSize int64 `protobuf:"varint,14,opt,name=response_size,json=responseSize" json:"response_size,omitempty"`
+	ResponseSize int64 `protobuf:"varint,14,opt,name=response_size,json=responseSize,proto3" json:"response_size,omitempty"`
 	// Referrer URL of request.
-	Referrer string `protobuf:"bytes,15,opt,name=referrer" json:"referrer,omitempty"`
+	Referrer string `protobuf:"bytes,15,opt,name=referrer,proto3" json:"referrer,omitempty"`
 	// User agent that made the request.
-	UserAgent string `protobuf:"bytes,16,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"`
+	UserAgent string `protobuf:"bytes,16,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
 	// The logged-in user who made the request.
 	//
 	// Most likely, this is the part of the user's email before the `@` sign.  The
@@ -252,43 +252,43 @@ type RequestLog struct {
 	// available to the application via the App Engine Users API.
 	//
 	// This field will be populated starting with App Engine 1.9.21.
-	Nickname string `protobuf:"bytes,40,opt,name=nickname" json:"nickname,omitempty"`
+	Nickname string `protobuf:"bytes,40,opt,name=nickname,proto3" json:"nickname,omitempty"`
 	// File or class that handled the request.
-	UrlMapEntry string `protobuf:"bytes,17,opt,name=url_map_entry,json=urlMapEntry" json:"url_map_entry,omitempty"`
+	UrlMapEntry string `protobuf:"bytes,17,opt,name=url_map_entry,json=urlMapEntry,proto3" json:"url_map_entry,omitempty"`
 	// Internet host and port number of the resource being requested.
-	Host string `protobuf:"bytes,20,opt,name=host" json:"host,omitempty"`
+	Host string `protobuf:"bytes,20,opt,name=host,proto3" json:"host,omitempty"`
 	// An indication of the relative cost of serving this request.
-	Cost float64 `protobuf:"fixed64,21,opt,name=cost" json:"cost,omitempty"`
+	Cost float64 `protobuf:"fixed64,21,opt,name=cost,proto3" json:"cost,omitempty"`
 	// Queue name of the request, in the case of an offline request.
-	TaskQueueName string `protobuf:"bytes,22,opt,name=task_queue_name,json=taskQueueName" json:"task_queue_name,omitempty"`
+	TaskQueueName string `protobuf:"bytes,22,opt,name=task_queue_name,json=taskQueueName,proto3" json:"task_queue_name,omitempty"`
 	// Task name of the request, in the case of an offline request.
-	TaskName string `protobuf:"bytes,23,opt,name=task_name,json=taskName" json:"task_name,omitempty"`
+	TaskName string `protobuf:"bytes,23,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
 	// Whether this was a loading request for the instance.
-	WasLoadingRequest bool `protobuf:"varint,24,opt,name=was_loading_request,json=wasLoadingRequest" json:"was_loading_request,omitempty"`
+	WasLoadingRequest bool `protobuf:"varint,24,opt,name=was_loading_request,json=wasLoadingRequest,proto3" json:"was_loading_request,omitempty"`
 	// Time this request spent in the pending request queue.
-	PendingTime *duration.Duration `protobuf:"bytes,25,opt,name=pending_time,json=pendingTime" json:"pending_time,omitempty"`
+	PendingTime *duration.Duration `protobuf:"bytes,25,opt,name=pending_time,json=pendingTime,proto3" json:"pending_time,omitempty"`
 	// If the instance processing this request belongs to a manually scaled
 	// module, then this is the 0-based index of the instance. Otherwise, this
 	// value is -1.
-	InstanceIndex int32 `protobuf:"varint,26,opt,name=instance_index,json=instanceIndex" json:"instance_index,omitempty"`
+	InstanceIndex int32 `protobuf:"varint,26,opt,name=instance_index,json=instanceIndex,proto3" json:"instance_index,omitempty"`
 	// Whether this request is finished or active.
-	Finished bool `protobuf:"varint,27,opt,name=finished" json:"finished,omitempty"`
+	Finished bool `protobuf:"varint,27,opt,name=finished,proto3" json:"finished,omitempty"`
 	// Whether this is the first `RequestLog` entry for this request.  If an
 	// active request has several `RequestLog` entries written to Stackdriver
 	// Logging, then this field will be set for one of them.
-	First bool `protobuf:"varint,42,opt,name=first" json:"first,omitempty"`
+	First bool `protobuf:"varint,42,opt,name=first,proto3" json:"first,omitempty"`
 	// An identifier for the instance that handled the request.
-	InstanceId string `protobuf:"bytes,28,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId string `protobuf:"bytes,28,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	// A list of log lines emitted by the application while serving this request.
-	Line []*LogLine `protobuf:"bytes,29,rep,name=line" json:"line,omitempty"`
+	Line []*LogLine `protobuf:"bytes,29,rep,name=line,proto3" json:"line,omitempty"`
 	// App Engine release version.
-	AppEngineRelease string `protobuf:"bytes,38,opt,name=app_engine_release,json=appEngineRelease" json:"app_engine_release,omitempty"`
+	AppEngineRelease string `protobuf:"bytes,38,opt,name=app_engine_release,json=appEngineRelease,proto3" json:"app_engine_release,omitempty"`
 	// Stackdriver Trace identifier for this request.
-	TraceId string `protobuf:"bytes,39,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
+	TraceId string `protobuf:"bytes,39,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
 	// Source code for the application that handled this request. There can be
 	// more than one source reference per deployed application if source code is
 	// distributed among multiple repositories.
-	SourceReference      []*SourceReference `protobuf:"bytes,41,rep,name=source_reference,json=sourceReference" json:"source_reference,omitempty"`
+	SourceReference      []*SourceReference `protobuf:"bytes,41,rep,name=source_reference,json=sourceReference,proto3" json:"source_reference,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
diff --git a/googleapis/appengine/v1/app_yaml.pb.go b/googleapis/appengine/v1/app_yaml.pb.go
index 32a39e6b41e4f982a3546edf6d4041b51e5497c6..320d5df8de8267f552b2257a9fd507ac91baa422 100644
--- a/googleapis/appengine/v1/app_yaml.pb.go
+++ b/googleapis/appengine/v1/app_yaml.pb.go
@@ -218,16 +218,16 @@ func (UrlMap_RedirectHttpResponseCode) EnumDescriptor() ([]byte, []int) {
 type ApiConfigHandler struct {
 	// Action to take when users access resources that require
 	// authentication. Defaults to `redirect`.
-	AuthFailAction AuthFailAction `protobuf:"varint,1,opt,name=auth_fail_action,json=authFailAction,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
+	AuthFailAction AuthFailAction `protobuf:"varint,1,opt,name=auth_fail_action,json=authFailAction,proto3,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
 	// Level of login required to access this resource. Defaults to
 	// `optional`.
-	Login LoginRequirement `protobuf:"varint,2,opt,name=login,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
+	Login LoginRequirement `protobuf:"varint,2,opt,name=login,proto3,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
 	// Path to the script from the application root directory.
-	Script string `protobuf:"bytes,3,opt,name=script" json:"script,omitempty"`
+	Script string `protobuf:"bytes,3,opt,name=script,proto3" json:"script,omitempty"`
 	// Security (HTTPS) enforcement for this URL.
-	SecurityLevel SecurityLevel `protobuf:"varint,4,opt,name=security_level,json=securityLevel,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
+	SecurityLevel SecurityLevel `protobuf:"varint,4,opt,name=security_level,json=securityLevel,proto3,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
 	// URL to serve the endpoint at.
-	Url                  string   `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"`
+	Url                  string   `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -295,11 +295,11 @@ func (m *ApiConfigHandler) GetUrl() string {
 // Custom static error page to be served when an error occurs.
 type ErrorHandler struct {
 	// Error condition this handler applies to.
-	ErrorCode ErrorHandler_ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,enum=google.appengine.v1.ErrorHandler_ErrorCode" json:"error_code,omitempty"`
+	ErrorCode ErrorHandler_ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=google.appengine.v1.ErrorHandler_ErrorCode" json:"error_code,omitempty"`
 	// Static file content to be served for this error.
-	StaticFile string `protobuf:"bytes,2,opt,name=static_file,json=staticFile" json:"static_file,omitempty"`
+	StaticFile string `protobuf:"bytes,2,opt,name=static_file,json=staticFile,proto3" json:"static_file,omitempty"`
 	// MIME type of file. Defaults to `text/html`.
-	MimeType             string   `protobuf:"bytes,3,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType             string   `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -358,7 +358,7 @@ type UrlMap struct {
 	// 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.
-	UrlRegex string `protobuf:"bytes,1,opt,name=url_regex,json=urlRegex" json:"url_regex,omitempty"`
+	UrlRegex string `protobuf:"bytes,1,opt,name=url_regex,json=urlRegex,proto3" json:"url_regex,omitempty"`
 	// Type of handler for this URL pattern.
 	//
 	// Types that are valid to be assigned to HandlerType:
@@ -367,15 +367,15 @@ type UrlMap struct {
 	//	*UrlMap_ApiEndpoint
 	HandlerType isUrlMap_HandlerType `protobuf_oneof:"handler_type"`
 	// Security (HTTPS) enforcement for this URL.
-	SecurityLevel SecurityLevel `protobuf:"varint,5,opt,name=security_level,json=securityLevel,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
+	SecurityLevel SecurityLevel `protobuf:"varint,5,opt,name=security_level,json=securityLevel,proto3,enum=google.appengine.v1.SecurityLevel" json:"security_level,omitempty"`
 	// Level of login required to access this resource.
-	Login LoginRequirement `protobuf:"varint,6,opt,name=login,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
+	Login LoginRequirement `protobuf:"varint,6,opt,name=login,proto3,enum=google.appengine.v1.LoginRequirement" json:"login,omitempty"`
 	// Action to take when users access resources that require
 	// authentication. Defaults to `redirect`.
-	AuthFailAction AuthFailAction `protobuf:"varint,7,opt,name=auth_fail_action,json=authFailAction,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
+	AuthFailAction AuthFailAction `protobuf:"varint,7,opt,name=auth_fail_action,json=authFailAction,proto3,enum=google.appengine.v1.AuthFailAction" json:"auth_fail_action,omitempty"`
 	// `30x` code to use when performing redirects for the `secure` field.
 	// Defaults to `302`.
-	RedirectHttpResponseCode UrlMap_RedirectHttpResponseCode `protobuf:"varint,8,opt,name=redirect_http_response_code,json=redirectHttpResponseCode,enum=google.appengine.v1.UrlMap_RedirectHttpResponseCode" json:"redirect_http_response_code,omitempty"`
+	RedirectHttpResponseCode UrlMap_RedirectHttpResponseCode `protobuf:"varint,8,opt,name=redirect_http_response_code,json=redirectHttpResponseCode,proto3,enum=google.appengine.v1.UrlMap_RedirectHttpResponseCode" json:"redirect_http_response_code,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{}                        `json:"-"`
 	XXX_unrecognized         []byte                          `json:"-"`
 	XXX_sizecache            int32                           `json:"-"`
@@ -410,13 +410,13 @@ type isUrlMap_HandlerType interface {
 }
 
 type UrlMap_StaticFiles struct {
-	StaticFiles *StaticFilesHandler `protobuf:"bytes,2,opt,name=static_files,json=staticFiles,oneof"`
+	StaticFiles *StaticFilesHandler `protobuf:"bytes,2,opt,name=static_files,json=staticFiles,proto3,oneof"`
 }
 type UrlMap_Script struct {
-	Script *ScriptHandler `protobuf:"bytes,3,opt,name=script,oneof"`
+	Script *ScriptHandler `protobuf:"bytes,3,opt,name=script,proto3,oneof"`
 }
 type UrlMap_ApiEndpoint struct {
-	ApiEndpoint *ApiEndpointHandler `protobuf:"bytes,4,opt,name=api_endpoint,json=apiEndpoint,oneof"`
+	ApiEndpoint *ApiEndpointHandler `protobuf:"bytes,4,opt,name=api_endpoint,json=apiEndpoint,proto3,oneof"`
 }
 
 func (*UrlMap_StaticFiles) isUrlMap_HandlerType() {}
@@ -587,29 +587,29 @@ type StaticFilesHandler struct {
 	// 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.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// Regular expression that matches the file paths for all files that should be
 	// referenced by this handler.
-	UploadPathRegex string `protobuf:"bytes,2,opt,name=upload_path_regex,json=uploadPathRegex" json:"upload_path_regex,omitempty"`
+	UploadPathRegex string `protobuf:"bytes,2,opt,name=upload_path_regex,json=uploadPathRegex,proto3" json:"upload_path_regex,omitempty"`
 	// HTTP headers to use for all responses from these URLs.
-	HttpHeaders map[string]string `protobuf:"bytes,3,rep,name=http_headers,json=httpHeaders" json:"http_headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	HttpHeaders map[string]string `protobuf:"bytes,3,rep,name=http_headers,json=httpHeaders,proto3" json:"http_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	// Time a static file served by this handler should be cached
 	// by web proxies and browsers.
-	Expiration *duration.Duration `protobuf:"bytes,5,opt,name=expiration" json:"expiration,omitempty"`
+	Expiration *duration.Duration `protobuf:"bytes,5,opt,name=expiration,proto3" json:"expiration,omitempty"`
 	// Whether this handler should match the request if the file
 	// referenced by the handler does not exist.
-	RequireMatchingFile bool `protobuf:"varint,6,opt,name=require_matching_file,json=requireMatchingFile" json:"require_matching_file,omitempty"`
+	RequireMatchingFile bool `protobuf:"varint,6,opt,name=require_matching_file,json=requireMatchingFile,proto3" json:"require_matching_file,omitempty"`
 	// 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.
-	ApplicationReadable  bool     `protobuf:"varint,7,opt,name=application_readable,json=applicationReadable" json:"application_readable,omitempty"`
+	ApplicationReadable  bool     `protobuf:"varint,7,opt,name=application_readable,json=applicationReadable,proto3" json:"application_readable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -691,7 +691,7 @@ func (m *StaticFilesHandler) GetApplicationReadable() bool {
 // Executes a script to handle the request that matches the URL pattern.
 type ScriptHandler struct {
 	// Path to the script from the application root directory.
-	ScriptPath           string   `protobuf:"bytes,1,opt,name=script_path,json=scriptPath" json:"script_path,omitempty"`
+	ScriptPath           string   `protobuf:"bytes,1,opt,name=script_path,json=scriptPath,proto3" json:"script_path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -731,7 +731,7 @@ func (m *ScriptHandler) GetScriptPath() string {
 // Uses Google Cloud Endpoints to handle requests.
 type ApiEndpointHandler struct {
 	// Path to the script from the application root directory.
-	ScriptPath           string   `protobuf:"bytes,1,opt,name=script_path,json=scriptPath" json:"script_path,omitempty"`
+	ScriptPath           string   `protobuf:"bytes,1,opt,name=script_path,json=scriptPath,proto3" json:"script_path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -773,23 +773,23 @@ func (m *ApiEndpointHandler) GetScriptPath() string {
 // instances in App Engine flexible environment.
 type HealthCheck struct {
 	// Whether to explicitly disable health checks for this instance.
-	DisableHealthCheck bool `protobuf:"varint,1,opt,name=disable_health_check,json=disableHealthCheck" json:"disable_health_check,omitempty"`
+	DisableHealthCheck bool `protobuf:"varint,1,opt,name=disable_health_check,json=disableHealthCheck,proto3" json:"disable_health_check,omitempty"`
 	// Host header to send when performing an HTTP health check.
 	// Example: "myapp.appspot.com"
-	Host string `protobuf:"bytes,2,opt,name=host" json:"host,omitempty"`
+	Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
 	// Number of consecutive successful health checks required before receiving
 	// traffic.
-	HealthyThreshold uint32 `protobuf:"varint,3,opt,name=healthy_threshold,json=healthyThreshold" json:"healthy_threshold,omitempty"`
+	HealthyThreshold uint32 `protobuf:"varint,3,opt,name=healthy_threshold,json=healthyThreshold,proto3" json:"healthy_threshold,omitempty"`
 	// Number of consecutive failed health checks required before removing
 	// traffic.
-	UnhealthyThreshold uint32 `protobuf:"varint,4,opt,name=unhealthy_threshold,json=unhealthyThreshold" json:"unhealthy_threshold,omitempty"`
+	UnhealthyThreshold uint32 `protobuf:"varint,4,opt,name=unhealthy_threshold,json=unhealthyThreshold,proto3" json:"unhealthy_threshold,omitempty"`
 	// Number of consecutive failed health checks required before an instance is
 	// restarted.
-	RestartThreshold uint32 `protobuf:"varint,5,opt,name=restart_threshold,json=restartThreshold" json:"restart_threshold,omitempty"`
+	RestartThreshold uint32 `protobuf:"varint,5,opt,name=restart_threshold,json=restartThreshold,proto3" json:"restart_threshold,omitempty"`
 	// Interval between health checks.
-	CheckInterval *duration.Duration `protobuf:"bytes,6,opt,name=check_interval,json=checkInterval" json:"check_interval,omitempty"`
+	CheckInterval *duration.Duration `protobuf:"bytes,6,opt,name=check_interval,json=checkInterval,proto3" json:"check_interval,omitempty"`
 	// Time before the health check is considered failed.
-	Timeout              *duration.Duration `protobuf:"bytes,7,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout              *duration.Duration `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -871,9 +871,9 @@ func (m *HealthCheck) GetTimeout() *duration.Duration {
 // Third-party Python runtime library that is required by the application.
 type Library struct {
 	// Name of the library. Example: "django".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Version of the library to select, or "latest".
-	Version              string   `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version              string   `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/appengine/v1/appengine.pb.go b/googleapis/appengine/v1/appengine.pb.go
index 362750a5ac3150de5eb336cda65ed232023dc995..739783a0fa631d4d0f8bb7f301150fd7cf90646c 100644
--- a/googleapis/appengine/v1/appengine.pb.go
+++ b/googleapis/appengine/v1/appengine.pb.go
@@ -61,7 +61,7 @@ func (VersionView) EnumDescriptor() ([]byte, []int) {
 // Request message for `Applications.GetApplication`.
 type GetApplicationRequest struct {
 	// Name of the Application resource to get. Example: `apps/myapp`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -101,7 +101,7 @@ func (m *GetApplicationRequest) GetName() string {
 // Request message for 'Applications.RepairApplication'.
 type RepairApplicationRequest struct {
 	// Name of the application to repair. Example: `apps/myapp`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -141,11 +141,11 @@ func (m *RepairApplicationRequest) GetName() string {
 // Request message for `Services.ListServices`.
 type ListServicesRequest struct {
 	// Name of the parent Application resource. Example: `apps/myapp`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Maximum results to return per page.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Continuation token for fetching the next page of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -199,9 +199,9 @@ func (m *ListServicesRequest) GetPageToken() string {
 // Response message for `Services.ListServices`.
 type ListServicesResponse struct {
 	// The services belonging to the requested application.
-	Services []*Service `protobuf:"bytes,1,rep,name=services" json:"services,omitempty"`
+	Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
 	// Continuation token for fetching the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -248,7 +248,7 @@ func (m *ListServicesResponse) GetNextPageToken() string {
 // Request message for `Services.GetService`.
 type GetServiceRequest struct {
 	// Name of the resource requested. Example: `apps/myapp/services/default`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -288,12 +288,12 @@ func (m *GetServiceRequest) GetName() string {
 // Request message for `Services.UpdateService`.
 type UpdateServiceRequest struct {
 	// Name of the resource to update. Example: `apps/myapp/services/default`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A Service resource containing the updated service. Only fields set in the
 	// field mask will be updated.
-	Service *Service `protobuf:"bytes,2,opt,name=service" json:"service,omitempty"`
+	Service *Service `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
 	// Standard field mask for the set of fields to be updated.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Set to `true` to gradually shift traffic from one version to another
 	// single version. By default, traffic is shifted immediately.
 	// For gradual traffic migration, the target version
@@ -306,7 +306,7 @@ type UpdateServiceRequest struct {
 	// 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).
-	MigrateTraffic       bool     `protobuf:"varint,4,opt,name=migrate_traffic,json=migrateTraffic" json:"migrate_traffic,omitempty"`
+	MigrateTraffic       bool     `protobuf:"varint,4,opt,name=migrate_traffic,json=migrateTraffic,proto3" json:"migrate_traffic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -367,7 +367,7 @@ func (m *UpdateServiceRequest) GetMigrateTraffic() bool {
 // Request message for `Services.DeleteService`.
 type DeleteServiceRequest struct {
 	// Name of the resource requested. Example: `apps/myapp/services/default`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -408,13 +408,13 @@ func (m *DeleteServiceRequest) GetName() string {
 type ListVersionsRequest struct {
 	// Name of the parent Service resource. Example:
 	// `apps/myapp/services/default`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Controls the set of fields returned in the `List` response.
-	View VersionView `protobuf:"varint,2,opt,name=view,enum=google.appengine.v1.VersionView" json:"view,omitempty"`
+	View VersionView `protobuf:"varint,2,opt,name=view,proto3,enum=google.appengine.v1.VersionView" json:"view,omitempty"`
 	// Maximum results to return per page.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Continuation token for fetching the next page of results.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -475,9 +475,9 @@ func (m *ListVersionsRequest) GetPageToken() string {
 // Response message for `Versions.ListVersions`.
 type ListVersionsResponse struct {
 	// The versions belonging to the requested service.
-	Versions []*Version `protobuf:"bytes,1,rep,name=versions" json:"versions,omitempty"`
+	Versions []*Version `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"`
 	// Continuation token for fetching the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -525,9 +525,9 @@ func (m *ListVersionsResponse) GetNextPageToken() string {
 type GetVersionRequest struct {
 	// Name of the resource requested. Example:
 	// `apps/myapp/services/default/versions/v1`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Controls the set of fields returned in the `Get` response.
-	View                 VersionView `protobuf:"varint,2,opt,name=view,enum=google.appengine.v1.VersionView" json:"view,omitempty"`
+	View                 VersionView `protobuf:"varint,2,opt,name=view,proto3,enum=google.appengine.v1.VersionView" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -575,9 +575,9 @@ func (m *GetVersionRequest) GetView() VersionView {
 type CreateVersionRequest struct {
 	// Name of the parent resource to create this version under. Example:
 	// `apps/myapp/services/default`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Application deployment configuration.
-	Version              *Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version              *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -625,12 +625,12 @@ func (m *CreateVersionRequest) GetVersion() *Version {
 type UpdateVersionRequest struct {
 	// Name of the resource to update. Example:
 	// `apps/myapp/services/default/versions/1`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A Version containing the updated resource. Only fields set in the field
 	// mask will be updated.
-	Version *Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	// Standard field mask for the set of fields to be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -685,7 +685,7 @@ func (m *UpdateVersionRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteVersionRequest struct {
 	// Name of the resource requested. Example:
 	// `apps/myapp/services/default/versions/v1`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -726,11 +726,11 @@ func (m *DeleteVersionRequest) GetName() string {
 type ListInstancesRequest struct {
 	// Name of the parent Version resource. Example:
 	// `apps/myapp/services/default/versions/v1`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Maximum results to return per page.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Continuation token for fetching the next page of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -784,9 +784,9 @@ func (m *ListInstancesRequest) GetPageToken() string {
 // Response message for `Instances.ListInstances`.
 type ListInstancesResponse struct {
 	// The instances belonging to the requested version.
-	Instances []*Instance `protobuf:"bytes,1,rep,name=instances" json:"instances,omitempty"`
+	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
 	// Continuation token for fetching the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -834,7 +834,7 @@ func (m *ListInstancesResponse) GetNextPageToken() string {
 type GetInstanceRequest struct {
 	// Name of the resource requested. Example:
 	// `apps/myapp/services/default/versions/v1/instances/instance-1`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -875,7 +875,7 @@ func (m *GetInstanceRequest) GetName() string {
 type DeleteInstanceRequest struct {
 	// Name of the resource requested. Example:
 	// `apps/myapp/services/default/versions/v1/instances/instance-1`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -916,7 +916,7 @@ func (m *DeleteInstanceRequest) GetName() string {
 type DebugInstanceRequest struct {
 	// Name of the resource requested. Example:
 	// `apps/myapp/services/default/versions/v1/instances/instance-1`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1048,8 +1048,7 @@ func (c *instancesClient) DebugInstance(ctx context.Context, in *DebugInstanceRe
 	return out, nil
 }
 
-// Server API for Instances service
-
+// InstancesServer is the server API for Instances service.
 type InstancesServer interface {
 	// Lists the instances of a version.
 	ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error)
@@ -1254,8 +1253,7 @@ func (c *versionsClient) DeleteVersion(ctx context.Context, in *DeleteVersionReq
 	return out, nil
 }
 
-// Server API for Versions service
-
+// VersionsServer is the server API for Versions service.
 type VersionsServer interface {
 	// Lists the versions of a service.
 	ListVersions(context.Context, *ListVersionsRequest) (*ListVersionsResponse, error)
@@ -1466,8 +1464,7 @@ func (c *servicesClient) DeleteService(ctx context.Context, in *DeleteServiceReq
 	return out, nil
 }
 
-// Server API for Services service
-
+// ServicesServer is the server API for Services service.
 type ServicesServer interface {
 	// Lists all the services in the application.
 	ListServices(context.Context, *ListServicesRequest) (*ListServicesResponse, error)
@@ -1619,8 +1616,7 @@ func (c *applicationsClient) RepairApplication(ctx context.Context, in *RepairAp
 	return out, nil
 }
 
-// Server API for Applications service
-
+// ApplicationsServer is the server API for Applications service.
 type ApplicationsServer interface {
 	// Gets information about an application.
 	GetApplication(context.Context, *GetApplicationRequest) (*Application, error)
diff --git a/googleapis/appengine/v1/application.pb.go b/googleapis/appengine/v1/application.pb.go
index 37c7974fa7cdc35f0ceea0fa69286477ceac8611..b953ce83ed57c68c618a939a00832ecaffc5e7a7 100644
--- a/googleapis/appengine/v1/application.pb.go
+++ b/googleapis/appengine/v1/application.pb.go
@@ -27,22 +27,22 @@ type Application struct {
 	// Example: `apps/myapp`.
 	//
 	// @OutputOnly
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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`.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// HTTP path dispatch rules for requests to the application that do not
 	// explicitly target a service or version. Rules are order-dependent.
 	//
 	// @OutputOnly
-	DispatchRules []*UrlDispatchRule `protobuf:"bytes,3,rep,name=dispatch_rules,json=dispatchRules" json:"dispatch_rules,omitempty"`
+	DispatchRules []*UrlDispatchRule `protobuf:"bytes,3,rep,name=dispatch_rules,json=dispatchRules,proto3" json:"dispatch_rules,omitempty"`
 	// Google Apps authentication domain that controls which users can access
 	// this application.
 	//
 	// Defaults to open access for any Google Account.
-	AuthDomain string `protobuf:"bytes,6,opt,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"`
+	AuthDomain string `protobuf:"bytes,6,opt,name=auth_domain,json=authDomain,proto3" json:"auth_domain,omitempty"`
 	// 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.
@@ -56,26 +56,26 @@ type Application struct {
 	// `europe-west` - Western Europe
 	//
 	// `us-east1` - Eastern US
-	LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId string `protobuf:"bytes,7,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	// 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
-	CodeBucket string `protobuf:"bytes,8,opt,name=code_bucket,json=codeBucket" json:"code_bucket,omitempty"`
+	CodeBucket string `protobuf:"bytes,8,opt,name=code_bucket,json=codeBucket,proto3" json:"code_bucket,omitempty"`
 	// Cookie expiration policy for this application.
 	//
 	// @OutputOnly
-	DefaultCookieExpiration *duration.Duration `protobuf:"bytes,9,opt,name=default_cookie_expiration,json=defaultCookieExpiration" json:"default_cookie_expiration,omitempty"`
+	DefaultCookieExpiration *duration.Duration `protobuf:"bytes,9,opt,name=default_cookie_expiration,json=defaultCookieExpiration,proto3" json:"default_cookie_expiration,omitempty"`
 	// Hostname used to reach this application, as resolved by App Engine.
 	//
 	// @OutputOnly
-	DefaultHostname string `protobuf:"bytes,11,opt,name=default_hostname,json=defaultHostname" json:"default_hostname,omitempty"`
+	DefaultHostname string `protobuf:"bytes,11,opt,name=default_hostname,json=defaultHostname,proto3" json:"default_hostname,omitempty"`
 	// Google Cloud Storage bucket that can be used by this application to store
 	// content.
 	//
 	// @OutputOnly
-	DefaultBucket        string   `protobuf:"bytes,12,opt,name=default_bucket,json=defaultBucket" json:"default_bucket,omitempty"`
+	DefaultBucket        string   `protobuf:"bytes,12,opt,name=default_bucket,json=defaultBucket,proto3" json:"default_bucket,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -174,16 +174,16 @@ type UrlDispatchRule struct {
 	// specified before a period: "`*.`".
 	//
 	// Defaults to matching all domains: "`*`".
-	Domain string `protobuf:"bytes,1,opt,name=domain" json:"domain,omitempty"`
+	Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
 	// Pathname within the host. Must start with a "`/`". A
 	// single "`*`" can be included at the end of the path. The sum
 	// of the lengths of the domain and path may not exceed 100
 	// characters.
-	Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
 	// Resource ID of a service in this application that should
 	// serve the matched request. The service must already
 	// exist. Example: `default`.
-	Service              string   `protobuf:"bytes,3,opt,name=service" json:"service,omitempty"`
+	Service              string   `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/appengine/v1/audit_data.pb.go b/googleapis/appengine/v1/audit_data.pb.go
index f37934cd662ab31002699bbc98e6b31aec18c41e..e9d7c649f8da96c5e286be18f2c1883ffc21bb50 100644
--- a/googleapis/appengine/v1/audit_data.pb.go
+++ b/googleapis/appengine/v1/audit_data.pb.go
@@ -64,10 +64,10 @@ type isAuditData_Method interface {
 }
 
 type AuditData_UpdateService struct {
-	UpdateService *UpdateServiceMethod `protobuf:"bytes,1,opt,name=update_service,json=updateService,oneof"`
+	UpdateService *UpdateServiceMethod `protobuf:"bytes,1,opt,name=update_service,json=updateService,proto3,oneof"`
 }
 type AuditData_CreateVersion struct {
-	CreateVersion *CreateVersionMethod `protobuf:"bytes,2,opt,name=create_version,json=createVersion,oneof"`
+	CreateVersion *CreateVersionMethod `protobuf:"bytes,2,opt,name=create_version,json=createVersion,proto3,oneof"`
 }
 
 func (*AuditData_UpdateService) isAuditData_Method() {}
@@ -171,7 +171,7 @@ func _AuditData_OneofSizer(msg proto.Message) (n int) {
 // Detailed information about UpdateService call.
 type UpdateServiceMethod struct {
 	// Update service request.
-	Request              *UpdateServiceRequest `protobuf:"bytes,1,opt,name=request" json:"request,omitempty"`
+	Request              *UpdateServiceRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -211,7 +211,7 @@ func (m *UpdateServiceMethod) GetRequest() *UpdateServiceRequest {
 // Detailed information about CreateVersion call.
 type CreateVersionMethod struct {
 	// Create version request.
-	Request              *CreateVersionRequest `protobuf:"bytes,1,opt,name=request" json:"request,omitempty"`
+	Request              *CreateVersionRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
diff --git a/googleapis/appengine/v1/deploy.pb.go b/googleapis/appengine/v1/deploy.pb.go
index 84bd2fe39749f42e0b5a3242e1850e1510cb8362..2c0babc24ee1e2ab0e8fdf8ef606fcbcfb72dff9 100644
--- a/googleapis/appengine/v1/deploy.pb.go
+++ b/googleapis/appengine/v1/deploy.pb.go
@@ -24,12 +24,12 @@ type Deployment struct {
 	// 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.
-	Files map[string]*FileInfo `protobuf:"bytes,1,rep,name=files" json:"files,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Files map[string]*FileInfo `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// A Docker image that App Engine uses to run the version.
 	// Only applicable for instances in App Engine flexible environment.
-	Container *ContainerInfo `protobuf:"bytes,2,opt,name=container" json:"container,omitempty"`
+	Container *ContainerInfo `protobuf:"bytes,2,opt,name=container,proto3" json:"container,omitempty"`
 	// The zip file for this deployment, if this is a zip deployment.
-	Zip                  *ZipInfo `protobuf:"bytes,3,opt,name=zip" json:"zip,omitempty"`
+	Zip                  *ZipInfo `protobuf:"bytes,3,opt,name=zip,proto3" json:"zip,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -86,13 +86,13 @@ type FileInfo struct {
 	// 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\>'.
-	SourceUrl string `protobuf:"bytes,1,opt,name=source_url,json=sourceUrl" json:"source_url,omitempty"`
+	SourceUrl string `protobuf:"bytes,1,opt,name=source_url,json=sourceUrl,proto3" json:"source_url,omitempty"`
 	// The SHA1 hash of the file, in hex.
-	Sha1Sum string `protobuf:"bytes,2,opt,name=sha1_sum,json=sha1Sum" json:"sha1_sum,omitempty"`
+	Sha1Sum string `protobuf:"bytes,2,opt,name=sha1_sum,json=sha1Sum,proto3" json:"sha1_sum,omitempty"`
 	// The MIME type of the file.
 	//
 	// Defaults to the value from Google Cloud Storage.
-	MimeType             string   `protobuf:"bytes,3,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType             string   `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -149,7 +149,7 @@ type ContainerInfo struct {
 	// URI to the hosted container image in a Docker repository. 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"
-	Image                string   `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"`
+	Image                string   `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -190,11 +190,11 @@ type ZipInfo struct {
 	// 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\>'.
-	SourceUrl string `protobuf:"bytes,3,opt,name=source_url,json=sourceUrl" json:"source_url,omitempty"`
+	SourceUrl string `protobuf:"bytes,3,opt,name=source_url,json=sourceUrl,proto3" json:"source_url,omitempty"`
 	// 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.
-	FilesCount           int32    `protobuf:"varint,4,opt,name=files_count,json=filesCount" json:"files_count,omitempty"`
+	FilesCount           int32    `protobuf:"varint,4,opt,name=files_count,json=filesCount,proto3" json:"files_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/appengine/v1/instance.pb.go b/googleapis/appengine/v1/instance.pb.go
index a5d2a55c43af42689971cd5fe06eb4b0686cc2f4..f49ecb060ba8597f75aca9983e4cc8a69fce9f4c 100644
--- a/googleapis/appengine/v1/instance.pb.go
+++ b/googleapis/appengine/v1/instance.pb.go
@@ -54,69 +54,69 @@ type Instance struct {
 	// Example: `apps/myapp/services/default/versions/v1/instances/instance-1`.
 	//
 	// @OutputOnly
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Relative name of the instance within the version.
 	// Example: `instance-1`.
 	//
 	// @OutputOnly
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// App Engine release this instance is running on.
 	//
 	// @OutputOnly
-	AppEngineRelease string `protobuf:"bytes,3,opt,name=app_engine_release,json=appEngineRelease" json:"app_engine_release,omitempty"`
+	AppEngineRelease string `protobuf:"bytes,3,opt,name=app_engine_release,json=appEngineRelease,proto3" json:"app_engine_release,omitempty"`
 	// Availability of the instance.
 	//
 	// @OutputOnly
-	Availability Instance_Availability `protobuf:"varint,4,opt,name=availability,enum=google.appengine.v1.Instance_Availability" json:"availability,omitempty"`
+	Availability Instance_Availability `protobuf:"varint,4,opt,name=availability,proto3,enum=google.appengine.v1.Instance_Availability" json:"availability,omitempty"`
 	// Name of the virtual machine where this instance lives. Only applicable
 	// for instances in App Engine flexible environment.
 	//
 	// @OutputOnly
-	VmName string `protobuf:"bytes,5,opt,name=vm_name,json=vmName" json:"vm_name,omitempty"`
+	VmName string `protobuf:"bytes,5,opt,name=vm_name,json=vmName,proto3" json:"vm_name,omitempty"`
 	// Zone where the virtual machine is located. Only applicable for instances
 	// in App Engine flexible environment.
 	//
 	// @OutputOnly
-	VmZoneName string `protobuf:"bytes,6,opt,name=vm_zone_name,json=vmZoneName" json:"vm_zone_name,omitempty"`
+	VmZoneName string `protobuf:"bytes,6,opt,name=vm_zone_name,json=vmZoneName,proto3" json:"vm_zone_name,omitempty"`
 	// Virtual machine ID of this instance. Only applicable for instances in
 	// App Engine flexible environment.
 	//
 	// @OutputOnly
-	VmId string `protobuf:"bytes,7,opt,name=vm_id,json=vmId" json:"vm_id,omitempty"`
+	VmId string `protobuf:"bytes,7,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
 	// Time that this instance was started.
 	//
 	// @OutputOnly
-	StartTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Number of requests since this instance was started.
 	//
 	// @OutputOnly
-	Requests int32 `protobuf:"varint,9,opt,name=requests" json:"requests,omitempty"`
+	Requests int32 `protobuf:"varint,9,opt,name=requests,proto3" json:"requests,omitempty"`
 	// Number of errors since this instance was started.
 	//
 	// @OutputOnly
-	Errors int32 `protobuf:"varint,10,opt,name=errors" json:"errors,omitempty"`
+	Errors int32 `protobuf:"varint,10,opt,name=errors,proto3" json:"errors,omitempty"`
 	// Average queries per second (QPS) over the last minute.
 	//
 	// @OutputOnly
-	Qps float32 `protobuf:"fixed32,11,opt,name=qps" json:"qps,omitempty"`
+	Qps float32 `protobuf:"fixed32,11,opt,name=qps,proto3" json:"qps,omitempty"`
 	// Average latency (ms) over the last minute.
 	//
 	// @OutputOnly
-	AverageLatency int32 `protobuf:"varint,12,opt,name=average_latency,json=averageLatency" json:"average_latency,omitempty"`
+	AverageLatency int32 `protobuf:"varint,12,opt,name=average_latency,json=averageLatency,proto3" json:"average_latency,omitempty"`
 	// Total memory in use (bytes).
 	//
 	// @OutputOnly
-	MemoryUsage int64 `protobuf:"varint,13,opt,name=memory_usage,json=memoryUsage" json:"memory_usage,omitempty"`
+	MemoryUsage int64 `protobuf:"varint,13,opt,name=memory_usage,json=memoryUsage,proto3" json:"memory_usage,omitempty"`
 	// Status of the virtual machine where this instance lives. Only applicable
 	// for instances in App Engine flexible environment.
 	//
 	// @OutputOnly
-	VmStatus string `protobuf:"bytes,14,opt,name=vm_status,json=vmStatus" json:"vm_status,omitempty"`
+	VmStatus string `protobuf:"bytes,14,opt,name=vm_status,json=vmStatus,proto3" json:"vm_status,omitempty"`
 	// Whether this instance is in debug mode. Only applicable for instances in
 	// App Engine flexible environment.
 	//
 	// @OutputOnly
-	VmDebugEnabled       bool     `protobuf:"varint,15,opt,name=vm_debug_enabled,json=vmDebugEnabled" json:"vm_debug_enabled,omitempty"`
+	VmDebugEnabled       bool     `protobuf:"varint,15,opt,name=vm_debug_enabled,json=vmDebugEnabled,proto3" json:"vm_debug_enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/appengine/v1/location.pb.go b/googleapis/appengine/v1/location.pb.go
index b3fae5ad1d05bee5248b3d0b9ad4a4ac4f23889d..bd533eac53b6419f2d30e36940348b37ed86efb8 100644
--- a/googleapis/appengine/v1/location.pb.go
+++ b/googleapis/appengine/v1/location.pb.go
@@ -25,11 +25,11 @@ type LocationMetadata struct {
 	// App Engine Standard Environment is available in the given location.
 	//
 	// @OutputOnly
-	StandardEnvironmentAvailable bool `protobuf:"varint,2,opt,name=standard_environment_available,json=standardEnvironmentAvailable" json:"standard_environment_available,omitempty"`
+	StandardEnvironmentAvailable bool `protobuf:"varint,2,opt,name=standard_environment_available,json=standardEnvironmentAvailable,proto3" json:"standard_environment_available,omitempty"`
 	// App Engine Flexible Environment is available in the given location.
 	//
 	// @OutputOnly
-	FlexibleEnvironmentAvailable bool     `protobuf:"varint,4,opt,name=flexible_environment_available,json=flexibleEnvironmentAvailable" json:"flexible_environment_available,omitempty"`
+	FlexibleEnvironmentAvailable bool     `protobuf:"varint,4,opt,name=flexible_environment_available,json=flexibleEnvironmentAvailable,proto3" json:"flexible_environment_available,omitempty"`
 	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
 	XXX_unrecognized             []byte   `json:"-"`
 	XXX_sizecache                int32    `json:"-"`
diff --git a/googleapis/appengine/v1/operation.pb.go b/googleapis/appengine/v1/operation.pb.go
index 44091ea7543b9646715057a9b51fff7cd7797848..35c9f93d6ce08666c2d72c73c2248b269cbb5e5c 100644
--- a/googleapis/appengine/v1/operation.pb.go
+++ b/googleapis/appengine/v1/operation.pb.go
@@ -26,24 +26,24 @@ type OperationMetadataV1 struct {
 	// `google.appengine.v1.Versions.CreateVersion`.
 	//
 	// @OutputOnly
-	Method string `protobuf:"bytes,1,opt,name=method" json:"method,omitempty"`
+	Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
 	// Time that this operation was created.
 	//
 	// @OutputOnly
-	InsertTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=insert_time,json=insertTime" json:"insert_time,omitempty"`
+	InsertTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=insert_time,json=insertTime,proto3" json:"insert_time,omitempty"`
 	// Time that this operation completed.
 	//
 	// @OutputOnly
-	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// User who requested this operation.
 	//
 	// @OutputOnly
-	User string `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
+	User string `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
 	// Name of the resource that this operation is acting on. Example:
 	// `apps/myapp/services/default`.
 	//
 	// @OutputOnly
-	Target               string   `protobuf:"bytes,5,opt,name=target" json:"target,omitempty"`
+	Target               string   `protobuf:"bytes,5,opt,name=target,proto3" json:"target,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/appengine/v1/service.pb.go b/googleapis/appengine/v1/service.pb.go
index dccb1d27eaf1a397faf94c0de5f6db31c45e05a9..6decdae3b20cb8debe8ccb7b762509e37dfa3a2b 100644
--- a/googleapis/appengine/v1/service.pb.go
+++ b/googleapis/appengine/v1/service.pb.go
@@ -63,15 +63,15 @@ type Service struct {
 	// Example: `apps/myapp/services/default`.
 	//
 	// @OutputOnly
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Relative name of the service within the application.
 	// Example: `default`.
 	//
 	// @OutputOnly
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// Mapping that defines fractional HTTP traffic diversion to
 	// different versions within the service.
-	Split                *TrafficSplit `protobuf:"bytes,3,opt,name=split" json:"split,omitempty"`
+	Split                *TrafficSplit `protobuf:"bytes,3,opt,name=split,proto3" json:"split,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -128,7 +128,7 @@ type TrafficSplit struct {
 	// 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.
-	ShardBy TrafficSplit_ShardBy `protobuf:"varint,1,opt,name=shard_by,json=shardBy,enum=google.appengine.v1.TrafficSplit_ShardBy" json:"shard_by,omitempty"`
+	ShardBy TrafficSplit_ShardBy `protobuf:"varint,1,opt,name=shard_by,json=shardBy,proto3,enum=google.appengine.v1.TrafficSplit_ShardBy" json:"shard_by,omitempty"`
 	// 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
@@ -137,7 +137,7 @@ type TrafficSplit struct {
 	// 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.
-	Allocations          map[string]float64 `protobuf:"bytes,2,rep,name=allocations" json:"allocations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	Allocations          map[string]float64 `protobuf:"bytes,2,rep,name=allocations,proto3" json:"allocations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
diff --git a/googleapis/appengine/v1/version.pb.go b/googleapis/appengine/v1/version.pb.go
index ab507f439dbbb3731d4d20b3d67c4daba223e95e..8c04ac5709d2f69f7d939c1478441797263b13b9 100644
--- a/googleapis/appengine/v1/version.pb.go
+++ b/googleapis/appengine/v1/version.pb.go
@@ -116,11 +116,11 @@ type Version struct {
 	// `apps/myapp/services/default/versions/v1`.
 	//
 	// @OutputOnly
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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-".
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// Controls how instances are created.
 	//
 	// Defaults to `AutomaticScaling`.
@@ -132,100 +132,100 @@ type Version struct {
 	Scaling isVersion_Scaling `protobuf_oneof:"scaling"`
 	// Before an application can receive email or XMPP messages, the application
 	// must be configured to enable the service.
-	InboundServices []InboundServiceType `protobuf:"varint,6,rep,packed,name=inbound_services,json=inboundServices,enum=google.appengine.v1.InboundServiceType" json:"inbound_services,omitempty"`
+	InboundServices []InboundServiceType `protobuf:"varint,6,rep,packed,name=inbound_services,json=inboundServices,proto3,enum=google.appengine.v1.InboundServiceType" json:"inbound_services,omitempty"`
 	// 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_1G`
 	//
 	// Defaults to `F1` for AutomaticScaling and `B1` for ManualScaling or
 	// BasicScaling.
-	InstanceClass string `protobuf:"bytes,7,opt,name=instance_class,json=instanceClass" json:"instance_class,omitempty"`
+	InstanceClass string `protobuf:"bytes,7,opt,name=instance_class,json=instanceClass,proto3" json:"instance_class,omitempty"`
 	// Extra network settings. Only applicable for VM runtimes.
-	Network *Network `protobuf:"bytes,8,opt,name=network" json:"network,omitempty"`
+	Network *Network `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
 	// Machine resources for this version. Only applicable for VM runtimes.
-	Resources *Resources `protobuf:"bytes,9,opt,name=resources" json:"resources,omitempty"`
+	Resources *Resources `protobuf:"bytes,9,opt,name=resources,proto3" json:"resources,omitempty"`
 	// Desired runtime. Example: `python27`.
-	Runtime string `protobuf:"bytes,10,opt,name=runtime" json:"runtime,omitempty"`
+	Runtime string `protobuf:"bytes,10,opt,name=runtime,proto3" json:"runtime,omitempty"`
 	// Whether multiple requests can be dispatched to this version at once.
-	Threadsafe bool `protobuf:"varint,11,opt,name=threadsafe" json:"threadsafe,omitempty"`
+	Threadsafe bool `protobuf:"varint,11,opt,name=threadsafe,proto3" json:"threadsafe,omitempty"`
 	// Whether to deploy this version in a container on a virtual machine.
-	Vm bool `protobuf:"varint,12,opt,name=vm" json:"vm,omitempty"`
+	Vm bool `protobuf:"varint,12,opt,name=vm,proto3" json:"vm,omitempty"`
 	// Metadata settings that are supplied to this version to enable
 	// beta runtime features.
-	BetaSettings map[string]string `protobuf:"bytes,13,rep,name=beta_settings,json=betaSettings" json:"beta_settings,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	BetaSettings map[string]string `protobuf:"bytes,13,rep,name=beta_settings,json=betaSettings,proto3" json:"beta_settings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// App Engine execution environment for this version.
 	//
 	// Defaults to `standard`.
-	Env string `protobuf:"bytes,14,opt,name=env" json:"env,omitempty"`
+	Env string `protobuf:"bytes,14,opt,name=env,proto3" json:"env,omitempty"`
 	// 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`.
-	ServingStatus ServingStatus `protobuf:"varint,15,opt,name=serving_status,json=servingStatus,enum=google.appengine.v1.ServingStatus" json:"serving_status,omitempty"`
+	ServingStatus ServingStatus `protobuf:"varint,15,opt,name=serving_status,json=servingStatus,proto3,enum=google.appengine.v1.ServingStatus" json:"serving_status,omitempty"`
 	// Email address of the user who created this version.
 	//
 	// @OutputOnly
-	CreatedBy string `protobuf:"bytes,16,opt,name=created_by,json=createdBy" json:"created_by,omitempty"`
+	CreatedBy string `protobuf:"bytes,16,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
 	// Time that this version was created.
 	//
 	// @OutputOnly
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Total size in bytes of all the files that are included in this version
 	// and curerntly hosted on the App Engine disk.
 	//
 	// @OutputOnly
-	DiskUsageBytes int64 `protobuf:"varint,18,opt,name=disk_usage_bytes,json=diskUsageBytes" json:"disk_usage_bytes,omitempty"`
+	DiskUsageBytes int64 `protobuf:"varint,18,opt,name=disk_usage_bytes,json=diskUsageBytes,proto3" json:"disk_usage_bytes,omitempty"`
 	// 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.
-	Handlers []*UrlMap `protobuf:"bytes,100,rep,name=handlers" json:"handlers,omitempty"`
+	Handlers []*UrlMap `protobuf:"bytes,100,rep,name=handlers,proto3" json:"handlers,omitempty"`
 	// Custom static error pages. Limited to 10KB per page.
 	//
 	// Only returned in `GET` requests if `view=FULL` is set.
-	ErrorHandlers []*ErrorHandler `protobuf:"bytes,101,rep,name=error_handlers,json=errorHandlers" json:"error_handlers,omitempty"`
+	ErrorHandlers []*ErrorHandler `protobuf:"bytes,101,rep,name=error_handlers,json=errorHandlers,proto3" json:"error_handlers,omitempty"`
 	// Configuration for third-party Python runtime libraries that are required
 	// by the application.
 	//
 	// Only returned in `GET` requests if `view=FULL` is set.
-	Libraries []*Library `protobuf:"bytes,102,rep,name=libraries" json:"libraries,omitempty"`
+	Libraries []*Library `protobuf:"bytes,102,rep,name=libraries,proto3" json:"libraries,omitempty"`
 	// Serving configuration for
 	// [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/).
 	//
 	// Only returned in `GET` requests if `view=FULL` is set.
-	ApiConfig *ApiConfigHandler `protobuf:"bytes,103,opt,name=api_config,json=apiConfig" json:"api_config,omitempty"`
+	ApiConfig *ApiConfigHandler `protobuf:"bytes,103,opt,name=api_config,json=apiConfig,proto3" json:"api_config,omitempty"`
 	// Environment variables available to the application.
 	//
 	// Only returned in `GET` requests if `view=FULL` is set.
-	EnvVariables map[string]string `protobuf:"bytes,104,rep,name=env_variables,json=envVariables" json:"env_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	EnvVariables map[string]string `protobuf:"bytes,104,rep,name=env_variables,json=envVariables,proto3" json:"env_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	DefaultExpiration *duration.Duration `protobuf:"bytes,105,opt,name=default_expiration,json=defaultExpiration" json:"default_expiration,omitempty"`
+	DefaultExpiration *duration.Duration `protobuf:"bytes,105,opt,name=default_expiration,json=defaultExpiration,proto3" json:"default_expiration,omitempty"`
 	// 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.
-	HealthCheck *HealthCheck `protobuf:"bytes,106,opt,name=health_check,json=healthCheck" json:"health_check,omitempty"`
+	HealthCheck *HealthCheck `protobuf:"bytes,106,opt,name=health_check,json=healthCheck,proto3" json:"health_check,omitempty"`
 	// 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.
-	NobuildFilesRegex string `protobuf:"bytes,107,opt,name=nobuild_files_regex,json=nobuildFilesRegex" json:"nobuild_files_regex,omitempty"`
+	NobuildFilesRegex string `protobuf:"bytes,107,opt,name=nobuild_files_regex,json=nobuildFilesRegex,proto3" json:"nobuild_files_regex,omitempty"`
 	// Code and application artifacts that make up this version.
 	//
 	// Only returned in `GET` requests if `view=FULL` is set.
-	Deployment *Deployment `protobuf:"bytes,108,opt,name=deployment" json:"deployment,omitempty"`
+	Deployment *Deployment `protobuf:"bytes,108,opt,name=deployment,proto3" json:"deployment,omitempty"`
 	// Serving URL for this version. Example:
 	// "https://myversion-dot-myservice-dot-myapp.appspot.com"
 	//
 	// @OutputOnly
-	VersionUrl           string   `protobuf:"bytes,109,opt,name=version_url,json=versionUrl" json:"version_url,omitempty"`
+	VersionUrl           string   `protobuf:"bytes,109,opt,name=version_url,json=versionUrl,proto3" json:"version_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -260,13 +260,13 @@ type isVersion_Scaling interface {
 }
 
 type Version_AutomaticScaling struct {
-	AutomaticScaling *AutomaticScaling `protobuf:"bytes,3,opt,name=automatic_scaling,json=automaticScaling,oneof"`
+	AutomaticScaling *AutomaticScaling `protobuf:"bytes,3,opt,name=automatic_scaling,json=automaticScaling,proto3,oneof"`
 }
 type Version_BasicScaling struct {
-	BasicScaling *BasicScaling `protobuf:"bytes,4,opt,name=basic_scaling,json=basicScaling,oneof"`
+	BasicScaling *BasicScaling `protobuf:"bytes,4,opt,name=basic_scaling,json=basicScaling,proto3,oneof"`
 }
 type Version_ManualScaling struct {
-	ManualScaling *ManualScaling `protobuf:"bytes,5,opt,name=manual_scaling,json=manualScaling,oneof"`
+	ManualScaling *ManualScaling `protobuf:"bytes,5,opt,name=manual_scaling,json=manualScaling,proto3,oneof"`
 }
 
 func (*Version_AutomaticScaling) isVersion_Scaling() {}
@@ -576,36 +576,36 @@ type AutomaticScaling struct {
 	// [Autoscaler](https://cloud.google.com/compute/docs/autoscaler/)
 	// should wait between changes to the number of virtual machines.
 	// Only applicable for VM runtimes.
-	CoolDownPeriod *duration.Duration `protobuf:"bytes,1,opt,name=cool_down_period,json=coolDownPeriod" json:"cool_down_period,omitempty"`
+	CoolDownPeriod *duration.Duration `protobuf:"bytes,1,opt,name=cool_down_period,json=coolDownPeriod,proto3" json:"cool_down_period,omitempty"`
 	// Target scaling by CPU usage.
-	CpuUtilization *CpuUtilization `protobuf:"bytes,2,opt,name=cpu_utilization,json=cpuUtilization" json:"cpu_utilization,omitempty"`
+	CpuUtilization *CpuUtilization `protobuf:"bytes,2,opt,name=cpu_utilization,json=cpuUtilization,proto3" json:"cpu_utilization,omitempty"`
 	// Number of concurrent requests an automatic scaling instance can accept
 	// before the scheduler spawns a new instance.
 	//
 	// Defaults to a runtime-specific value.
-	MaxConcurrentRequests int32 `protobuf:"varint,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests" json:"max_concurrent_requests,omitempty"`
+	MaxConcurrentRequests int32 `protobuf:"varint,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests,proto3" json:"max_concurrent_requests,omitempty"`
 	// Maximum number of idle instances that should be maintained for this
 	// version.
-	MaxIdleInstances int32 `protobuf:"varint,4,opt,name=max_idle_instances,json=maxIdleInstances" json:"max_idle_instances,omitempty"`
+	MaxIdleInstances int32 `protobuf:"varint,4,opt,name=max_idle_instances,json=maxIdleInstances,proto3" json:"max_idle_instances,omitempty"`
 	// Maximum number of instances that should be started to handle requests.
-	MaxTotalInstances int32 `protobuf:"varint,5,opt,name=max_total_instances,json=maxTotalInstances" json:"max_total_instances,omitempty"`
+	MaxTotalInstances int32 `protobuf:"varint,5,opt,name=max_total_instances,json=maxTotalInstances,proto3" json:"max_total_instances,omitempty"`
 	// Maximum amount of time that a request should wait in the pending queue
 	// before starting a new instance to handle it.
-	MaxPendingLatency *duration.Duration `protobuf:"bytes,6,opt,name=max_pending_latency,json=maxPendingLatency" json:"max_pending_latency,omitempty"`
+	MaxPendingLatency *duration.Duration `protobuf:"bytes,6,opt,name=max_pending_latency,json=maxPendingLatency,proto3" json:"max_pending_latency,omitempty"`
 	// Minimum number of idle instances that should be maintained for
 	// this version. Only applicable for the default version of a service.
-	MinIdleInstances int32 `protobuf:"varint,7,opt,name=min_idle_instances,json=minIdleInstances" json:"min_idle_instances,omitempty"`
+	MinIdleInstances int32 `protobuf:"varint,7,opt,name=min_idle_instances,json=minIdleInstances,proto3" json:"min_idle_instances,omitempty"`
 	// Minimum number of instances that should be maintained for this version.
-	MinTotalInstances int32 `protobuf:"varint,8,opt,name=min_total_instances,json=minTotalInstances" json:"min_total_instances,omitempty"`
+	MinTotalInstances int32 `protobuf:"varint,8,opt,name=min_total_instances,json=minTotalInstances,proto3" json:"min_total_instances,omitempty"`
 	// Minimum amount of time a request should wait in the pending queue before
 	// starting a new instance to handle it.
-	MinPendingLatency *duration.Duration `protobuf:"bytes,9,opt,name=min_pending_latency,json=minPendingLatency" json:"min_pending_latency,omitempty"`
+	MinPendingLatency *duration.Duration `protobuf:"bytes,9,opt,name=min_pending_latency,json=minPendingLatency,proto3" json:"min_pending_latency,omitempty"`
 	// Target scaling by request utilization.
-	RequestUtilization *RequestUtilization `protobuf:"bytes,10,opt,name=request_utilization,json=requestUtilization" json:"request_utilization,omitempty"`
+	RequestUtilization *RequestUtilization `protobuf:"bytes,10,opt,name=request_utilization,json=requestUtilization,proto3" json:"request_utilization,omitempty"`
 	// Target scaling by disk usage.
-	DiskUtilization *DiskUtilization `protobuf:"bytes,11,opt,name=disk_utilization,json=diskUtilization" json:"disk_utilization,omitempty"`
+	DiskUtilization *DiskUtilization `protobuf:"bytes,11,opt,name=disk_utilization,json=diskUtilization,proto3" json:"disk_utilization,omitempty"`
 	// Target scaling by network usage.
-	NetworkUtilization   *NetworkUtilization `protobuf:"bytes,12,opt,name=network_utilization,json=networkUtilization" json:"network_utilization,omitempty"`
+	NetworkUtilization   *NetworkUtilization `protobuf:"bytes,12,opt,name=network_utilization,json=networkUtilization,proto3" json:"network_utilization,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -726,9 +726,9 @@ func (m *AutomaticScaling) GetNetworkUtilization() *NetworkUtilization {
 type BasicScaling struct {
 	// Duration of time after the last request that an instance must wait before
 	// the instance is shut down.
-	IdleTimeout *duration.Duration `protobuf:"bytes,1,opt,name=idle_timeout,json=idleTimeout" json:"idle_timeout,omitempty"`
+	IdleTimeout *duration.Duration `protobuf:"bytes,1,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
 	// Maximum number of instances to create for this version.
-	MaxInstances         int32    `protobuf:"varint,2,opt,name=max_instances,json=maxInstances" json:"max_instances,omitempty"`
+	MaxInstances         int32    `protobuf:"varint,2,opt,name=max_instances,json=maxInstances,proto3" json:"max_instances,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -779,7 +779,7 @@ type ManualScaling struct {
 	// can later be altered by using the
 	// [Modules API](https://cloud.google.com/appengine/docs/python/modules/functions)
 	// `set_num_instances()` function.
-	Instances            int32    `protobuf:"varint,1,opt,name=instances" json:"instances,omitempty"`
+	Instances            int32    `protobuf:"varint,1,opt,name=instances,proto3" json:"instances,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -819,10 +819,10 @@ func (m *ManualScaling) GetInstances() int32 {
 // Target scaling by CPU usage.
 type CpuUtilization struct {
 	// Period of time over which CPU utilization is calculated.
-	AggregationWindowLength *duration.Duration `protobuf:"bytes,1,opt,name=aggregation_window_length,json=aggregationWindowLength" json:"aggregation_window_length,omitempty"`
+	AggregationWindowLength *duration.Duration `protobuf:"bytes,1,opt,name=aggregation_window_length,json=aggregationWindowLength,proto3" json:"aggregation_window_length,omitempty"`
 	// Target CPU utilization ratio to maintain when scaling. Must be between 0
 	// and 1.
-	TargetUtilization    float64  `protobuf:"fixed64,2,opt,name=target_utilization,json=targetUtilization" json:"target_utilization,omitempty"`
+	TargetUtilization    float64  `protobuf:"fixed64,2,opt,name=target_utilization,json=targetUtilization,proto3" json:"target_utilization,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -869,9 +869,9 @@ func (m *CpuUtilization) GetTargetUtilization() float64 {
 // Target scaling by request utilization. Only applicable for VM runtimes.
 type RequestUtilization struct {
 	// Target requests per second.
-	TargetRequestCountPerSecond int32 `protobuf:"varint,1,opt,name=target_request_count_per_second,json=targetRequestCountPerSecond" json:"target_request_count_per_second,omitempty"`
+	TargetRequestCountPerSecond int32 `protobuf:"varint,1,opt,name=target_request_count_per_second,json=targetRequestCountPerSecond,proto3" json:"target_request_count_per_second,omitempty"`
 	// Target number of concurrent requests.
-	TargetConcurrentRequests int32    `protobuf:"varint,2,opt,name=target_concurrent_requests,json=targetConcurrentRequests" json:"target_concurrent_requests,omitempty"`
+	TargetConcurrentRequests int32    `protobuf:"varint,2,opt,name=target_concurrent_requests,json=targetConcurrentRequests,proto3" json:"target_concurrent_requests,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -918,13 +918,13 @@ func (m *RequestUtilization) GetTargetConcurrentRequests() int32 {
 // Target scaling by disk usage. Only applicable for VM runtimes.
 type DiskUtilization struct {
 	// Target bytes written per second.
-	TargetWriteBytesPerSecond int32 `protobuf:"varint,14,opt,name=target_write_bytes_per_second,json=targetWriteBytesPerSecond" json:"target_write_bytes_per_second,omitempty"`
+	TargetWriteBytesPerSecond int32 `protobuf:"varint,14,opt,name=target_write_bytes_per_second,json=targetWriteBytesPerSecond,proto3" json:"target_write_bytes_per_second,omitempty"`
 	// Target ops written per second.
-	TargetWriteOpsPerSecond int32 `protobuf:"varint,15,opt,name=target_write_ops_per_second,json=targetWriteOpsPerSecond" json:"target_write_ops_per_second,omitempty"`
+	TargetWriteOpsPerSecond int32 `protobuf:"varint,15,opt,name=target_write_ops_per_second,json=targetWriteOpsPerSecond,proto3" json:"target_write_ops_per_second,omitempty"`
 	// Target bytes read per second.
-	TargetReadBytesPerSecond int32 `protobuf:"varint,16,opt,name=target_read_bytes_per_second,json=targetReadBytesPerSecond" json:"target_read_bytes_per_second,omitempty"`
+	TargetReadBytesPerSecond int32 `protobuf:"varint,16,opt,name=target_read_bytes_per_second,json=targetReadBytesPerSecond,proto3" json:"target_read_bytes_per_second,omitempty"`
 	// Target ops read per seconds.
-	TargetReadOpsPerSecond int32    `protobuf:"varint,17,opt,name=target_read_ops_per_second,json=targetReadOpsPerSecond" json:"target_read_ops_per_second,omitempty"`
+	TargetReadOpsPerSecond int32    `protobuf:"varint,17,opt,name=target_read_ops_per_second,json=targetReadOpsPerSecond,proto3" json:"target_read_ops_per_second,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -985,13 +985,13 @@ func (m *DiskUtilization) GetTargetReadOpsPerSecond() int32 {
 // Target scaling by network usage. Only applicable for VM runtimes.
 type NetworkUtilization struct {
 	// Target bytes sent per second.
-	TargetSentBytesPerSecond int32 `protobuf:"varint,1,opt,name=target_sent_bytes_per_second,json=targetSentBytesPerSecond" json:"target_sent_bytes_per_second,omitempty"`
+	TargetSentBytesPerSecond int32 `protobuf:"varint,1,opt,name=target_sent_bytes_per_second,json=targetSentBytesPerSecond,proto3" json:"target_sent_bytes_per_second,omitempty"`
 	// Target packets sent per second.
-	TargetSentPacketsPerSecond int32 `protobuf:"varint,11,opt,name=target_sent_packets_per_second,json=targetSentPacketsPerSecond" json:"target_sent_packets_per_second,omitempty"`
+	TargetSentPacketsPerSecond int32 `protobuf:"varint,11,opt,name=target_sent_packets_per_second,json=targetSentPacketsPerSecond,proto3" json:"target_sent_packets_per_second,omitempty"`
 	// Target bytes received per second.
-	TargetReceivedBytesPerSecond int32 `protobuf:"varint,12,opt,name=target_received_bytes_per_second,json=targetReceivedBytesPerSecond" json:"target_received_bytes_per_second,omitempty"`
+	TargetReceivedBytesPerSecond int32 `protobuf:"varint,12,opt,name=target_received_bytes_per_second,json=targetReceivedBytesPerSecond,proto3" json:"target_received_bytes_per_second,omitempty"`
 	// Target packets received per second.
-	TargetReceivedPacketsPerSecond int32    `protobuf:"varint,13,opt,name=target_received_packets_per_second,json=targetReceivedPacketsPerSecond" json:"target_received_packets_per_second,omitempty"`
+	TargetReceivedPacketsPerSecond int32    `protobuf:"varint,13,opt,name=target_received_packets_per_second,json=targetReceivedPacketsPerSecond,proto3" json:"target_received_packets_per_second,omitempty"`
 	XXX_NoUnkeyedLiteral           struct{} `json:"-"`
 	XXX_unrecognized               []byte   `json:"-"`
 	XXX_sizecache                  int32    `json:"-"`
@@ -1053,14 +1053,14 @@ func (m *NetworkUtilization) GetTargetReceivedPacketsPerSecond() int32 {
 type Network struct {
 	// List of ports, or port pairs, to forward from the virtual machine to the
 	// application container.
-	ForwardedPorts []string `protobuf:"bytes,1,rep,name=forwarded_ports,json=forwardedPorts" json:"forwarded_ports,omitempty"`
+	ForwardedPorts []string `protobuf:"bytes,1,rep,name=forwarded_ports,json=forwardedPorts,proto3" json:"forwarded_ports,omitempty"`
 	// Tag to apply to the VM instance during creation.
-	InstanceTag string `protobuf:"bytes,2,opt,name=instance_tag,json=instanceTag" json:"instance_tag,omitempty"`
+	InstanceTag string `protobuf:"bytes,2,opt,name=instance_tag,json=instanceTag,proto3" json:"instance_tag,omitempty"`
 	// Google Cloud Platform network where the virtual machines are created.
 	// Specify the short name, not the resource path.
 	//
 	// Defaults to `default`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1114,11 +1114,11 @@ func (m *Network) GetName() string {
 // Machine resources for a version.
 type Resources struct {
 	// Number of CPU cores needed.
-	Cpu float64 `protobuf:"fixed64,1,opt,name=cpu" json:"cpu,omitempty"`
+	Cpu float64 `protobuf:"fixed64,1,opt,name=cpu,proto3" json:"cpu,omitempty"`
 	// Disk size (GB) needed.
-	DiskGb float64 `protobuf:"fixed64,2,opt,name=disk_gb,json=diskGb" json:"disk_gb,omitempty"`
+	DiskGb float64 `protobuf:"fixed64,2,opt,name=disk_gb,json=diskGb,proto3" json:"disk_gb,omitempty"`
 	// Memory (GB) needed.
-	MemoryGb             float64  `protobuf:"fixed64,3,opt,name=memory_gb,json=memoryGb" json:"memory_gb,omitempty"`
+	MemoryGb             float64  `protobuf:"fixed64,3,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/assistant/embedded/v1alpha1/embedded_assistant.pb.go b/googleapis/assistant/embedded/v1alpha1/embedded_assistant.pb.go
index 39c26f4dd269c8a43215d9bebe735e825d99b3b3..3f8e8f2cb322c672ae987af5a90612510182f7ad 100644
--- a/googleapis/assistant/embedded/v1alpha1/embedded_assistant.pb.go
+++ b/googleapis/assistant/embedded/v1alpha1/embedded_assistant.pb.go
@@ -168,11 +168,11 @@ func (ConverseResponse_EventType) EnumDescriptor() ([]byte, []int) {
 // Specifies how to process the `ConverseRequest` messages.
 type ConverseConfig struct {
 	// *Required* Specifies how to process the subsequent incoming audio.
-	AudioInConfig *AudioInConfig `protobuf:"bytes,1,opt,name=audio_in_config,json=audioInConfig" json:"audio_in_config,omitempty"`
+	AudioInConfig *AudioInConfig `protobuf:"bytes,1,opt,name=audio_in_config,json=audioInConfig,proto3" json:"audio_in_config,omitempty"`
 	// *Required* Specifies how to format the audio that will be returned.
-	AudioOutConfig *AudioOutConfig `protobuf:"bytes,2,opt,name=audio_out_config,json=audioOutConfig" json:"audio_out_config,omitempty"`
+	AudioOutConfig *AudioOutConfig `protobuf:"bytes,2,opt,name=audio_out_config,json=audioOutConfig,proto3" json:"audio_out_config,omitempty"`
 	// *Required* Represents the current dialog state.
-	ConverseState        *ConverseState `protobuf:"bytes,3,opt,name=converse_state,json=converseState" json:"converse_state,omitempty"`
+	ConverseState        *ConverseState `protobuf:"bytes,3,opt,name=converse_state,json=converseState,proto3" json:"converse_state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -228,13 +228,13 @@ func (m *ConverseConfig) GetConverseState() *ConverseState {
 // [best practices](https://developers.google.com/assistant/sdk/develop/grpc/best-practices/audio).
 type AudioInConfig struct {
 	// *Required* Encoding of audio data sent in all `audio_in` messages.
-	Encoding AudioInConfig_Encoding `protobuf:"varint,1,opt,name=encoding,enum=google.assistant.embedded.v1alpha1.AudioInConfig_Encoding" json:"encoding,omitempty"`
+	Encoding AudioInConfig_Encoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.assistant.embedded.v1alpha1.AudioInConfig_Encoding" json:"encoding,omitempty"`
 	// *Required* Sample rate (in Hertz) of the audio data sent in all `audio_in`
 	// messages. Valid values are from 16000-24000, but 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).
-	SampleRateHertz      int32    `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz      int32    `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -283,13 +283,13 @@ func (m *AudioInConfig) GetSampleRateHertz() int32 {
 type AudioOutConfig struct {
 	// *Required* The encoding of audio data to be returned in all `audio_out`
 	// messages.
-	Encoding AudioOutConfig_Encoding `protobuf:"varint,1,opt,name=encoding,enum=google.assistant.embedded.v1alpha1.AudioOutConfig_Encoding" json:"encoding,omitempty"`
+	Encoding AudioOutConfig_Encoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.assistant.embedded.v1alpha1.AudioOutConfig_Encoding" json:"encoding,omitempty"`
 	// *Required* The sample rate in Hertz of the audio data returned in
 	// `audio_out` messages. Valid values are: 16000-24000.
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// *Required* Current volume setting of the device's audio output.
 	// Valid values are 1 to 100 (corresponding to 1% to 100%).
-	VolumePercentage     int32    `protobuf:"varint,3,opt,name=volume_percentage,json=volumePercentage" json:"volume_percentage,omitempty"`
+	VolumePercentage     int32    `protobuf:"varint,3,opt,name=volume_percentage,json=volumePercentage,proto3" json:"volume_percentage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -430,10 +430,10 @@ func (m *AudioOut) GetAudioData() []byte {
 // The semantic result for the user's spoken query.
 type ConverseResult struct {
 	// *Output-only* The recognized transcript of what the user said.
-	SpokenRequestText string `protobuf:"bytes,1,opt,name=spoken_request_text,json=spokenRequestText" json:"spoken_request_text,omitempty"`
+	SpokenRequestText string `protobuf:"bytes,1,opt,name=spoken_request_text,json=spokenRequestText,proto3" json:"spoken_request_text,omitempty"`
 	// *Output-only* The text of the assistant's spoken response. This is only
 	// returned for an IFTTT action.
-	SpokenResponseText string `protobuf:"bytes,2,opt,name=spoken_response_text,json=spokenResponseText" json:"spoken_response_text,omitempty"`
+	SpokenResponseText string `protobuf:"bytes,2,opt,name=spoken_response_text,json=spokenResponseText,proto3" json:"spoken_response_text,omitempty"`
 	// *Output-only* State information for subsequent `ConverseRequest`. This
 	// value should be saved in the client and returned in the
 	// `conversation_state` with the next `ConverseRequest`. (The client does not
@@ -442,7 +442,7 @@ type ConverseResult struct {
 	ConversationState []byte `protobuf:"bytes,3,opt,name=conversation_state,json=conversationState,proto3" json:"conversation_state,omitempty"`
 	// *Output-only* Specifies the mode of the microphone after this `Converse`
 	// RPC is processed.
-	MicrophoneMode ConverseResult_MicrophoneMode `protobuf:"varint,4,opt,name=microphone_mode,json=microphoneMode,enum=google.assistant.embedded.v1alpha1.ConverseResult_MicrophoneMode" json:"microphone_mode,omitempty"`
+	MicrophoneMode ConverseResult_MicrophoneMode `protobuf:"varint,4,opt,name=microphone_mode,json=microphoneMode,proto3,enum=google.assistant.embedded.v1alpha1.ConverseResult_MicrophoneMode" json:"microphone_mode,omitempty"`
 	// *Output-only* Updated volume level. The value will be 0 or omitted
 	// (indicating no change) unless a voice command such as "Increase the volume"
 	// or "Set volume level 4" was recognized, in which case the value will be
@@ -452,7 +452,7 @@ type ConverseResult struct {
 	// supply it in the `AudioOutConfig` of the next `ConverseRequest`. (Some
 	// clients may also implement other ways to allow the current volume level to
 	// be changed, for example, by providing a knob that the user can turn.)
-	VolumePercentage     int32    `protobuf:"varint,5,opt,name=volume_percentage,json=volumePercentage" json:"volume_percentage,omitempty"`
+	VolumePercentage     int32    `protobuf:"varint,5,opt,name=volume_percentage,json=volumePercentage,proto3" json:"volume_percentage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -563,7 +563,7 @@ type isConverseRequest_ConverseRequest interface {
 }
 
 type ConverseRequest_Config struct {
-	Config *ConverseConfig `protobuf:"bytes,1,opt,name=config,oneof"`
+	Config *ConverseConfig `protobuf:"bytes,1,opt,name=config,proto3,oneof"`
 }
 type ConverseRequest_AudioIn struct {
 	AudioIn []byte `protobuf:"bytes,2,opt,name=audio_in,json=audioIn,proto3,oneof"`
@@ -708,16 +708,16 @@ type isConverseResponse_ConverseResponse interface {
 }
 
 type ConverseResponse_Error struct {
-	Error *status.Status `protobuf:"bytes,1,opt,name=error,oneof"`
+	Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
 }
 type ConverseResponse_EventType_ struct {
-	EventType ConverseResponse_EventType `protobuf:"varint,2,opt,name=event_type,json=eventType,enum=google.assistant.embedded.v1alpha1.ConverseResponse_EventType,oneof"`
+	EventType ConverseResponse_EventType `protobuf:"varint,2,opt,name=event_type,json=eventType,proto3,enum=google.assistant.embedded.v1alpha1.ConverseResponse_EventType,oneof"`
 }
 type ConverseResponse_AudioOut struct {
-	AudioOut *AudioOut `protobuf:"bytes,3,opt,name=audio_out,json=audioOut,oneof"`
+	AudioOut *AudioOut `protobuf:"bytes,3,opt,name=audio_out,json=audioOut,proto3,oneof"`
 }
 type ConverseResponse_Result struct {
-	Result *ConverseResult `protobuf:"bytes,5,opt,name=result,oneof"`
+	Result *ConverseResult `protobuf:"bytes,5,opt,name=result,proto3,oneof"`
 }
 
 func (*ConverseResponse_Error) isConverseResponse_ConverseResponse()      {}
@@ -977,8 +977,7 @@ func (x *embeddedAssistantConverseClient) Recv() (*ConverseResponse, error) {
 	return m, nil
 }
 
-// Server API for EmbeddedAssistant service
-
+// EmbeddedAssistantServer is the server API for EmbeddedAssistant service.
 type EmbeddedAssistantServer interface {
 	// Initiates or continues a conversation with the embedded assistant service.
 	// Each call performs one round-trip, sending an audio request to the service
diff --git a/googleapis/assistant/embedded/v1alpha2/embedded_assistant.pb.go b/googleapis/assistant/embedded/v1alpha2/embedded_assistant.pb.go
index 1432a8505753c25426f50765f55188666080c759..d6f628ef1d877c695403156393ef2674767dc6c7 100644
--- a/googleapis/assistant/embedded/v1alpha2/embedded_assistant.pb.go
+++ b/googleapis/assistant/embedded/v1alpha2/embedded_assistant.pb.go
@@ -274,7 +274,7 @@ type isAssistRequest_Type interface {
 }
 
 type AssistRequest_Config struct {
-	Config *AssistConfig `protobuf:"bytes,1,opt,name=config,oneof"`
+	Config *AssistConfig `protobuf:"bytes,1,opt,name=config,proto3,oneof"`
 }
 type AssistRequest_AudioIn struct {
 	AudioIn []byte `protobuf:"bytes,2,opt,name=audio_in,json=audioIn,proto3,oneof"`
@@ -378,14 +378,14 @@ func _AssistRequest_OneofSizer(msg proto.Message) (n int) {
 // `AssistResponse` messages are streamed back to the client.
 type AssistResponse struct {
 	// *Output-only* Indicates the type of event.
-	EventType AssistResponse_EventType `protobuf:"varint,1,opt,name=event_type,json=eventType,enum=google.assistant.embedded.v1alpha2.AssistResponse_EventType" json:"event_type,omitempty"`
+	EventType AssistResponse_EventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=google.assistant.embedded.v1alpha2.AssistResponse_EventType" json:"event_type,omitempty"`
 	// *Output-only* The audio containing the Assistant's response to the query.
-	AudioOut *AudioOut `protobuf:"bytes,3,opt,name=audio_out,json=audioOut" json:"audio_out,omitempty"`
+	AudioOut *AudioOut `protobuf:"bytes,3,opt,name=audio_out,json=audioOut,proto3" json:"audio_out,omitempty"`
 	// *Output-only* Contains the Assistant's visual response to the query.
-	ScreenOut *ScreenOut `protobuf:"bytes,4,opt,name=screen_out,json=screenOut" json:"screen_out,omitempty"`
+	ScreenOut *ScreenOut `protobuf:"bytes,4,opt,name=screen_out,json=screenOut,proto3" json:"screen_out,omitempty"`
 	// *Output-only* Contains the action triggered by the query with the
 	// appropriate payloads and semantic parsing.
-	DeviceAction *DeviceAction `protobuf:"bytes,6,opt,name=device_action,json=deviceAction" json:"device_action,omitempty"`
+	DeviceAction *DeviceAction `protobuf:"bytes,6,opt,name=device_action,json=deviceAction,proto3" json:"device_action,omitempty"`
 	// *Output-only* This repeated list contains zero or more speech recognition
 	// results that correspond to consecutive portions of the audio currently
 	// being processed, starting with the portion corresponding to the earliest
@@ -393,12 +393,12 @@ type AssistResponse struct {
 	// recent audio. The strings can be concatenated to view the full
 	// in-progress response. When the speech recognition completes, this list
 	// will contain one item with `stability` of `1.0`.
-	SpeechResults []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=speech_results,json=speechResults" json:"speech_results,omitempty"`
+	SpeechResults []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=speech_results,json=speechResults,proto3" json:"speech_results,omitempty"`
 	// *Output-only* Contains output related to the user's query.
-	DialogStateOut *DialogStateOut `protobuf:"bytes,5,opt,name=dialog_state_out,json=dialogStateOut" json:"dialog_state_out,omitempty"`
+	DialogStateOut *DialogStateOut `protobuf:"bytes,5,opt,name=dialog_state_out,json=dialogStateOut,proto3" json:"dialog_state_out,omitempty"`
 	// *Output-only* Debugging info for developer. Only returned if request set
 	// `return_debug_info` to true.
-	DebugInfo            *DebugInfo `protobuf:"bytes,8,opt,name=debug_info,json=debugInfo" json:"debug_info,omitempty"`
+	DebugInfo            *DebugInfo `protobuf:"bytes,8,opt,name=debug_info,json=debugInfo,proto3" json:"debug_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -485,7 +485,7 @@ type DebugInfo struct {
 	// https://developers.google.com/actions/reference/rest/Shared.Types/AppResponse.
 	// It will only be populated if the request maker owns the AoG project and the
 	// AoG project is in preview mode.
-	AogAgentToAssistantJson string   `protobuf:"bytes,1,opt,name=aog_agent_to_assistant_json,json=aogAgentToAssistantJson" json:"aog_agent_to_assistant_json,omitempty"`
+	AogAgentToAssistantJson string   `protobuf:"bytes,1,opt,name=aog_agent_to_assistant_json,json=aogAgentToAssistantJson,proto3" json:"aog_agent_to_assistant_json,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -529,16 +529,16 @@ type AssistConfig struct {
 	//	*AssistConfig_TextQuery
 	Type isAssistConfig_Type `protobuf_oneof:"type"`
 	// *Required* Specifies how to format the audio that will be returned.
-	AudioOutConfig *AudioOutConfig `protobuf:"bytes,2,opt,name=audio_out_config,json=audioOutConfig" json:"audio_out_config,omitempty"`
+	AudioOutConfig *AudioOutConfig `protobuf:"bytes,2,opt,name=audio_out_config,json=audioOutConfig,proto3" json:"audio_out_config,omitempty"`
 	// *Optional* Specifies the desired format to use when server returns a
 	// visual screen response.
-	ScreenOutConfig *ScreenOutConfig `protobuf:"bytes,8,opt,name=screen_out_config,json=screenOutConfig" json:"screen_out_config,omitempty"`
+	ScreenOutConfig *ScreenOutConfig `protobuf:"bytes,8,opt,name=screen_out_config,json=screenOutConfig,proto3" json:"screen_out_config,omitempty"`
 	// *Required* Represents the current dialog state.
-	DialogStateIn *DialogStateIn `protobuf:"bytes,3,opt,name=dialog_state_in,json=dialogStateIn" json:"dialog_state_in,omitempty"`
+	DialogStateIn *DialogStateIn `protobuf:"bytes,3,opt,name=dialog_state_in,json=dialogStateIn,proto3" json:"dialog_state_in,omitempty"`
 	// Device configuration that uniquely identifies a specific device.
-	DeviceConfig *DeviceConfig `protobuf:"bytes,4,opt,name=device_config,json=deviceConfig" json:"device_config,omitempty"`
+	DeviceConfig *DeviceConfig `protobuf:"bytes,4,opt,name=device_config,json=deviceConfig,proto3" json:"device_config,omitempty"`
 	// *Optional* Debugging parameters for the whole `Assist` RPC.
-	DebugConfig          *DebugConfig `protobuf:"bytes,5,opt,name=debug_config,json=debugConfig" json:"debug_config,omitempty"`
+	DebugConfig          *DebugConfig `protobuf:"bytes,5,opt,name=debug_config,json=debugConfig,proto3" json:"debug_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -573,10 +573,10 @@ type isAssistConfig_Type interface {
 }
 
 type AssistConfig_AudioInConfig struct {
-	AudioInConfig *AudioInConfig `protobuf:"bytes,1,opt,name=audio_in_config,json=audioInConfig,oneof"`
+	AudioInConfig *AudioInConfig `protobuf:"bytes,1,opt,name=audio_in_config,json=audioInConfig,proto3,oneof"`
 }
 type AssistConfig_TextQuery struct {
-	TextQuery string `protobuf:"bytes,6,opt,name=text_query,json=textQuery,oneof"`
+	TextQuery string `protobuf:"bytes,6,opt,name=text_query,json=textQuery,proto3,oneof"`
 }
 
 func (*AssistConfig_AudioInConfig) isAssistConfig_Type() {}
@@ -713,13 +713,13 @@ func _AssistConfig_OneofSizer(msg proto.Message) (n int) {
 // [best practices](https://developers.google.com/assistant/sdk/guides/service/python/best-practices/audio).
 type AudioInConfig struct {
 	// *Required* Encoding of audio data sent in all `audio_in` messages.
-	Encoding AudioInConfig_Encoding `protobuf:"varint,1,opt,name=encoding,enum=google.assistant.embedded.v1alpha2.AudioInConfig_Encoding" json:"encoding,omitempty"`
+	Encoding AudioInConfig_Encoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.assistant.embedded.v1alpha2.AudioInConfig_Encoding" json:"encoding,omitempty"`
 	// *Required* Sample rate (in Hertz) of the audio data sent in all `audio_in`
 	// messages. Valid values are from 16000-24000, but 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).
-	SampleRateHertz      int32    `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz      int32    `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -768,13 +768,13 @@ func (m *AudioInConfig) GetSampleRateHertz() int32 {
 type AudioOutConfig struct {
 	// *Required* The encoding of audio data to be returned in all `audio_out`
 	// messages.
-	Encoding AudioOutConfig_Encoding `protobuf:"varint,1,opt,name=encoding,enum=google.assistant.embedded.v1alpha2.AudioOutConfig_Encoding" json:"encoding,omitempty"`
+	Encoding AudioOutConfig_Encoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.assistant.embedded.v1alpha2.AudioOutConfig_Encoding" json:"encoding,omitempty"`
 	// *Required* The sample rate in Hertz of the audio data returned in
 	// `audio_out` messages. Valid values are: 16000-24000.
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// *Required* Current volume setting of the device's audio output.
 	// Valid values are 1 to 100 (corresponding to 1% to 100%).
-	VolumePercentage     int32    `protobuf:"varint,3,opt,name=volume_percentage,json=volumePercentage" json:"volume_percentage,omitempty"`
+	VolumePercentage     int32    `protobuf:"varint,3,opt,name=volume_percentage,json=volumePercentage,proto3" json:"volume_percentage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -829,7 +829,7 @@ func (m *AudioOutConfig) GetVolumePercentage() int32 {
 // `screen_out` response.
 type ScreenOutConfig struct {
 	// Current visual screen-mode for the device while issuing the query.
-	ScreenMode           ScreenOutConfig_ScreenMode `protobuf:"varint,1,opt,name=screen_mode,json=screenMode,enum=google.assistant.embedded.v1alpha2.ScreenOutConfig_ScreenMode" json:"screen_mode,omitempty"`
+	ScreenMode           ScreenOutConfig_ScreenMode `protobuf:"varint,1,opt,name=screen_mode,json=screenMode,proto3,enum=google.assistant.embedded.v1alpha2.ScreenOutConfig_ScreenMode" json:"screen_mode,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -881,14 +881,14 @@ type DialogStateIn struct {
 	// using the [Settings](https://developers.google.com/assistant/sdk/reference/assistant-app/assistant-settings)
 	// menu in your phone's Google Assistant app, that selection will override
 	// this value.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// *Optional* Location of the device where the query originated.
-	DeviceLocation *DeviceLocation `protobuf:"bytes,5,opt,name=device_location,json=deviceLocation" json:"device_location,omitempty"`
+	DeviceLocation *DeviceLocation `protobuf:"bytes,5,opt,name=device_location,json=deviceLocation,proto3" json:"device_location,omitempty"`
 	// *Optional* If true, the server will treat the request as a new conversation
 	// and not use state from the prior request. Set this field to true when the
 	// conversation should be restarted, such as after a device reboot, or after a
 	// significant lapse of time since the prior query.
-	IsNewConversation    bool     `protobuf:"varint,7,opt,name=is_new_conversation,json=isNewConversation" json:"is_new_conversation,omitempty"`
+	IsNewConversation    bool     `protobuf:"varint,7,opt,name=is_new_conversation,json=isNewConversation,proto3" json:"is_new_conversation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -964,11 +964,11 @@ type DeviceConfig struct {
 	// capabilities of this device. This information should not change across
 	// device reboots. However, it should not be saved across
 	// factory-default resets.
-	DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
+	DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
 	// *Required* Unique identifier for the device model. The combination of
 	// device_model_id and device_id must have been previously associated through
 	// device registration.
-	DeviceModelId        string   `protobuf:"bytes,3,opt,name=device_model_id,json=deviceModelId" json:"device_model_id,omitempty"`
+	DeviceModelId        string   `protobuf:"bytes,3,opt,name=device_model_id,json=deviceModelId,proto3" json:"device_model_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1059,7 +1059,7 @@ func (m *AudioOut) GetAudioData() []byte {
 // `screen_out_config`.
 type ScreenOut struct {
 	// *Output-only* The format of the provided screen data.
-	Format ScreenOut_Format `protobuf:"varint,1,opt,name=format,enum=google.assistant.embedded.v1alpha2.ScreenOut_Format" json:"format,omitempty"`
+	Format ScreenOut_Format `protobuf:"varint,1,opt,name=format,proto3,enum=google.assistant.embedded.v1alpha2.ScreenOut_Format" json:"format,omitempty"`
 	// *Output-only* The raw screen data to be displayed as the result of the
 	// Assistant query.
 	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
@@ -1115,7 +1115,7 @@ type DeviceAction struct {
 	// Device Action grammar. The format is given by the
 	// `action.devices.EXECUTE` intent for a given
 	// [trait](https://developers.google.com/assistant/sdk/reference/traits/).
-	DeviceRequestJson    string   `protobuf:"bytes,1,opt,name=device_request_json,json=deviceRequestJson" json:"device_request_json,omitempty"`
+	DeviceRequestJson    string   `protobuf:"bytes,1,opt,name=device_request_json,json=deviceRequestJson,proto3" json:"device_request_json,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1156,12 +1156,12 @@ func (m *DeviceAction) GetDeviceRequestJson() string {
 // a single segment or the full guess of the user's spoken query.
 type SpeechRecognitionResult struct {
 	// *Output-only* Transcript text representing the words that the user spoke.
-	Transcript string `protobuf:"bytes,1,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// *Output-only* An estimate of the likelihood that the Assistant will not
 	// change its guess about this result. Values range from 0.0 (completely
 	// unstable) to 1.0 (completely stable and final). The default of 0.0 is a
 	// sentinel value indicating `stability` was not set.
-	Stability            float32  `protobuf:"fixed32,2,opt,name=stability" json:"stability,omitempty"`
+	Stability            float32  `protobuf:"fixed32,2,opt,name=stability,proto3" json:"stability,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1211,7 +1211,7 @@ type DialogStateOut struct {
 	// *Output-only* Supplemental display text from the Assistant. This could be
 	// the same as the speech spoken in `AssistResponse.audio_out` or it could
 	// be some additional information which aids the user's understanding.
-	SupplementalDisplayText string `protobuf:"bytes,1,opt,name=supplemental_display_text,json=supplementalDisplayText" json:"supplemental_display_text,omitempty"`
+	SupplementalDisplayText string `protobuf:"bytes,1,opt,name=supplemental_display_text,json=supplementalDisplayText,proto3" json:"supplemental_display_text,omitempty"`
 	// *Output-only* State information for the subsequent `Assist` RPC. This
 	// value should be saved in the client and returned in the
 	// [`DialogStateIn.conversation_state`](#dialogstatein) field with the next
@@ -1222,7 +1222,7 @@ type DialogStateOut struct {
 	ConversationState []byte `protobuf:"bytes,2,opt,name=conversation_state,json=conversationState,proto3" json:"conversation_state,omitempty"`
 	// *Output-only* Specifies the mode of the microphone after this `Assist`
 	// RPC is processed.
-	MicrophoneMode DialogStateOut_MicrophoneMode `protobuf:"varint,3,opt,name=microphone_mode,json=microphoneMode,enum=google.assistant.embedded.v1alpha2.DialogStateOut_MicrophoneMode" json:"microphone_mode,omitempty"`
+	MicrophoneMode DialogStateOut_MicrophoneMode `protobuf:"varint,3,opt,name=microphone_mode,json=microphoneMode,proto3,enum=google.assistant.embedded.v1alpha2.DialogStateOut_MicrophoneMode" json:"microphone_mode,omitempty"`
 	// *Output-only* Updated volume level. The value will be 0 or omitted
 	// (indicating no change) unless a voice command such as *Increase the volume*
 	// or *Set volume level 4* was recognized, in which case the value will be
@@ -1232,7 +1232,7 @@ type DialogStateOut struct {
 	// supply it in the `AudioOutConfig` of the next `AssistRequest`. (Some
 	// clients may also implement other ways to allow the current volume level to
 	// be changed, for example, by providing a knob that the user can turn.)
-	VolumePercentage     int32    `protobuf:"varint,4,opt,name=volume_percentage,json=volumePercentage" json:"volume_percentage,omitempty"`
+	VolumePercentage     int32    `protobuf:"varint,4,opt,name=volume_percentage,json=volumePercentage,proto3" json:"volume_percentage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1295,7 +1295,7 @@ type DebugConfig struct {
 	// When this field is set to true, the `debug_info` field in `AssistResponse`
 	// may be populated. However it will significantly increase latency of
 	// responses. Do not set this field true in production code.
-	ReturnDebugInfo      bool     `protobuf:"varint,6,opt,name=return_debug_info,json=returnDebugInfo" json:"return_debug_info,omitempty"`
+	ReturnDebugInfo      bool     `protobuf:"varint,6,opt,name=return_debug_info,json=returnDebugInfo,proto3" json:"return_debug_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1378,7 +1378,7 @@ type isDeviceLocation_Type interface {
 }
 
 type DeviceLocation_Coordinates struct {
-	Coordinates *latlng.LatLng `protobuf:"bytes,1,opt,name=coordinates,oneof"`
+	Coordinates *latlng.LatLng `protobuf:"bytes,1,opt,name=coordinates,proto3,oneof"`
 }
 
 func (*DeviceLocation_Coordinates) isDeviceLocation_Type() {}
@@ -1574,8 +1574,7 @@ func (x *embeddedAssistantAssistClient) Recv() (*AssistResponse, error) {
 	return m, nil
 }
 
-// Server API for EmbeddedAssistant service
-
+// EmbeddedAssistantServer is the server API for EmbeddedAssistant service.
 type EmbeddedAssistantServer interface {
 	// Initiates or continues a conversation with the embedded Assistant Service.
 	// Each call performs one round-trip, sending an audio request to the service
diff --git a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_data.pb.go b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_data.pb.go
index 994f1dfe8dd6b1dc5571dc90dd27c7fc5844b9eb..f6feb845c11e43cce376802747b4a79a91e52e6a 100644
--- a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_data.pb.go
+++ b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_data.pb.go
@@ -90,11 +90,11 @@ func (Zone_Status) EnumDescriptor() ([]byte, []int) {
 type Zone struct {
 	// A permanent unique identifier for the zone.
 	// Values are of the form projects/<project>/zones/[a-z][-a-z0-9]*
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of this zone as it appears in UIs.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The current state of this zone.
-	Status               Zone_Status `protobuf:"varint,3,opt,name=status,enum=google.bigtable.admin.cluster.v1.Zone_Status" json:"status,omitempty"`
+	Status               Zone_Status `protobuf:"varint,3,opt,name=status,proto3,enum=google.bigtable.admin.cluster.v1.Zone_Status" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -151,20 +151,20 @@ type Cluster struct {
 	// zone in which the cluster resides is included here.
 	// Values are of the form
 	// projects/<project>/zones/<zone>/clusters/[a-z][-a-z0-9]*
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The operation currently running on the cluster, if any.
 	// This cannot be set directly, only through CreateCluster, UpdateCluster,
 	// or UndeleteCluster. Calls to these methods will be rejected if
 	// "current_operation" is already set.
-	CurrentOperation *longrunning.Operation `protobuf:"bytes,3,opt,name=current_operation,json=currentOperation" json:"current_operation,omitempty"`
+	CurrentOperation *longrunning.Operation `protobuf:"bytes,3,opt,name=current_operation,json=currentOperation,proto3" json:"current_operation,omitempty"`
 	// The descriptive name for this cluster as it appears in UIs.
 	// Must be unique per zone.
-	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The number of serve nodes allocated to this cluster.
-	ServeNodes int32 `protobuf:"varint,5,opt,name=serve_nodes,json=serveNodes" json:"serve_nodes,omitempty"`
+	ServeNodes int32 `protobuf:"varint,5,opt,name=serve_nodes,json=serveNodes,proto3" json:"serve_nodes,omitempty"`
 	// What storage type to use for tables in this cluster. Only configurable at
 	// cluster creation time. If unspecified, STORAGE_SSD will be used.
-	DefaultStorageType   StorageType `protobuf:"varint,8,opt,name=default_storage_type,json=defaultStorageType,enum=google.bigtable.admin.cluster.v1.StorageType" json:"default_storage_type,omitempty"`
+	DefaultStorageType   StorageType `protobuf:"varint,8,opt,name=default_storage_type,json=defaultStorageType,proto3,enum=google.bigtable.admin.cluster.v1.StorageType" json:"default_storage_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
diff --git a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service.pb.go b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service.pb.go
index fc4fbf8530795b0ea9241405db6c43dbb8975ac6..63b9e78dca7e0af3e83ac8daed3ea240dda5083b 100644
--- a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service.pb.go
+++ b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service.pb.go
@@ -188,8 +188,7 @@ func (c *bigtableClusterServiceClient) UndeleteCluster(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for BigtableClusterService service
-
+// BigtableClusterServiceServer is the server API for BigtableClusterService service.
 type BigtableClusterServiceServer interface {
 	// Lists the supported zones for the given project.
 	ListZones(context.Context, *ListZonesRequest) (*ListZonesResponse, error)
diff --git a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.pb.go b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.pb.go
index 0d55c3e67a4c5bea8005676715479383de661bb9..79bd5491c755883a050a76d10b62318c4eaea6dd 100644
--- a/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.pb.go
+++ b/googleapis/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.pb.go
@@ -24,7 +24,7 @@ type ListZonesRequest struct {
 	// The unique name of the project for which a list of supported zones is
 	// requested.
 	// Values are of the form projects/<project>
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -64,7 +64,7 @@ func (m *ListZonesRequest) GetName() string {
 // Response message for BigtableClusterService.ListZones.
 type ListZonesResponse struct {
 	// The list of requested zones.
-	Zones                []*Zone  `protobuf:"bytes,1,rep,name=zones" json:"zones,omitempty"`
+	Zones                []*Zone  `protobuf:"bytes,1,rep,name=zones,proto3" json:"zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -105,7 +105,7 @@ func (m *ListZonesResponse) GetZones() []*Zone {
 type GetClusterRequest struct {
 	// The unique name of the requested cluster.
 	// Values are of the form projects/<project>/zones/<zone>/clusters/<cluster>
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -146,7 +146,7 @@ func (m *GetClusterRequest) GetName() string {
 type ListClustersRequest struct {
 	// The unique name of the project for which a list of clusters is requested.
 	// Values are of the form projects/<project>
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -186,9 +186,9 @@ func (m *ListClustersRequest) GetName() string {
 // Response message for BigtableClusterService.ListClusters.
 type ListClustersResponse struct {
 	// The list of requested Clusters.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// The zones for which clusters could not be retrieved.
-	FailedZones          []*Zone  `protobuf:"bytes,2,rep,name=failed_zones,json=failedZones" json:"failed_zones,omitempty"`
+	FailedZones          []*Zone  `protobuf:"bytes,2,rep,name=failed_zones,json=failedZones,proto3" json:"failed_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -236,15 +236,15 @@ func (m *ListClustersResponse) GetFailedZones() []*Zone {
 type CreateClusterRequest struct {
 	// The unique name of the zone in which to create the cluster.
 	// Values are of the form projects/<project>/zones/<zone>
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The id to be used when referring to the new cluster within its zone,
 	// e.g. just the "test-cluster" section of the full name
 	// "projects/<project>/zones/<zone>/clusters/test-cluster".
-	ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The cluster to create.
 	// The "name", "delete_time", and "current_operation" fields must be left
 	// blank.
-	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -299,11 +299,11 @@ func (m *CreateClusterRequest) GetCluster() *Cluster {
 // BigtableClusterService.CreateCluster.
 type CreateClusterMetadata struct {
 	// The request which prompted the creation of this operation.
-	OriginalRequest *CreateClusterRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *CreateClusterRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which original_request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which this operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -358,15 +358,15 @@ func (m *CreateClusterMetadata) GetFinishTime() *timestamp.Timestamp {
 // BigtableClusterService.UpdateCluster.
 type UpdateClusterMetadata struct {
 	// The request which prompted the creation of this operation.
-	OriginalRequest *Cluster `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *Cluster `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which original_request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which this operation was cancelled. If set, this operation is
 	// in the process of undoing itself (which is guaranteed to succeed) and
 	// cannot be cancelled again.
-	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime" json:"cancel_time,omitempty"`
+	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime,proto3" json:"cancel_time,omitempty"`
 	// The time at which this operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -428,7 +428,7 @@ func (m *UpdateClusterMetadata) GetFinishTime() *timestamp.Timestamp {
 type DeleteClusterRequest struct {
 	// The unique name of the cluster to be deleted.
 	// Values are of the form projects/<project>/zones/<zone>/clusters/<cluster>
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -469,7 +469,7 @@ func (m *DeleteClusterRequest) GetName() string {
 type UndeleteClusterRequest struct {
 	// The unique name of the cluster to be un-deleted.
 	// Values are of the form projects/<project>/zones/<zone>/clusters/<cluster>
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -510,9 +510,9 @@ func (m *UndeleteClusterRequest) GetName() string {
 // BigtableClusterService.UndeleteCluster.
 type UndeleteClusterMetadata struct {
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which this operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
diff --git a/googleapis/bigtable/admin/table/v1/bigtable_table_data.pb.go b/googleapis/bigtable/admin/table/v1/bigtable_table_data.pb.go
index 4e3e45847d17c0a353323628923a1dbec00507f9..518b8a619e8391f9dea33d88b601b1b3ef19ffa5 100644
--- a/googleapis/bigtable/admin/table/v1/bigtable_table_data.pb.go
+++ b/googleapis/bigtable/admin/table/v1/bigtable_table_data.pb.go
@@ -45,17 +45,17 @@ func (Table_TimestampGranularity) EnumDescriptor() ([]byte, []int) {
 type Table struct {
 	// A unique identifier of the form
 	// <cluster_name>/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// If this Table is in the process of being created, the Operation used to
 	// track its progress. As long as this operation is present, the Table will
 	// not accept any Table Admin or Read/Write requests.
-	CurrentOperation *longrunning.Operation `protobuf:"bytes,2,opt,name=current_operation,json=currentOperation" json:"current_operation,omitempty"`
+	CurrentOperation *longrunning.Operation `protobuf:"bytes,2,opt,name=current_operation,json=currentOperation,proto3" json:"current_operation,omitempty"`
 	// The column families configured for this table, mapped by column family id.
-	ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies,proto3" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The granularity (e.g. MILLIS, MICROS) at which timestamps are stored in
 	// this table. Timestamps not matching the granularity will be rejected.
 	// Cannot be changed once the table is created.
-	Granularity          Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,enum=google.bigtable.admin.table.v1.Table_TimestampGranularity" json:"granularity,omitempty"`
+	Granularity          Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,proto3,enum=google.bigtable.admin.table.v1.Table_TimestampGranularity" json:"granularity,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -118,7 +118,7 @@ type ColumnFamily struct {
 	// A unique identifier of the form <table_name>/columnFamilies/[-_.a-zA-Z0-9]+
 	// The last segment is the same as the "name" field in
 	// google.bigtable.v1.Family.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Garbage collection expression specified by the following grammar:
 	//   GC = EXPR
 	//      | "" ;
@@ -144,7 +144,7 @@ type ColumnFamily struct {
 	// Garbage collection executes opportunistically in the background, and so
 	// it's possible for reads to return a cell even if it matches the active GC
 	// expression for its family.
-	GcExpression string `protobuf:"bytes,2,opt,name=gc_expression,json=gcExpression" json:"gc_expression,omitempty"`
+	GcExpression string `protobuf:"bytes,2,opt,name=gc_expression,json=gcExpression,proto3" json:"gc_expression,omitempty"`
 	// Garbage collection rule specified as a protobuf.
 	// Supersedes `gc_expression`.
 	// Must serialize to at most 500 bytes.
@@ -152,7 +152,7 @@ type ColumnFamily struct {
 	// NOTE: Garbage collection executes opportunistically in the background, and
 	// so it's possible for reads to return a cell even if it matches the active
 	// GC expression for its family.
-	GcRule               *GcRule  `protobuf:"bytes,3,opt,name=gc_rule,json=gcRule" json:"gc_rule,omitempty"`
+	GcRule               *GcRule  `protobuf:"bytes,3,opt,name=gc_rule,json=gcRule,proto3" json:"gc_rule,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -245,16 +245,16 @@ type isGcRule_Rule interface {
 }
 
 type GcRule_MaxNumVersions struct {
-	MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,oneof"`
+	MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,proto3,oneof"`
 }
 type GcRule_MaxAge struct {
-	MaxAge *duration.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,oneof"`
+	MaxAge *duration.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,proto3,oneof"`
 }
 type GcRule_Intersection_ struct {
-	Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,oneof"`
+	Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,proto3,oneof"`
 }
 type GcRule_Union_ struct {
-	Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,oneof"`
+	Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,proto3,oneof"`
 }
 
 func (*GcRule_MaxNumVersions) isGcRule_Rule() {}
@@ -407,7 +407,7 @@ func _GcRule_OneofSizer(msg proto.Message) (n int) {
 // A GcRule which deletes cells matching all of the given rules.
 type GcRule_Intersection struct {
 	// Only delete cells which would be deleted by every element of `rules`.
-	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -447,7 +447,7 @@ func (m *GcRule_Intersection) GetRules() []*GcRule {
 // A GcRule which deletes cells matching any of the given rules.
 type GcRule_Union struct {
 	// Delete cells which would be deleted by any element of `rules`.
-	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
diff --git a/googleapis/bigtable/admin/table/v1/bigtable_table_service.pb.go b/googleapis/bigtable/admin/table/v1/bigtable_table_service.pb.go
index 071066590b95055753354618f5b4fa6e49e7617a..6f9519bae37e6eaed3e382da859df45f0335efd6 100644
--- a/googleapis/bigtable/admin/table/v1/bigtable_table_service.pb.go
+++ b/googleapis/bigtable/admin/table/v1/bigtable_table_service.pb.go
@@ -149,8 +149,7 @@ func (c *bigtableTableServiceClient) BulkDeleteRows(ctx context.Context, in *Bul
 	return out, nil
 }
 
-// Server API for BigtableTableService service
-
+// BigtableTableServiceServer is the server API for BigtableTableService service.
 type BigtableTableServiceServer interface {
 	// Creates a new table, to be served from a specified cluster.
 	// The table can be created with a full set of initial column families,
diff --git a/googleapis/bigtable/admin/table/v1/bigtable_table_service_messages.pb.go b/googleapis/bigtable/admin/table/v1/bigtable_table_service_messages.pb.go
index fd59676b2213c3ebf36bee96c5d616b65aa5ebd5..b3bb6d141bfc93faac7dffa19f462bfbfb98a66e 100644
--- a/googleapis/bigtable/admin/table/v1/bigtable_table_service_messages.pb.go
+++ b/googleapis/bigtable/admin/table/v1/bigtable_table_service_messages.pb.go
@@ -20,13 +20,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 
 type CreateTableRequest struct {
 	// The unique name of the cluster in which to create the new table.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name by which the new table should be referred to within the cluster,
 	// e.g. "foobar" rather than "<cluster_name>/tables/foobar".
-	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId" json:"table_id,omitempty"`
+	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
 	// The Table to create. The `name` field of the Table and all of its
 	// ColumnFamilies must be left blank, and will be populated in the response.
-	Table *Table `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
+	Table *Table `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
 	// The optional list of row keys that will be used to initially split the
 	// table into several tablets (Tablets are similar to HBase regions).
 	// Given two split keys, "s1" and "s2", three tablets will be created,
@@ -42,7 +42,7 @@ type CreateTableRequest struct {
 	//    - Tablet 3 [customer_1, customer_2) => {"customer_1"}.
 	//    - Tablet 4 [customer_2, other)      => {"customer_2"}.
 	//    - Tablet 5 [other, )                => {"other", "zz"}.
-	InitialSplitKeys     []string `protobuf:"bytes,4,rep,name=initial_split_keys,json=initialSplitKeys" json:"initial_split_keys,omitempty"`
+	InitialSplitKeys     []string `protobuf:"bytes,4,rep,name=initial_split_keys,json=initialSplitKeys,proto3" json:"initial_split_keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -102,7 +102,7 @@ func (m *CreateTableRequest) GetInitialSplitKeys() []string {
 
 type ListTablesRequest struct {
 	// The unique name of the cluster for which tables should be listed.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -142,7 +142,7 @@ func (m *ListTablesRequest) GetName() string {
 type ListTablesResponse struct {
 	// The tables present in the requested cluster.
 	// At present, only the names of the tables are populated.
-	Tables               []*Table `protobuf:"bytes,1,rep,name=tables" json:"tables,omitempty"`
+	Tables               []*Table `protobuf:"bytes,1,rep,name=tables,proto3" json:"tables,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -181,7 +181,7 @@ func (m *ListTablesResponse) GetTables() []*Table {
 
 type GetTableRequest struct {
 	// The unique name of the requested table.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -220,7 +220,7 @@ func (m *GetTableRequest) GetName() string {
 
 type DeleteTableRequest struct {
 	// The unique name of the table to be deleted.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -259,10 +259,10 @@ func (m *DeleteTableRequest) GetName() string {
 
 type RenameTableRequest struct {
 	// The current unique name of the table.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The new name by which the table should be referred to within its containing
 	// cluster, e.g. "foobar" rather than "<cluster_name>/tables/foobar".
-	NewId                string   `protobuf:"bytes,2,opt,name=new_id,json=newId" json:"new_id,omitempty"`
+	NewId                string   `protobuf:"bytes,2,opt,name=new_id,json=newId,proto3" json:"new_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -308,12 +308,12 @@ func (m *RenameTableRequest) GetNewId() string {
 
 type CreateColumnFamilyRequest struct {
 	// The unique name of the table in which to create the new column family.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name by which the new column family should be referred to within the
 	// table, e.g. "foobar" rather than "<table_name>/columnFamilies/foobar".
-	ColumnFamilyId string `protobuf:"bytes,2,opt,name=column_family_id,json=columnFamilyId" json:"column_family_id,omitempty"`
+	ColumnFamilyId string `protobuf:"bytes,2,opt,name=column_family_id,json=columnFamilyId,proto3" json:"column_family_id,omitempty"`
 	// The column family to create. The `name` field must be left blank.
-	ColumnFamily         *ColumnFamily `protobuf:"bytes,3,opt,name=column_family,json=columnFamily" json:"column_family,omitempty"`
+	ColumnFamily         *ColumnFamily `protobuf:"bytes,3,opt,name=column_family,json=columnFamily,proto3" json:"column_family,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -366,7 +366,7 @@ func (m *CreateColumnFamilyRequest) GetColumnFamily() *ColumnFamily {
 
 type DeleteColumnFamilyRequest struct {
 	// The unique name of the column family to be deleted.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -405,7 +405,7 @@ func (m *DeleteColumnFamilyRequest) GetName() string {
 
 type BulkDeleteRowsRequest struct {
 	// The unique name of the table on which to perform the bulk delete
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// Types that are valid to be assigned to Target:
 	//	*BulkDeleteRowsRequest_RowKeyPrefix
 	//	*BulkDeleteRowsRequest_DeleteAllDataFromTable
@@ -447,7 +447,7 @@ type BulkDeleteRowsRequest_RowKeyPrefix struct {
 	RowKeyPrefix []byte `protobuf:"bytes,2,opt,name=row_key_prefix,json=rowKeyPrefix,proto3,oneof"`
 }
 type BulkDeleteRowsRequest_DeleteAllDataFromTable struct {
-	DeleteAllDataFromTable bool `protobuf:"varint,3,opt,name=delete_all_data_from_table,json=deleteAllDataFromTable,oneof"`
+	DeleteAllDataFromTable bool `protobuf:"varint,3,opt,name=delete_all_data_from_table,json=deleteAllDataFromTable,proto3,oneof"`
 }
 
 func (*BulkDeleteRowsRequest_RowKeyPrefix) isBulkDeleteRowsRequest_Target()           {}
diff --git a/googleapis/bigtable/admin/v2/bigtable_instance_admin.pb.go b/googleapis/bigtable/admin/v2/bigtable_instance_admin.pb.go
index fe71cf78c29ca34608b57880e8ea0f4261b5b6de..28768345a72429b5b0457edc5c81b3e147a15793 100644
--- a/googleapis/bigtable/admin/v2/bigtable_instance_admin.pb.go
+++ b/googleapis/bigtable/admin/v2/bigtable_instance_admin.pb.go
@@ -33,20 +33,20 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type CreateInstanceRequest struct {
 	// The unique name of the project in which to create the new instance.
 	// Values are of the form `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The ID to be used when referring to the new instance within its project,
 	// e.g., just `myinstance` rather than
 	// `projects/myproject/instances/myinstance`.
-	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	// The instance to create.
 	// Fields marked `OutputOnly` must be left blank.
-	Instance *Instance `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"`
+	Instance *Instance `protobuf:"bytes,3,opt,name=instance,proto3" json:"instance,omitempty"`
 	// The clusters to be created within the instance, mapped by desired
 	// cluster ID, e.g., just `mycluster` rather than
 	// `projects/myproject/instances/myinstance/clusters/mycluster`.
 	// Fields marked `OutputOnly` must be left blank.
 	// Currently exactly one cluster must be specified.
-	Clusters             map[string]*Cluster `protobuf:"bytes,4,rep,name=clusters" json:"clusters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Clusters             map[string]*Cluster `protobuf:"bytes,4,rep,name=clusters,proto3" json:"clusters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -108,7 +108,7 @@ func (m *CreateInstanceRequest) GetClusters() map[string]*Cluster {
 type GetInstanceRequest struct {
 	// The unique name of the requested instance. Values are of the form
 	// `projects/<project>/instances/<instance>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -149,9 +149,9 @@ func (m *GetInstanceRequest) GetName() string {
 type ListInstancesRequest struct {
 	// The unique name of the project for which a list of instances is requested.
 	// Values are of the form `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The value of `next_page_token` returned by a previous call.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -198,17 +198,17 @@ func (m *ListInstancesRequest) GetPageToken() string {
 // Response message for BigtableInstanceAdmin.ListInstances.
 type ListInstancesResponse struct {
 	// The list of requested instances.
-	Instances []*Instance `protobuf:"bytes,1,rep,name=instances" json:"instances,omitempty"`
+	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
 	// Locations from which Instance information could not be retrieved,
 	// due to an outage or some other transient condition.
 	// Instances whose Clusters are all in one of the failed locations
 	// may be missing from `instances`, and Instances with at least one
 	// Cluster in a failed location may only have partial information returned.
-	FailedLocations []string `protobuf:"bytes,2,rep,name=failed_locations,json=failedLocations" json:"failed_locations,omitempty"`
+	FailedLocations []string `protobuf:"bytes,2,rep,name=failed_locations,json=failedLocations,proto3" json:"failed_locations,omitempty"`
 	// Set if not all instances could be returned in a single response.
 	// Pass this value to `page_token` in another request to get the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,10 +262,10 @@ func (m *ListInstancesResponse) GetNextPageToken() string {
 // Request message for BigtableInstanceAdmin.PartialUpdateInstance.
 type PartialUpdateInstanceRequest struct {
 	// The Instance which will (partially) replace the current value.
-	Instance *Instance `protobuf:"bytes,1,opt,name=instance" json:"instance,omitempty"`
+	Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
 	// The subset of Instance fields which should be replaced.
 	// Must be explicitly set.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -313,7 +313,7 @@ func (m *PartialUpdateInstanceRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteInstanceRequest struct {
 	// The unique name of the instance to be deleted.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -355,14 +355,14 @@ type CreateClusterRequest struct {
 	// The unique name of the instance in which to create the new cluster.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The ID to be used when referring to the new cluster within its instance,
 	// e.g., just `mycluster` rather than
 	// `projects/myproject/instances/myinstance/clusters/mycluster`.
-	ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The cluster to be created.
 	// Fields marked `OutputOnly` must be left blank.
-	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -417,7 +417,7 @@ func (m *CreateClusterRequest) GetCluster() *Cluster {
 type GetClusterRequest struct {
 	// The unique name of the requested cluster. Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -460,9 +460,9 @@ type ListClustersRequest struct {
 	// Values are of the form `projects/<project>/instances/<instance>`.
 	// Use `<instance> = '-'` to list Clusters for all Instances in a project,
 	// e.g., `projects/myproject/instances/-`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The value of `next_page_token` returned by a previous call.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -509,16 +509,16 @@ func (m *ListClustersRequest) GetPageToken() string {
 // Response message for BigtableInstanceAdmin.ListClusters.
 type ListClustersResponse struct {
 	// The list of requested clusters.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// Locations from which Cluster information could not be retrieved,
 	// due to an outage or some other transient condition.
 	// Clusters from these locations may be missing from `clusters`,
 	// or may only have partial information returned.
-	FailedLocations []string `protobuf:"bytes,2,rep,name=failed_locations,json=failedLocations" json:"failed_locations,omitempty"`
+	FailedLocations []string `protobuf:"bytes,2,rep,name=failed_locations,json=failedLocations,proto3" json:"failed_locations,omitempty"`
 	// Set if not all clusters could be returned in a single response.
 	// Pass this value to `page_token` in another request to get the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -573,7 +573,7 @@ func (m *ListClustersResponse) GetNextPageToken() string {
 type DeleteClusterRequest struct {
 	// The unique name of the cluster to be deleted. Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -613,11 +613,11 @@ func (m *DeleteClusterRequest) GetName() string {
 // The metadata for the Operation returned by CreateInstance.
 type CreateInstanceMetadata struct {
 	// The request that prompted the initiation of this CreateInstance operation.
-	OriginalRequest *CreateInstanceRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *CreateInstanceRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -671,11 +671,11 @@ func (m *CreateInstanceMetadata) GetFinishTime() *timestamp.Timestamp {
 // The metadata for the Operation returned by UpdateInstance.
 type UpdateInstanceMetadata struct {
 	// The request that prompted the initiation of this UpdateInstance operation.
-	OriginalRequest *PartialUpdateInstanceRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *PartialUpdateInstanceRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -729,11 +729,11 @@ func (m *UpdateInstanceMetadata) GetFinishTime() *timestamp.Timestamp {
 // The metadata for the Operation returned by CreateCluster.
 type CreateClusterMetadata struct {
 	// The request that prompted the initiation of this CreateCluster operation.
-	OriginalRequest *CreateClusterRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *CreateClusterRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -787,11 +787,11 @@ func (m *CreateClusterMetadata) GetFinishTime() *timestamp.Timestamp {
 // The metadata for the Operation returned by UpdateCluster.
 type UpdateClusterMetadata struct {
 	// The request that prompted the initiation of this UpdateCluster operation.
-	OriginalRequest *Cluster `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *Cluster `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -847,16 +847,16 @@ type CreateAppProfileRequest struct {
 	// The unique name of the instance in which to create the new app profile.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The ID to be used when referring to the new app profile within its
 	// instance, e.g., just `myprofile` rather than
 	// `projects/myproject/instances/myinstance/appProfiles/myprofile`.
-	AppProfileId string `protobuf:"bytes,2,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,2,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The app profile to be created.
 	// Fields marked `OutputOnly` will be ignored.
-	AppProfile *AppProfile `protobuf:"bytes,3,opt,name=app_profile,json=appProfile" json:"app_profile,omitempty"`
+	AppProfile *AppProfile `protobuf:"bytes,3,opt,name=app_profile,json=appProfile,proto3" json:"app_profile,omitempty"`
 	// If true, ignore safety checks when creating the app profile.
-	IgnoreWarnings       bool     `protobuf:"varint,4,opt,name=ignore_warnings,json=ignoreWarnings" json:"ignore_warnings,omitempty"`
+	IgnoreWarnings       bool     `protobuf:"varint,4,opt,name=ignore_warnings,json=ignoreWarnings,proto3" json:"ignore_warnings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -918,7 +918,7 @@ func (m *CreateAppProfileRequest) GetIgnoreWarnings() bool {
 type GetAppProfileRequest struct {
 	// The unique name of the requested app profile. Values are of the form
 	// `projects/<project>/instances/<instance>/appProfiles/<app_profile>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -960,9 +960,9 @@ type ListAppProfilesRequest struct {
 	// The unique name of the instance for which a list of app profiles is
 	// requested. Values are of the form
 	// `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The value of `next_page_token` returned by a previous call.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1009,11 +1009,11 @@ func (m *ListAppProfilesRequest) GetPageToken() string {
 // Response message for BigtableInstanceAdmin.ListAppProfiles.
 type ListAppProfilesResponse struct {
 	// The list of requested app profiles.
-	AppProfiles []*AppProfile `protobuf:"bytes,1,rep,name=app_profiles,json=appProfiles" json:"app_profiles,omitempty"`
+	AppProfiles []*AppProfile `protobuf:"bytes,1,rep,name=app_profiles,json=appProfiles,proto3" json:"app_profiles,omitempty"`
 	// Set if not all app profiles could be returned in a single response.
 	// Pass this value to `page_token` in another request to get the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1060,12 +1060,12 @@ func (m *ListAppProfilesResponse) GetNextPageToken() string {
 // Request message for BigtableInstanceAdmin.UpdateAppProfile.
 type UpdateAppProfileRequest struct {
 	// The app profile which will (partially) replace the current value.
-	AppProfile *AppProfile `protobuf:"bytes,1,opt,name=app_profile,json=appProfile" json:"app_profile,omitempty"`
+	AppProfile *AppProfile `protobuf:"bytes,1,opt,name=app_profile,json=appProfile,proto3" json:"app_profile,omitempty"`
 	// The subset of app profile fields which should be replaced.
 	// If unset, all fields will be replaced.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// If true, ignore safety checks when updating the app profile.
-	IgnoreWarnings       bool     `protobuf:"varint,3,opt,name=ignore_warnings,json=ignoreWarnings" json:"ignore_warnings,omitempty"`
+	IgnoreWarnings       bool     `protobuf:"varint,3,opt,name=ignore_warnings,json=ignoreWarnings,proto3" json:"ignore_warnings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1120,9 +1120,9 @@ func (m *UpdateAppProfileRequest) GetIgnoreWarnings() bool {
 type DeleteAppProfileRequest struct {
 	// The unique name of the app profile to be deleted. Values are of the form
 	// `projects/<project>/instances/<instance>/appProfiles/<app_profile>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// If true, ignore safety checks when deleting the app profile.
-	IgnoreWarnings       bool     `protobuf:"varint,2,opt,name=ignore_warnings,json=ignoreWarnings" json:"ignore_warnings,omitempty"`
+	IgnoreWarnings       bool     `protobuf:"varint,2,opt,name=ignore_warnings,json=ignoreWarnings,proto3" json:"ignore_warnings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1456,8 +1456,7 @@ func (c *bigtableInstanceAdminClient) TestIamPermissions(ctx context.Context, in
 	return out, nil
 }
 
-// Server API for BigtableInstanceAdmin service
-
+// BigtableInstanceAdminServer is the server API for BigtableInstanceAdmin service.
 type BigtableInstanceAdminServer interface {
 	// Create an instance within a project.
 	CreateInstance(context.Context, *CreateInstanceRequest) (*longrunning.Operation, error)
diff --git a/googleapis/bigtable/admin/v2/bigtable_table_admin.pb.go b/googleapis/bigtable/admin/v2/bigtable_table_admin.pb.go
index e937ca0baf44fa20bc99e9745a21fe6f1a732bd2..164baac258e74c839e56735d6a9106b1c6958831 100644
--- a/googleapis/bigtable/admin/v2/bigtable_table_admin.pb.go
+++ b/googleapis/bigtable/admin/v2/bigtable_table_admin.pb.go
@@ -33,12 +33,12 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type CreateTableRequest struct {
 	// The unique name of the instance in which to create the table.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The name by which the new table should be referred to within the parent
 	// instance, e.g., `foobar` rather than `<parent>/tables/foobar`.
-	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId" json:"table_id,omitempty"`
+	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
 	// The Table to create.
-	Table *Table `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
+	Table *Table `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
 	// The optional list of row keys that will be used to initially split the
 	// table into several tablets (tablets are similar to HBase regions).
 	// Given two split keys, `s1` and `s2`, three tablets will be created,
@@ -55,7 +55,7 @@ type CreateTableRequest struct {
 	//     - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.`
 	//     - Tablet 4 `[customer_2, other)      => {"customer_2"}.`
 	//     - Tablet 5 `[other, )                => {"other", "zz"}.`
-	InitialSplits        []*CreateTableRequest_Split `protobuf:"bytes,4,rep,name=initial_splits,json=initialSplits" json:"initial_splits,omitempty"`
+	InitialSplits        []*CreateTableRequest_Split `protobuf:"bytes,4,rep,name=initial_splits,json=initialSplits,proto3" json:"initial_splits,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -163,15 +163,15 @@ func (m *CreateTableRequest_Split) GetKey() []byte {
 type CreateTableFromSnapshotRequest struct {
 	// The unique name of the instance in which to create the table.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The name by which the new table should be referred to within the parent
 	// instance, e.g., `foobar` rather than `<parent>/tables/foobar`.
-	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId" json:"table_id,omitempty"`
+	TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
 	// The unique name of the snapshot from which to restore the table. The
 	// snapshot and the table must be in the same instance.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
-	SourceSnapshot       string   `protobuf:"bytes,3,opt,name=source_snapshot,json=sourceSnapshot" json:"source_snapshot,omitempty"`
+	SourceSnapshot       string   `protobuf:"bytes,3,opt,name=source_snapshot,json=sourceSnapshot,proto3" json:"source_snapshot,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -228,7 +228,7 @@ type DropRowRangeRequest struct {
 	// The unique name of the table on which to drop a range of rows.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Delete all rows or by prefix.
 	//
 	// Types that are valid to be assigned to Target:
@@ -272,7 +272,7 @@ type DropRowRangeRequest_RowKeyPrefix struct {
 	RowKeyPrefix []byte `protobuf:"bytes,2,opt,name=row_key_prefix,json=rowKeyPrefix,proto3,oneof"`
 }
 type DropRowRangeRequest_DeleteAllDataFromTable struct {
-	DeleteAllDataFromTable bool `protobuf:"varint,3,opt,name=delete_all_data_from_table,json=deleteAllDataFromTable,oneof"`
+	DeleteAllDataFromTable bool `protobuf:"varint,3,opt,name=delete_all_data_from_table,json=deleteAllDataFromTable,proto3,oneof"`
 }
 
 func (*DropRowRangeRequest_RowKeyPrefix) isDropRowRangeRequest_Target()           {}
@@ -380,12 +380,12 @@ func _DropRowRangeRequest_OneofSizer(msg proto.Message) (n int) {
 type ListTablesRequest struct {
 	// The unique name of the instance for which tables should be listed.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The view to be applied to the returned tables' fields.
 	// Defaults to `NAME_ONLY` if unspecified; no others are currently supported.
-	View Table_View `protobuf:"varint,2,opt,name=view,enum=google.bigtable.admin.v2.Table_View" json:"view,omitempty"`
+	View Table_View `protobuf:"varint,2,opt,name=view,proto3,enum=google.bigtable.admin.v2.Table_View" json:"view,omitempty"`
 	// The value of `next_page_token` returned by a previous call.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -440,11 +440,11 @@ func (m *ListTablesRequest) GetPageToken() string {
 // [google.bigtable.admin.v2.BigtableTableAdmin.ListTables][google.bigtable.admin.v2.BigtableTableAdmin.ListTables]
 type ListTablesResponse struct {
 	// The tables present in the requested instance.
-	Tables []*Table `protobuf:"bytes,1,rep,name=tables" json:"tables,omitempty"`
+	Tables []*Table `protobuf:"bytes,1,rep,name=tables,proto3" json:"tables,omitempty"`
 	// Set if not all tables could be returned in a single response.
 	// Pass this value to `page_token` in another request to get the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -494,10 +494,10 @@ type GetTableRequest struct {
 	// The unique name of the requested table.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The view to be applied to the returned table's fields.
 	// Defaults to `SCHEMA_VIEW` if unspecified.
-	View                 Table_View `protobuf:"varint,2,opt,name=view,enum=google.bigtable.admin.v2.Table_View" json:"view,omitempty"`
+	View                 Table_View `protobuf:"varint,2,opt,name=view,proto3,enum=google.bigtable.admin.v2.Table_View" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -547,7 +547,7 @@ type DeleteTableRequest struct {
 	// The unique name of the table to be deleted.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -590,12 +590,12 @@ type ModifyColumnFamiliesRequest struct {
 	// The unique name of the table whose families should be modified.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Modifications to be atomically applied to the specified table's families.
 	// Entries are applied in order, meaning that earlier modifications can be
 	// masked by later ones (in the case of repeated updates to the same family,
 	// for example).
-	Modifications        []*ModifyColumnFamiliesRequest_Modification `protobuf:"bytes,2,rep,name=modifications" json:"modifications,omitempty"`
+	Modifications        []*ModifyColumnFamiliesRequest_Modification `protobuf:"bytes,2,rep,name=modifications,proto3" json:"modifications,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
 	XXX_unrecognized     []byte                                      `json:"-"`
 	XXX_sizecache        int32                                       `json:"-"`
@@ -642,7 +642,7 @@ func (m *ModifyColumnFamiliesRequest) GetModifications() []*ModifyColumnFamilies
 // A create, update, or delete of a particular column family.
 type ModifyColumnFamiliesRequest_Modification struct {
 	// The ID of the column family to be modified.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Column familiy modifications.
 	//
 	// Types that are valid to be assigned to Mod:
@@ -686,13 +686,13 @@ type isModifyColumnFamiliesRequest_Modification_Mod interface {
 }
 
 type ModifyColumnFamiliesRequest_Modification_Create struct {
-	Create *ColumnFamily `protobuf:"bytes,2,opt,name=create,oneof"`
+	Create *ColumnFamily `protobuf:"bytes,2,opt,name=create,proto3,oneof"`
 }
 type ModifyColumnFamiliesRequest_Modification_Update struct {
-	Update *ColumnFamily `protobuf:"bytes,3,opt,name=update,oneof"`
+	Update *ColumnFamily `protobuf:"bytes,3,opt,name=update,proto3,oneof"`
 }
 type ModifyColumnFamiliesRequest_Modification_Drop struct {
-	Drop bool `protobuf:"varint,4,opt,name=drop,oneof"`
+	Drop bool `protobuf:"varint,4,opt,name=drop,proto3,oneof"`
 }
 
 func (*ModifyColumnFamiliesRequest_Modification_Create) isModifyColumnFamiliesRequest_Modification_Mod() {
@@ -835,7 +835,7 @@ type GenerateConsistencyTokenRequest struct {
 	// The unique name of the Table for which to create a consistency token.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -876,7 +876,7 @@ func (m *GenerateConsistencyTokenRequest) GetName() string {
 // [google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken][google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken]
 type GenerateConsistencyTokenResponse struct {
 	// The generated consistency token.
-	ConsistencyToken     string   `protobuf:"bytes,1,opt,name=consistency_token,json=consistencyToken" json:"consistency_token,omitempty"`
+	ConsistencyToken     string   `protobuf:"bytes,1,opt,name=consistency_token,json=consistencyToken,proto3" json:"consistency_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -919,9 +919,9 @@ type CheckConsistencyRequest struct {
 	// The unique name of the Table for which to check replication consistency.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The token created using GenerateConsistencyToken for the Table.
-	ConsistencyToken     string   `protobuf:"bytes,2,opt,name=consistency_token,json=consistencyToken" json:"consistency_token,omitempty"`
+	ConsistencyToken     string   `protobuf:"bytes,2,opt,name=consistency_token,json=consistencyToken,proto3" json:"consistency_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -970,7 +970,7 @@ func (m *CheckConsistencyRequest) GetConsistencyToken() string {
 type CheckConsistencyResponse struct {
 	// True only if the token is consistent. A token is consistent if replication
 	// has caught up with the restrictions specified in the request.
-	Consistent           bool     `protobuf:"varint,1,opt,name=consistent" json:"consistent,omitempty"`
+	Consistent           bool     `protobuf:"varint,1,opt,name=consistent,proto3" json:"consistent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1018,23 +1018,23 @@ type SnapshotTableRequest struct {
 	// The unique name of the table to have the snapshot taken.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the cluster where the snapshot will be created in.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>`.
-	Cluster string `protobuf:"bytes,2,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// The ID by which the new snapshot should be referred to within the parent
 	// cluster, e.g., `mysnapshot` of the form: `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`
 	// rather than
 	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/mysnapshot`.
-	SnapshotId string `protobuf:"bytes,3,opt,name=snapshot_id,json=snapshotId" json:"snapshot_id,omitempty"`
+	SnapshotId string `protobuf:"bytes,3,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
 	// The amount of time that the new snapshot can stay active after it is
 	// created. Once 'ttl' expires, the snapshot will get deleted. The maximum
 	// amount of time a snapshot can stay active is 7 days. If 'ttl' is not
 	// specified, the default value of 24 hours will be used.
-	Ttl *duration.Duration `protobuf:"bytes,4,opt,name=ttl" json:"ttl,omitempty"`
+	Ttl *duration.Duration `protobuf:"bytes,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
 	// Description of the snapshot.
-	Description          string   `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1110,7 +1110,7 @@ type GetSnapshotRequest struct {
 	// The unique name of the requested snapshot.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1160,11 +1160,11 @@ type ListSnapshotsRequest struct {
 	// `projects/<project>/instances/<instance>/clusters/<cluster>`.
 	// Use `<cluster> = '-'` to list snapshots for all clusters in an instance,
 	// e.g., `projects/<project>/instances/<instance>/clusters/-`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of snapshots to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value of `next_page_token` returned by a previous call.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1224,11 +1224,11 @@ func (m *ListSnapshotsRequest) GetPageToken() string {
 // for production use. It is not subject to any SLA or deprecation policy.
 type ListSnapshotsResponse struct {
 	// The snapshots present in the requested cluster.
-	Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots" json:"snapshots,omitempty"`
+	Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
 	// Set if not all snapshots could be returned in a single response.
 	// Pass this value to `page_token` in another request to get the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1283,7 +1283,7 @@ type DeleteSnapshotRequest struct {
 	// The unique name of the snapshot to be deleted.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1328,11 +1328,11 @@ func (m *DeleteSnapshotRequest) GetName() string {
 // for production use. It is not subject to any SLA or deprecation policy.
 type SnapshotTableMetadata struct {
 	// The request that prompted the initiation of this SnapshotTable operation.
-	OriginalRequest *SnapshotTableRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *SnapshotTableRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1392,11 +1392,11 @@ func (m *SnapshotTableMetadata) GetFinishTime() *timestamp.Timestamp {
 type CreateTableFromSnapshotMetadata struct {
 	// The request that prompted the initiation of this CreateTableFromSnapshot
 	// operation.
-	OriginalRequest *CreateTableFromSnapshotRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest" json:"original_request,omitempty"`
+	OriginalRequest *CreateTableFromSnapshotRequest `protobuf:"bytes,1,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"`
 	// The time at which the original request was received.
-	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime" json:"request_time,omitempty"`
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
 	// The time at which the operation failed or was completed successfully.
-	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1680,8 +1680,7 @@ func (c *bigtableTableAdminClient) DeleteSnapshot(ctx context.Context, in *Delet
 	return out, nil
 }
 
-// Server API for BigtableTableAdmin service
-
+// BigtableTableAdminServer is the server API for BigtableTableAdmin service.
 type BigtableTableAdminServer interface {
 	// Creates a new table in the specified instance.
 	// The table can be created with a full set of initial column families,
diff --git a/googleapis/bigtable/admin/v2/instance.pb.go b/googleapis/bigtable/admin/v2/instance.pb.go
index e492b60eb79a649c7d1261ba89c3056869269281..57bf20ab3d46a68007b6afff56e81a3dc39023da 100644
--- a/googleapis/bigtable/admin/v2/instance.pb.go
+++ b/googleapis/bigtable/admin/v2/instance.pb.go
@@ -143,16 +143,16 @@ type Instance struct {
 	// (`OutputOnly`)
 	// The unique name of the instance. Values are of the form
 	// `projects/<project>/instances/[a-z][a-z0-9\\-]+[a-z0-9]`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The descriptive name for this instance as it appears in UIs.
 	// Can be changed at any time, but should be kept globally unique
 	// to avoid confusion.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// (`OutputOnly`)
 	// The current state of the instance.
-	State Instance_State `protobuf:"varint,3,opt,name=state,enum=google.bigtable.admin.v2.Instance_State" json:"state,omitempty"`
+	State Instance_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.bigtable.admin.v2.Instance_State" json:"state,omitempty"`
 	// The type of the instance. Defaults to `PRODUCTION`.
-	Type Instance_Type `protobuf:"varint,4,opt,name=type,enum=google.bigtable.admin.v2.Instance_Type" json:"type,omitempty"`
+	Type Instance_Type `protobuf:"varint,4,opt,name=type,proto3,enum=google.bigtable.admin.v2.Instance_Type" json:"type,omitempty"`
 	// Labels are a flexible and lightweight mechanism for organizing cloud
 	// resources into groups that reflect a customer's organizational needs and
 	// deployment strategies. They can be used to filter resources and aggregate
@@ -164,7 +164,7 @@ type Instance struct {
 	//   the regular expression: `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`.
 	// * No more than 64 labels can be associated with a given resource.
 	// * Keys and values must both be under 128 bytes.
-	Labels               map[string]string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -236,23 +236,23 @@ type Cluster struct {
 	// (`OutputOnly`)
 	// The unique name of the cluster. Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/[a-z][-a-z0-9]*`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// (`CreationOnly`)
 	// The location where this cluster's nodes and storage reside. For best
 	// performance, clients should be located as close as possible to this
 	// cluster. Currently only zones are supported, so values should be of the
 	// form `projects/<project>/locations/<zone>`.
-	Location string `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
 	// (`OutputOnly`)
 	// The current state of the cluster.
-	State Cluster_State `protobuf:"varint,3,opt,name=state,enum=google.bigtable.admin.v2.Cluster_State" json:"state,omitempty"`
+	State Cluster_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.bigtable.admin.v2.Cluster_State" json:"state,omitempty"`
 	// The number of nodes allocated to this cluster. More nodes enable higher
 	// throughput and more consistent performance.
-	ServeNodes int32 `protobuf:"varint,4,opt,name=serve_nodes,json=serveNodes" json:"serve_nodes,omitempty"`
+	ServeNodes int32 `protobuf:"varint,4,opt,name=serve_nodes,json=serveNodes,proto3" json:"serve_nodes,omitempty"`
 	// (`CreationOnly`)
 	// The type of storage used by this cluster to serve its
 	// parent instance's tables, unless explicitly overridden.
-	DefaultStorageType   StorageType `protobuf:"varint,5,opt,name=default_storage_type,json=defaultStorageType,enum=google.bigtable.admin.v2.StorageType" json:"default_storage_type,omitempty"`
+	DefaultStorageType   StorageType `protobuf:"varint,5,opt,name=default_storage_type,json=defaultStorageType,proto3,enum=google.bigtable.admin.v2.StorageType" json:"default_storage_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -323,7 +323,7 @@ type AppProfile struct {
 	// (`OutputOnly`)
 	// The unique name of the app profile. Values are of the form
 	// `projects/<project>/instances/<instance>/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Strongly validated etag for optimistic concurrency control. Preserve the
 	// value returned from `GetAppProfile` when calling `UpdateAppProfile` to
 	// fail the request if there has been a modification in the mean time. The
@@ -332,9 +332,9 @@ type AppProfile struct {
 	// See [Wikipedia](https://en.wikipedia.org/wiki/HTTP_ETag) and
 	// [RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3) for more
 	// details.
-	Etag string `protobuf:"bytes,2,opt,name=etag" json:"etag,omitempty"`
+	Etag string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"`
 	// Optional long form description of the use case for this AppProfile.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The routing policy for all read/write requests which use this app profile.
 	// A value must be explicitly set.
 	//
@@ -376,10 +376,10 @@ type isAppProfile_RoutingPolicy interface {
 }
 
 type AppProfile_MultiClusterRoutingUseAny_ struct {
-	MultiClusterRoutingUseAny *AppProfile_MultiClusterRoutingUseAny `protobuf:"bytes,5,opt,name=multi_cluster_routing_use_any,json=multiClusterRoutingUseAny,oneof"`
+	MultiClusterRoutingUseAny *AppProfile_MultiClusterRoutingUseAny `protobuf:"bytes,5,opt,name=multi_cluster_routing_use_any,json=multiClusterRoutingUseAny,proto3,oneof"`
 }
 type AppProfile_SingleClusterRouting_ struct {
-	SingleClusterRouting *AppProfile_SingleClusterRouting `protobuf:"bytes,6,opt,name=single_cluster_routing,json=singleClusterRouting,oneof"`
+	SingleClusterRouting *AppProfile_SingleClusterRouting `protobuf:"bytes,6,opt,name=single_cluster_routing,json=singleClusterRouting,proto3,oneof"`
 }
 
 func (*AppProfile_MultiClusterRoutingUseAny_) isAppProfile_RoutingPolicy() {}
@@ -540,11 +540,11 @@ var xxx_messageInfo_AppProfile_MultiClusterRoutingUseAny proto.InternalMessageIn
 // availability.
 type AppProfile_SingleClusterRouting struct {
 	// The cluster to which read/write requests should be routed.
-	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Whether or not `CheckAndMutateRow` and `ReadModifyWriteRow` requests are
 	// allowed by this app profile. It is unsafe to send these requests to
 	// the same table/row/column in multiple clusters.
-	AllowTransactionalWrites bool     `protobuf:"varint,2,opt,name=allow_transactional_writes,json=allowTransactionalWrites" json:"allow_transactional_writes,omitempty"`
+	AllowTransactionalWrites bool     `protobuf:"varint,2,opt,name=allow_transactional_writes,json=allowTransactionalWrites,proto3" json:"allow_transactional_writes,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
diff --git a/googleapis/bigtable/admin/v2/table.pb.go b/googleapis/bigtable/admin/v2/table.pb.go
index ee8c90c05db3009ff5702ef9b17e5163f44d3b83..7948b07d62b3849333b8e2386775793d175c9b36 100644
--- a/googleapis/bigtable/admin/v2/table.pb.go
+++ b/googleapis/bigtable/admin/v2/table.pb.go
@@ -171,24 +171,24 @@ type Table struct {
 	// The unique name of the table. Values are of the form
 	// `projects/<project>/instances/<instance>/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
 	// Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// (`OutputOnly`)
 	// Map from cluster ID to per-cluster table state.
 	// If it could not be determined whether or not the table has data in a
 	// particular cluster (for example, if its zone is unavailable), then
 	// there will be an entry for the cluster with UNKNOWN `replication_status`.
 	// Views: `REPLICATION_VIEW`, `FULL`
-	ClusterStates map[string]*Table_ClusterState `protobuf:"bytes,2,rep,name=cluster_states,json=clusterStates" json:"cluster_states,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ClusterStates map[string]*Table_ClusterState `protobuf:"bytes,2,rep,name=cluster_states,json=clusterStates,proto3" json:"cluster_states,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// (`CreationOnly`)
 	// The column families configured for this table, mapped by column family ID.
 	// Views: `SCHEMA_VIEW`, `FULL`
-	ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies,proto3" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// (`CreationOnly`)
 	// The granularity (i.e. `MILLIS`) at which timestamps are stored in
 	// this table. Timestamps not matching the granularity will be rejected.
 	// If unspecified at creation time, the value will be set to `MILLIS`.
 	// Views: `SCHEMA_VIEW`, `FULL`
-	Granularity          Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,enum=google.bigtable.admin.v2.Table_TimestampGranularity" json:"granularity,omitempty"`
+	Granularity          Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,proto3,enum=google.bigtable.admin.v2.Table_TimestampGranularity" json:"granularity,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -250,7 +250,7 @@ func (m *Table) GetGranularity() Table_TimestampGranularity {
 type Table_ClusterState struct {
 	// (`OutputOnly`)
 	// The state of replication for the table in this cluster.
-	ReplicationState     Table_ClusterState_ReplicationState `protobuf:"varint,1,opt,name=replication_state,json=replicationState,enum=google.bigtable.admin.v2.Table_ClusterState_ReplicationState" json:"replication_state,omitempty"`
+	ReplicationState     Table_ClusterState_ReplicationState `protobuf:"varint,1,opt,name=replication_state,json=replicationState,proto3,enum=google.bigtable.admin.v2.Table_ClusterState_ReplicationState" json:"replication_state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
 	XXX_unrecognized     []byte                              `json:"-"`
 	XXX_sizecache        int32                               `json:"-"`
@@ -295,7 +295,7 @@ type ColumnFamily struct {
 	// NOTE: Garbage collection executes opportunistically in the background, and
 	// so it's possible for reads to return a cell even if it matches the active
 	// GC expression for its family.
-	GcRule               *GcRule  `protobuf:"bytes,1,opt,name=gc_rule,json=gcRule" json:"gc_rule,omitempty"`
+	GcRule               *GcRule  `protobuf:"bytes,1,opt,name=gc_rule,json=gcRule,proto3" json:"gc_rule,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -376,16 +376,16 @@ type isGcRule_Rule interface {
 }
 
 type GcRule_MaxNumVersions struct {
-	MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,oneof"`
+	MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,proto3,oneof"`
 }
 type GcRule_MaxAge struct {
-	MaxAge *duration.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,oneof"`
+	MaxAge *duration.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,proto3,oneof"`
 }
 type GcRule_Intersection_ struct {
-	Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,oneof"`
+	Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,proto3,oneof"`
 }
 type GcRule_Union_ struct {
-	Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,oneof"`
+	Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,proto3,oneof"`
 }
 
 func (*GcRule_MaxNumVersions) isGcRule_Rule() {}
@@ -538,7 +538,7 @@ func _GcRule_OneofSizer(msg proto.Message) (n int) {
 // A GcRule which deletes cells matching all of the given rules.
 type GcRule_Intersection struct {
 	// Only delete cells which would be deleted by every element of `rules`.
-	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -578,7 +578,7 @@ func (m *GcRule_Intersection) GetRules() []*GcRule {
 // A GcRule which deletes cells matching any of the given rules.
 type GcRule_Union struct {
 	// Delete cells which would be deleted by any element of `rules`.
-	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -627,29 +627,29 @@ type Snapshot struct {
 	// The unique name of the snapshot.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// (`OutputOnly`)
 	// The source table at the time the snapshot was taken.
-	SourceTable *Table `protobuf:"bytes,2,opt,name=source_table,json=sourceTable" json:"source_table,omitempty"`
+	SourceTable *Table `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"`
 	// (`OutputOnly`)
 	// The size of the data in the source table at the time the snapshot was
 	// taken. In some cases, this value may be computed asynchronously via a
 	// background process and a placeholder of 0 will be used in the meantime.
-	DataSizeBytes int64 `protobuf:"varint,3,opt,name=data_size_bytes,json=dataSizeBytes" json:"data_size_bytes,omitempty"`
+	DataSizeBytes int64 `protobuf:"varint,3,opt,name=data_size_bytes,json=dataSizeBytes,proto3" json:"data_size_bytes,omitempty"`
 	// (`OutputOnly`)
 	// The time when the snapshot is created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// (`OutputOnly`)
 	// The time when the snapshot will be deleted. The maximum amount of time a
 	// snapshot can stay active is 365 days. If 'ttl' is not specified,
 	// the default maximum of 365 days will be used.
-	DeleteTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=delete_time,json=deleteTime" json:"delete_time,omitempty"`
+	DeleteTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
 	// (`OutputOnly`)
 	// The current state of the snapshot.
-	State Snapshot_State `protobuf:"varint,6,opt,name=state,enum=google.bigtable.admin.v2.Snapshot_State" json:"state,omitempty"`
+	State Snapshot_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.bigtable.admin.v2.Snapshot_State" json:"state,omitempty"`
 	// (`OutputOnly`)
 	// Description of the snapshot.
-	Description          string   `protobuf:"bytes,7,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/bigtable/v1/bigtable_data.pb.go b/googleapis/bigtable/v1/bigtable_data.pb.go
index 3570ac1b923d0569476926bc13f237e4d49717fd..67e48f9317ad337944453bebdee1757cf1582543 100644
--- a/googleapis/bigtable/v1/bigtable_data.pb.go
+++ b/googleapis/bigtable/v1/bigtable_data.pb.go
@@ -27,7 +27,7 @@ type Row struct {
 	Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// May be empty, but only if the entire row is empty.
 	// The mutual ordering of column families is not specified.
-	Families             []*Family `protobuf:"bytes,2,rep,name=families" json:"families,omitempty"`
+	Families             []*Family `protobuf:"bytes,2,rep,name=families,proto3" json:"families,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -79,9 +79,9 @@ type Family struct {
 	// Must match [-_.a-zA-Z0-9]+, except that AggregatingRowProcessors may
 	// produce cells in a sentinel family with an empty name.
 	// Must be no greater than 64 characters in length.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Must not be empty. Sorted in order of increasing "qualifier".
-	Columns              []*Column `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"`
+	Columns              []*Column `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -134,7 +134,7 @@ type Column struct {
 	// length.
 	Qualifier []byte `protobuf:"bytes,1,opt,name=qualifier,proto3" json:"qualifier,omitempty"`
 	// Must not be empty. Sorted in order of decreasing "timestamp_micros".
-	Cells                []*Cell  `protobuf:"bytes,2,rep,name=cells" json:"cells,omitempty"`
+	Cells                []*Cell  `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -186,13 +186,13 @@ type Cell struct {
 	// a coarser "granularity" to further restrict the allowed values. For
 	// example, a table which specifies millisecond granularity will only allow
 	// values of "timestamp_micros" which are multiples of 1000.
-	TimestampMicros int64 `protobuf:"varint,1,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
+	TimestampMicros int64 `protobuf:"varint,1,opt,name=timestamp_micros,json=timestampMicros,proto3" json:"timestamp_micros,omitempty"`
 	// The value stored in the cell.
 	// May contain any byte string, including the empty string, up to 100MiB in
 	// length.
 	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Labels applied to the cell by a [RowFilter][google.bigtable.v1.RowFilter].
-	Labels               []string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty"`
+	Labels               []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -297,7 +297,7 @@ type RowSet struct {
 	// Single rows included in the set.
 	RowKeys [][]byte `protobuf:"bytes,1,rep,name=row_keys,json=rowKeys,proto3" json:"row_keys,omitempty"`
 	// Contiguous row ranges included in the set.
-	RowRanges            []*RowRange `protobuf:"bytes,2,rep,name=row_ranges,json=rowRanges" json:"row_ranges,omitempty"`
+	RowRanges            []*RowRange `protobuf:"bytes,2,rep,name=row_ranges,json=rowRanges,proto3" json:"row_ranges,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -347,7 +347,7 @@ func (m *RowSet) GetRowRanges() []*RowRange {
 // exclusive.
 type ColumnRange struct {
 	// The name of the column family within which this range falls.
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The column qualifier at which to start the range (within 'column_family').
 	// If neither field is set, interpreted as the empty string, inclusive.
 	//
@@ -575,9 +575,9 @@ func _ColumnRange_OneofSizer(msg proto.Message) (n int) {
 // Specified a contiguous range of microsecond timestamps.
 type TimestampRange struct {
 	// Inclusive lower bound. If left empty, interpreted as 0.
-	StartTimestampMicros int64 `protobuf:"varint,1,opt,name=start_timestamp_micros,json=startTimestampMicros" json:"start_timestamp_micros,omitempty"`
+	StartTimestampMicros int64 `protobuf:"varint,1,opt,name=start_timestamp_micros,json=startTimestampMicros,proto3" json:"start_timestamp_micros,omitempty"`
 	// Exclusive upper bound. If left empty, interpreted as infinity.
-	EndTimestampMicros   int64    `protobuf:"varint,2,opt,name=end_timestamp_micros,json=endTimestampMicros" json:"end_timestamp_micros,omitempty"`
+	EndTimestampMicros   int64    `protobuf:"varint,2,opt,name=end_timestamp_micros,json=endTimestampMicros,proto3" json:"end_timestamp_micros,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -932,61 +932,61 @@ type isRowFilter_Filter interface {
 }
 
 type RowFilter_Chain_ struct {
-	Chain *RowFilter_Chain `protobuf:"bytes,1,opt,name=chain,oneof"`
+	Chain *RowFilter_Chain `protobuf:"bytes,1,opt,name=chain,proto3,oneof"`
 }
 type RowFilter_Interleave_ struct {
-	Interleave *RowFilter_Interleave `protobuf:"bytes,2,opt,name=interleave,oneof"`
+	Interleave *RowFilter_Interleave `protobuf:"bytes,2,opt,name=interleave,proto3,oneof"`
 }
 type RowFilter_Condition_ struct {
-	Condition *RowFilter_Condition `protobuf:"bytes,3,opt,name=condition,oneof"`
+	Condition *RowFilter_Condition `protobuf:"bytes,3,opt,name=condition,proto3,oneof"`
 }
 type RowFilter_Sink struct {
-	Sink bool `protobuf:"varint,16,opt,name=sink,oneof"`
+	Sink bool `protobuf:"varint,16,opt,name=sink,proto3,oneof"`
 }
 type RowFilter_PassAllFilter struct {
-	PassAllFilter bool `protobuf:"varint,17,opt,name=pass_all_filter,json=passAllFilter,oneof"`
+	PassAllFilter bool `protobuf:"varint,17,opt,name=pass_all_filter,json=passAllFilter,proto3,oneof"`
 }
 type RowFilter_BlockAllFilter struct {
-	BlockAllFilter bool `protobuf:"varint,18,opt,name=block_all_filter,json=blockAllFilter,oneof"`
+	BlockAllFilter bool `protobuf:"varint,18,opt,name=block_all_filter,json=blockAllFilter,proto3,oneof"`
 }
 type RowFilter_RowKeyRegexFilter struct {
 	RowKeyRegexFilter []byte `protobuf:"bytes,4,opt,name=row_key_regex_filter,json=rowKeyRegexFilter,proto3,oneof"`
 }
 type RowFilter_RowSampleFilter struct {
-	RowSampleFilter float64 `protobuf:"fixed64,14,opt,name=row_sample_filter,json=rowSampleFilter,oneof"`
+	RowSampleFilter float64 `protobuf:"fixed64,14,opt,name=row_sample_filter,json=rowSampleFilter,proto3,oneof"`
 }
 type RowFilter_FamilyNameRegexFilter struct {
-	FamilyNameRegexFilter string `protobuf:"bytes,5,opt,name=family_name_regex_filter,json=familyNameRegexFilter,oneof"`
+	FamilyNameRegexFilter string `protobuf:"bytes,5,opt,name=family_name_regex_filter,json=familyNameRegexFilter,proto3,oneof"`
 }
 type RowFilter_ColumnQualifierRegexFilter struct {
 	ColumnQualifierRegexFilter []byte `protobuf:"bytes,6,opt,name=column_qualifier_regex_filter,json=columnQualifierRegexFilter,proto3,oneof"`
 }
 type RowFilter_ColumnRangeFilter struct {
-	ColumnRangeFilter *ColumnRange `protobuf:"bytes,7,opt,name=column_range_filter,json=columnRangeFilter,oneof"`
+	ColumnRangeFilter *ColumnRange `protobuf:"bytes,7,opt,name=column_range_filter,json=columnRangeFilter,proto3,oneof"`
 }
 type RowFilter_TimestampRangeFilter struct {
-	TimestampRangeFilter *TimestampRange `protobuf:"bytes,8,opt,name=timestamp_range_filter,json=timestampRangeFilter,oneof"`
+	TimestampRangeFilter *TimestampRange `protobuf:"bytes,8,opt,name=timestamp_range_filter,json=timestampRangeFilter,proto3,oneof"`
 }
 type RowFilter_ValueRegexFilter struct {
 	ValueRegexFilter []byte `protobuf:"bytes,9,opt,name=value_regex_filter,json=valueRegexFilter,proto3,oneof"`
 }
 type RowFilter_ValueRangeFilter struct {
-	ValueRangeFilter *ValueRange `protobuf:"bytes,15,opt,name=value_range_filter,json=valueRangeFilter,oneof"`
+	ValueRangeFilter *ValueRange `protobuf:"bytes,15,opt,name=value_range_filter,json=valueRangeFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerRowOffsetFilter struct {
-	CellsPerRowOffsetFilter int32 `protobuf:"varint,10,opt,name=cells_per_row_offset_filter,json=cellsPerRowOffsetFilter,oneof"`
+	CellsPerRowOffsetFilter int32 `protobuf:"varint,10,opt,name=cells_per_row_offset_filter,json=cellsPerRowOffsetFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerRowLimitFilter struct {
-	CellsPerRowLimitFilter int32 `protobuf:"varint,11,opt,name=cells_per_row_limit_filter,json=cellsPerRowLimitFilter,oneof"`
+	CellsPerRowLimitFilter int32 `protobuf:"varint,11,opt,name=cells_per_row_limit_filter,json=cellsPerRowLimitFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerColumnLimitFilter struct {
-	CellsPerColumnLimitFilter int32 `protobuf:"varint,12,opt,name=cells_per_column_limit_filter,json=cellsPerColumnLimitFilter,oneof"`
+	CellsPerColumnLimitFilter int32 `protobuf:"varint,12,opt,name=cells_per_column_limit_filter,json=cellsPerColumnLimitFilter,proto3,oneof"`
 }
 type RowFilter_StripValueTransformer struct {
-	StripValueTransformer bool `protobuf:"varint,13,opt,name=strip_value_transformer,json=stripValueTransformer,oneof"`
+	StripValueTransformer bool `protobuf:"varint,13,opt,name=strip_value_transformer,json=stripValueTransformer,proto3,oneof"`
 }
 type RowFilter_ApplyLabelTransformer struct {
-	ApplyLabelTransformer string `protobuf:"bytes,19,opt,name=apply_label_transformer,json=applyLabelTransformer,oneof"`
+	ApplyLabelTransformer string `protobuf:"bytes,19,opt,name=apply_label_transformer,json=applyLabelTransformer,proto3,oneof"`
 }
 
 func (*RowFilter_Chain_) isRowFilter_Filter()                     {}
@@ -1507,7 +1507,7 @@ type RowFilter_Chain struct {
 	// The elements of "filters" are chained together to process the input row:
 	// in row -> f(0) -> intermediate row -> f(1) -> ... -> f(N) -> out row
 	// The full chain is executed atomically.
-	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1571,7 +1571,7 @@ type RowFilter_Interleave struct {
 	// 5:                        far,blah,5,x     // identical to #6
 	// 6:                        far,blah,5,x     // identical to #5
 	// All interleaved filters are executed atomically.
-	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1618,14 +1618,14 @@ func (m *RowFilter_Interleave) GetFilters() []*RowFilter {
 type RowFilter_Condition struct {
 	// If "predicate_filter" outputs any cells, then "true_filter" will be
 	// evaluated on the input row. Otherwise, "false_filter" will be evaluated.
-	PredicateFilter *RowFilter `protobuf:"bytes,1,opt,name=predicate_filter,json=predicateFilter" json:"predicate_filter,omitempty"`
+	PredicateFilter *RowFilter `protobuf:"bytes,1,opt,name=predicate_filter,json=predicateFilter,proto3" json:"predicate_filter,omitempty"`
 	// The filter to apply to the input row if "predicate_filter" returns any
 	// results. If not provided, no results will be returned in the true case.
-	TrueFilter *RowFilter `protobuf:"bytes,2,opt,name=true_filter,json=trueFilter" json:"true_filter,omitempty"`
+	TrueFilter *RowFilter `protobuf:"bytes,2,opt,name=true_filter,json=trueFilter,proto3" json:"true_filter,omitempty"`
 	// The filter to apply to the input row if "predicate_filter" does not
 	// return any results. If not provided, no results will be returned in the
 	// false case.
-	FalseFilter          *RowFilter `protobuf:"bytes,3,opt,name=false_filter,json=falseFilter" json:"false_filter,omitempty"`
+	FalseFilter          *RowFilter `protobuf:"bytes,3,opt,name=false_filter,json=falseFilter,proto3" json:"false_filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1720,16 +1720,16 @@ type isMutation_Mutation interface {
 }
 
 type Mutation_SetCell_ struct {
-	SetCell *Mutation_SetCell `protobuf:"bytes,1,opt,name=set_cell,json=setCell,oneof"`
+	SetCell *Mutation_SetCell `protobuf:"bytes,1,opt,name=set_cell,json=setCell,proto3,oneof"`
 }
 type Mutation_DeleteFromColumn_ struct {
-	DeleteFromColumn *Mutation_DeleteFromColumn `protobuf:"bytes,2,opt,name=delete_from_column,json=deleteFromColumn,oneof"`
+	DeleteFromColumn *Mutation_DeleteFromColumn `protobuf:"bytes,2,opt,name=delete_from_column,json=deleteFromColumn,proto3,oneof"`
 }
 type Mutation_DeleteFromFamily_ struct {
-	DeleteFromFamily *Mutation_DeleteFromFamily `protobuf:"bytes,3,opt,name=delete_from_family,json=deleteFromFamily,oneof"`
+	DeleteFromFamily *Mutation_DeleteFromFamily `protobuf:"bytes,3,opt,name=delete_from_family,json=deleteFromFamily,proto3,oneof"`
 }
 type Mutation_DeleteFromRow_ struct {
-	DeleteFromRow *Mutation_DeleteFromRow `protobuf:"bytes,4,opt,name=delete_from_row,json=deleteFromRow,oneof"`
+	DeleteFromRow *Mutation_DeleteFromRow `protobuf:"bytes,4,opt,name=delete_from_row,json=deleteFromRow,proto3,oneof"`
 }
 
 func (*Mutation_SetCell_) isMutation_Mutation()          {}
@@ -1888,7 +1888,7 @@ func _Mutation_OneofSizer(msg proto.Message) (n int) {
 type Mutation_SetCell struct {
 	// The name of the family into which new data should be written.
 	// Must match [-_.a-zA-Z0-9]+
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column into which new data should be written.
 	// Can be any byte string, including the empty string.
 	ColumnQualifier []byte `protobuf:"bytes,2,opt,name=column_qualifier,json=columnQualifier,proto3" json:"column_qualifier,omitempty"`
@@ -1897,7 +1897,7 @@ type Mutation_SetCell struct {
 	// Otherwise, the client should set this value itself, noting that the
 	// default value is a timestamp of zero if the field is left unspecified.
 	// Values must match the "granularity" of the table (e.g. micros, millis).
-	TimestampMicros int64 `protobuf:"varint,3,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
+	TimestampMicros int64 `protobuf:"varint,3,opt,name=timestamp_micros,json=timestampMicros,proto3" json:"timestamp_micros,omitempty"`
 	// The value to be written into the specified cell.
 	Value                []byte   `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1962,12 +1962,12 @@ func (m *Mutation_SetCell) GetValue() []byte {
 type Mutation_DeleteFromColumn struct {
 	// The name of the family from which cells should be deleted.
 	// Must match [-_.a-zA-Z0-9]+
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column from which cells should be deleted.
 	// Can be any byte string, including the empty string.
 	ColumnQualifier []byte `protobuf:"bytes,2,opt,name=column_qualifier,json=columnQualifier,proto3" json:"column_qualifier,omitempty"`
 	// The range of timestamps within which cells should be deleted.
-	TimeRange            *TimestampRange `protobuf:"bytes,3,opt,name=time_range,json=timeRange" json:"time_range,omitempty"`
+	TimeRange            *TimestampRange `protobuf:"bytes,3,opt,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -2022,7 +2022,7 @@ func (m *Mutation_DeleteFromColumn) GetTimeRange() *TimestampRange {
 type Mutation_DeleteFromFamily struct {
 	// The name of the family from which cells should be deleted.
 	// Must match [-_.a-zA-Z0-9]+
-	FamilyName           string   `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName           string   `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2095,7 +2095,7 @@ var xxx_messageInfo_Mutation_DeleteFromRow proto.InternalMessageInfo
 type ReadModifyWriteRule struct {
 	// The name of the family to which the read/modify/write should be applied.
 	// Must match [-_.a-zA-Z0-9]+
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column to which the read/modify/write should be
 	// applied.
 	// Can be any byte string, including the empty string.
@@ -2144,7 +2144,7 @@ type ReadModifyWriteRule_AppendValue struct {
 	AppendValue []byte `protobuf:"bytes,3,opt,name=append_value,json=appendValue,proto3,oneof"`
 }
 type ReadModifyWriteRule_IncrementAmount struct {
-	IncrementAmount int64 `protobuf:"varint,4,opt,name=increment_amount,json=incrementAmount,oneof"`
+	IncrementAmount int64 `protobuf:"varint,4,opt,name=increment_amount,json=incrementAmount,proto3,oneof"`
 }
 
 func (*ReadModifyWriteRule_AppendValue) isReadModifyWriteRule_Rule()     {}
diff --git a/googleapis/bigtable/v1/bigtable_service.pb.go b/googleapis/bigtable/v1/bigtable_service.pb.go
index 2e6d2e674607c669765d98088a22a8889f7ee60e..de642e347cef51342f2076601ace301cb024112f 100644
--- a/googleapis/bigtable/v1/bigtable_service.pb.go
+++ b/googleapis/bigtable/v1/bigtable_service.pb.go
@@ -171,8 +171,7 @@ func (c *bigtableServiceClient) ReadModifyWriteRow(ctx context.Context, in *Read
 	return out, nil
 }
 
-// Server API for BigtableService service
-
+// BigtableServiceServer is the server API for BigtableService service.
 type BigtableServiceServer interface {
 	// Streams back the contents of all requested rows, optionally applying
 	// the same Reader filter to each. Depending on their size, rows may be
diff --git a/googleapis/bigtable/v1/bigtable_service_messages.pb.go b/googleapis/bigtable/v1/bigtable_service_messages.pb.go
index 5a642c5de8863783ef5660c957f3970ad41b12ca..43888719f6db2bcfc9277e5b8131d005f5452364 100644
--- a/googleapis/bigtable/v1/bigtable_service_messages.pb.go
+++ b/googleapis/bigtable/v1/bigtable_service_messages.pb.go
@@ -22,7 +22,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Request message for BigtableServer.ReadRows.
 type ReadRowsRequest struct {
 	// The unique name of the table from which to read.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// If neither row_key nor row_range is set, reads from all rows.
 	//
 	// Types that are valid to be assigned to Target:
@@ -32,18 +32,18 @@ type ReadRowsRequest struct {
 	Target isReadRowsRequest_Target `protobuf_oneof:"target"`
 	// The filter to apply to the contents of the specified row(s). If unset,
 	// reads the entire table.
-	Filter *RowFilter `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter *RowFilter `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// By default, rows are read sequentially, producing results which are
 	// guaranteed to arrive in increasing row order. Setting
 	// "allow_row_interleaving" to true allows multiple rows to be interleaved in
 	// the response stream, which increases throughput but breaks this guarantee,
 	// and may force the client to use more memory to buffer partially-received
 	// rows. Cannot be set to true when specifying "num_rows_limit".
-	AllowRowInterleaving bool `protobuf:"varint,6,opt,name=allow_row_interleaving,json=allowRowInterleaving" json:"allow_row_interleaving,omitempty"`
+	AllowRowInterleaving bool `protobuf:"varint,6,opt,name=allow_row_interleaving,json=allowRowInterleaving,proto3" json:"allow_row_interleaving,omitempty"`
 	// The read will terminate after committing to N rows' worth of results. The
 	// default (zero) is to return all results.
 	// Note that "allow_row_interleaving" cannot be set to true when this is set.
-	NumRowsLimit         int64    `protobuf:"varint,7,opt,name=num_rows_limit,json=numRowsLimit" json:"num_rows_limit,omitempty"`
+	NumRowsLimit         int64    `protobuf:"varint,7,opt,name=num_rows_limit,json=numRowsLimit,proto3" json:"num_rows_limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -81,10 +81,10 @@ type ReadRowsRequest_RowKey struct {
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3,oneof"`
 }
 type ReadRowsRequest_RowRange struct {
-	RowRange *RowRange `protobuf:"bytes,3,opt,name=row_range,json=rowRange,oneof"`
+	RowRange *RowRange `protobuf:"bytes,3,opt,name=row_range,json=rowRange,proto3,oneof"`
 }
 type ReadRowsRequest_RowSet struct {
-	RowSet *RowSet `protobuf:"bytes,8,opt,name=row_set,json=rowSet,oneof"`
+	RowSet *RowSet `protobuf:"bytes,8,opt,name=row_set,json=rowSet,proto3,oneof"`
 }
 
 func (*ReadRowsRequest_RowKey) isReadRowsRequest_Target()   {}
@@ -243,7 +243,7 @@ type ReadRowsResponse struct {
 	// "allow_row_interleaving" was specified in the request.
 	RowKey []byte `protobuf:"bytes,1,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// One or more chunks of the row specified by "row_key".
-	Chunks               []*ReadRowsResponse_Chunk `protobuf:"bytes,2,rep,name=chunks" json:"chunks,omitempty"`
+	Chunks               []*ReadRowsResponse_Chunk `protobuf:"bytes,2,rep,name=chunks,proto3" json:"chunks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -329,13 +329,13 @@ type isReadRowsResponse_Chunk_Chunk interface {
 }
 
 type ReadRowsResponse_Chunk_RowContents struct {
-	RowContents *Family `protobuf:"bytes,1,opt,name=row_contents,json=rowContents,oneof"`
+	RowContents *Family `protobuf:"bytes,1,opt,name=row_contents,json=rowContents,proto3,oneof"`
 }
 type ReadRowsResponse_Chunk_ResetRow struct {
-	ResetRow bool `protobuf:"varint,2,opt,name=reset_row,json=resetRow,oneof"`
+	ResetRow bool `protobuf:"varint,2,opt,name=reset_row,json=resetRow,proto3,oneof"`
 }
 type ReadRowsResponse_Chunk_CommitRow struct {
-	CommitRow bool `protobuf:"varint,3,opt,name=commit_row,json=commitRow,oneof"`
+	CommitRow bool `protobuf:"varint,3,opt,name=commit_row,json=commitRow,proto3,oneof"`
 }
 
 func (*ReadRowsResponse_Chunk_RowContents) isReadRowsResponse_Chunk_Chunk() {}
@@ -464,7 +464,7 @@ func _ReadRowsResponse_Chunk_OneofSizer(msg proto.Message) (n int) {
 // Request message for BigtableService.SampleRowKeys.
 type SampleRowKeysRequest struct {
 	// The unique name of the table from which to sample row keys.
-	TableName            string   `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName            string   `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -515,7 +515,7 @@ type SampleRowKeysResponse struct {
 	// "row_key". Buffering the contents of all rows between two subsequent
 	// samples would require space roughly equal to the difference in their
 	// "offset_bytes" fields.
-	OffsetBytes          int64    `protobuf:"varint,2,opt,name=offset_bytes,json=offsetBytes" json:"offset_bytes,omitempty"`
+	OffsetBytes          int64    `protobuf:"varint,2,opt,name=offset_bytes,json=offsetBytes,proto3" json:"offset_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -562,13 +562,13 @@ func (m *SampleRowKeysResponse) GetOffsetBytes() int64 {
 // Request message for BigtableService.MutateRow.
 type MutateRowRequest struct {
 	// The unique name of the table to which the mutation should be applied.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// The key of the row to which the mutation should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// Changes to be atomically applied to the specified row. Entries are applied
 	// in order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry and at most 100000.
-	Mutations            []*Mutation `protobuf:"bytes,3,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,3,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -622,13 +622,13 @@ func (m *MutateRowRequest) GetMutations() []*Mutation {
 // Request message for BigtableService.MutateRows.
 type MutateRowsRequest struct {
 	// The unique name of the table to which the mutations should be applied.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// The row keys/mutations to be applied in bulk.
 	// Each entry is applied as an atomic mutation, but the entries may be
 	// applied in arbitrary order (even between entries for the same row).
 	// At least one entry must be specified, and in total the entries may
 	// contain at most 100000 mutations.
-	Entries              []*MutateRowsRequest_Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"`
+	Entries              []*MutateRowsRequest_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -679,7 +679,7 @@ type MutateRowsRequest_Entry struct {
 	// applied in order, meaning that earlier mutations can be masked by
 	// later ones.
 	// At least one mutation must be specified.
-	Mutations            []*Mutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,2,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -730,7 +730,7 @@ type MutateRowsResponse struct {
 	// Depending on how requests are batched during execution, it is possible
 	// for one Entry to fail due to an error with another Entry. In the event
 	// that this occurs, the same error will be reported for both entries.
-	Statuses             []*status.Status `protobuf:"bytes,1,rep,name=statuses" json:"statuses,omitempty"`
+	Statuses             []*status.Status `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -771,26 +771,26 @@ func (m *MutateRowsResponse) GetStatuses() []*status.Status {
 type CheckAndMutateRowRequest struct {
 	// The unique name of the table to which the conditional mutation should be
 	// applied.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// The key of the row to which the conditional mutation should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// The filter to be applied to the contents of the specified row. Depending
 	// on whether or not any results are yielded, either "true_mutations" or
 	// "false_mutations" will be executed. If unset, checks that the row contains
 	// any values at all.
-	PredicateFilter *RowFilter `protobuf:"bytes,6,opt,name=predicate_filter,json=predicateFilter" json:"predicate_filter,omitempty"`
+	PredicateFilter *RowFilter `protobuf:"bytes,6,opt,name=predicate_filter,json=predicateFilter,proto3" json:"predicate_filter,omitempty"`
 	// Changes to be atomically applied to the specified row if "predicate_filter"
 	// yields at least one cell when applied to "row_key". Entries are applied in
 	// order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry if "false_mutations" is empty, and at most
 	// 100000.
-	TrueMutations []*Mutation `protobuf:"bytes,4,rep,name=true_mutations,json=trueMutations" json:"true_mutations,omitempty"`
+	TrueMutations []*Mutation `protobuf:"bytes,4,rep,name=true_mutations,json=trueMutations,proto3" json:"true_mutations,omitempty"`
 	// Changes to be atomically applied to the specified row if "predicate_filter"
 	// does not yield any cells when applied to "row_key". Entries are applied in
 	// order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry if "true_mutations" is empty, and at most
 	// 100000.
-	FalseMutations       []*Mutation `protobuf:"bytes,5,rep,name=false_mutations,json=falseMutations" json:"false_mutations,omitempty"`
+	FalseMutations       []*Mutation `protobuf:"bytes,5,rep,name=false_mutations,json=falseMutations,proto3" json:"false_mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -859,7 +859,7 @@ func (m *CheckAndMutateRowRequest) GetFalseMutations() []*Mutation {
 type CheckAndMutateRowResponse struct {
 	// Whether or not the request's "predicate_filter" yielded any results for
 	// the specified row.
-	PredicateMatched     bool     `protobuf:"varint,1,opt,name=predicate_matched,json=predicateMatched" json:"predicate_matched,omitempty"`
+	PredicateMatched     bool     `protobuf:"varint,1,opt,name=predicate_matched,json=predicateMatched,proto3" json:"predicate_matched,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -900,13 +900,13 @@ func (m *CheckAndMutateRowResponse) GetPredicateMatched() bool {
 type ReadModifyWriteRowRequest struct {
 	// The unique name of the table to which the read/modify/write rules should be
 	// applied.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// The key of the row to which the read/modify/write rules should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// Rules specifying how the specified row's contents are to be transformed
 	// into writes. Entries are applied in order, meaning that earlier rules will
 	// affect the results of later ones.
-	Rules                []*ReadModifyWriteRule `protobuf:"bytes,3,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*ReadModifyWriteRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
diff --git a/googleapis/bigtable/v2/bigtable.pb.go b/googleapis/bigtable/v2/bigtable.pb.go
index da9dca821334b517c2c668c1ca8f2d967f0d77ae..51fce7bea226480d2b10de7d79acccfcbbfd54d7 100644
--- a/googleapis/bigtable/v2/bigtable.pb.go
+++ b/googleapis/bigtable/v2/bigtable.pb.go
@@ -31,18 +31,18 @@ type ReadRowsRequest struct {
 	// The unique name of the table from which to read.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId string `protobuf:"bytes,5,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,5,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The row keys and/or ranges to read. If not specified, reads from all rows.
-	Rows *RowSet `protobuf:"bytes,2,opt,name=rows" json:"rows,omitempty"`
+	Rows *RowSet `protobuf:"bytes,2,opt,name=rows,proto3" json:"rows,omitempty"`
 	// The filter to apply to the contents of the specified row(s). If unset,
 	// reads the entirety of each row.
-	Filter *RowFilter `protobuf:"bytes,3,opt,name=filter" json:"filter,omitempty"`
+	Filter *RowFilter `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The read will terminate after committing to N rows' worth of results. The
 	// default (zero) is to return all results.
-	RowsLimit            int64    `protobuf:"varint,4,opt,name=rows_limit,json=rowsLimit" json:"rows_limit,omitempty"`
+	RowsLimit            int64    `protobuf:"varint,4,opt,name=rows_limit,json=rowsLimit,proto3" json:"rows_limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -109,7 +109,7 @@ func (m *ReadRowsRequest) GetRowsLimit() int64 {
 
 // Response message for Bigtable.ReadRows.
 type ReadRowsResponse struct {
-	Chunks []*ReadRowsResponse_CellChunk `protobuf:"bytes,1,rep,name=chunks" json:"chunks,omitempty"`
+	Chunks []*ReadRowsResponse_CellChunk `protobuf:"bytes,1,rep,name=chunks,proto3" json:"chunks,omitempty"`
 	// Optionally the server might return the row key of the last row it
 	// has scanned.  The client can use this to construct a more
 	// efficient retry request if needed: any row keys or portions of
@@ -175,13 +175,13 @@ type ReadRowsResponse_CellChunk struct {
 	// column family name in a response so clients must check
 	// explicitly for the presence of this message, not just for
 	// `family_name.value` being non-empty.
-	FamilyName *wrappers.StringValue `protobuf:"bytes,2,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName *wrappers.StringValue `protobuf:"bytes,2,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The column qualifier for this chunk of data.  If this message
 	// is not present, this CellChunk is a continuation of the same column
 	// as the previous CellChunk.  Column qualifiers may be empty so
 	// clients must check for the presence of this message, not just
 	// for `qualifier.value` being non-empty.
-	Qualifier *wrappers.BytesValue `protobuf:"bytes,3,opt,name=qualifier" json:"qualifier,omitempty"`
+	Qualifier *wrappers.BytesValue `protobuf:"bytes,3,opt,name=qualifier,proto3" json:"qualifier,omitempty"`
 	// The cell's stored timestamp, which also uniquely identifies it
 	// within its column.  Values are always expressed in
 	// microseconds, but individual tables may set a coarser
@@ -190,11 +190,11 @@ type ReadRowsResponse_CellChunk struct {
 	// only allow values of `timestamp_micros` which are multiples of
 	// 1000.  Timestamps are only set in the first CellChunk per cell
 	// (for cells split into multiple chunks).
-	TimestampMicros int64 `protobuf:"varint,4,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
+	TimestampMicros int64 `protobuf:"varint,4,opt,name=timestamp_micros,json=timestampMicros,proto3" json:"timestamp_micros,omitempty"`
 	// Labels applied to the cell by a
 	// [RowFilter][google.bigtable.v2.RowFilter].  Labels are only set
 	// on the first CellChunk per cell.
-	Labels []string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty"`
+	Labels []string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"`
 	// The value stored in the cell.  Cell values can be split across
 	// multiple CellChunks.  In that case only the value field will be
 	// set in CellChunks after the first: the timestamp and labels
@@ -205,7 +205,7 @@ type ReadRowsResponse_CellChunk struct {
 	// not the final chunk of that cell, value_size will be set to the
 	// total length of the cell value.  The client can use this size
 	// to pre-allocate memory to hold the full cell value.
-	ValueSize int32 `protobuf:"varint,7,opt,name=value_size,json=valueSize" json:"value_size,omitempty"`
+	ValueSize int32 `protobuf:"varint,7,opt,name=value_size,json=valueSize,proto3" json:"value_size,omitempty"`
 	// Types that are valid to be assigned to RowStatus:
 	//	*ReadRowsResponse_CellChunk_ResetRow
 	//	*ReadRowsResponse_CellChunk_CommitRow
@@ -244,10 +244,10 @@ type isReadRowsResponse_CellChunk_RowStatus interface {
 }
 
 type ReadRowsResponse_CellChunk_ResetRow struct {
-	ResetRow bool `protobuf:"varint,8,opt,name=reset_row,json=resetRow,oneof"`
+	ResetRow bool `protobuf:"varint,8,opt,name=reset_row,json=resetRow,proto3,oneof"`
 }
 type ReadRowsResponse_CellChunk_CommitRow struct {
-	CommitRow bool `protobuf:"varint,9,opt,name=commit_row,json=commitRow,oneof"`
+	CommitRow bool `protobuf:"varint,9,opt,name=commit_row,json=commitRow,proto3,oneof"`
 }
 
 func (*ReadRowsResponse_CellChunk_ResetRow) isReadRowsResponse_CellChunk_RowStatus()  {}
@@ -400,10 +400,10 @@ type SampleRowKeysRequest struct {
 	// The unique name of the table from which to sample row keys.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId         string   `protobuf:"bytes,2,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId         string   `protobuf:"bytes,2,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -461,7 +461,7 @@ type SampleRowKeysResponse struct {
 	// `row_key`. Buffering the contents of all rows between two subsequent
 	// samples would require space roughly equal to the difference in their
 	// `offset_bytes` fields.
-	OffsetBytes          int64    `protobuf:"varint,2,opt,name=offset_bytes,json=offsetBytes" json:"offset_bytes,omitempty"`
+	OffsetBytes          int64    `protobuf:"varint,2,opt,name=offset_bytes,json=offsetBytes,proto3" json:"offset_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -510,16 +510,16 @@ type MutateRowRequest struct {
 	// The unique name of the table to which the mutation should be applied.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId string `protobuf:"bytes,4,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,4,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The key of the row to which the mutation should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// Changes to be atomically applied to the specified row. Entries are applied
 	// in order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry and at most 100000.
-	Mutations            []*Mutation `protobuf:"bytes,3,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,3,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -611,16 +611,16 @@ var xxx_messageInfo_MutateRowResponse proto.InternalMessageInfo
 // Request message for BigtableService.MutateRows.
 type MutateRowsRequest struct {
 	// The unique name of the table to which the mutations should be applied.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId string `protobuf:"bytes,3,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,3,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The row keys and corresponding mutations to be applied in bulk.
 	// Each entry is applied as an atomic mutation, but the entries may be
 	// applied in arbitrary order (even between entries for the same row).
 	// At least one entry must be specified, and in total the entries can
 	// contain at most 100000 mutations.
-	Entries              []*MutateRowsRequest_Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"`
+	Entries              []*MutateRowsRequest_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -678,7 +678,7 @@ type MutateRowsRequest_Entry struct {
 	// applied in order, meaning that earlier mutations can be masked by
 	// later ones.
 	// You must specify at least one mutation.
-	Mutations            []*Mutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,2,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -725,7 +725,7 @@ func (m *MutateRowsRequest_Entry) GetMutations() []*Mutation {
 // Response message for BigtableService.MutateRows.
 type MutateRowsResponse struct {
 	// One or more results for Entries from the batch request.
-	Entries              []*MutateRowsResponse_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
+	Entries              []*MutateRowsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -765,12 +765,12 @@ func (m *MutateRowsResponse) GetEntries() []*MutateRowsResponse_Entry {
 type MutateRowsResponse_Entry struct {
 	// The index into the original request's `entries` list of the Entry
 	// for which a result is being reported.
-	Index int64 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
+	Index int64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
 	// The result of the request Entry identified by `index`.
 	// Depending on how requests are batched during execution, it is possible
 	// for one Entry to fail due to an error with another Entry. In the event
 	// that this occurs, the same error will be reported for both entries.
-	Status               *status.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
+	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -820,29 +820,29 @@ type CheckAndMutateRowRequest struct {
 	// applied.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId string `protobuf:"bytes,7,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,7,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The key of the row to which the conditional mutation should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// The filter to be applied to the contents of the specified row. Depending
 	// on whether or not any results are yielded, either `true_mutations` or
 	// `false_mutations` will be executed. If unset, checks that the row contains
 	// any values at all.
-	PredicateFilter *RowFilter `protobuf:"bytes,6,opt,name=predicate_filter,json=predicateFilter" json:"predicate_filter,omitempty"`
+	PredicateFilter *RowFilter `protobuf:"bytes,6,opt,name=predicate_filter,json=predicateFilter,proto3" json:"predicate_filter,omitempty"`
 	// Changes to be atomically applied to the specified row if `predicate_filter`
 	// yields at least one cell when applied to `row_key`. Entries are applied in
 	// order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry if `false_mutations` is empty, and at most
 	// 100000.
-	TrueMutations []*Mutation `protobuf:"bytes,4,rep,name=true_mutations,json=trueMutations" json:"true_mutations,omitempty"`
+	TrueMutations []*Mutation `protobuf:"bytes,4,rep,name=true_mutations,json=trueMutations,proto3" json:"true_mutations,omitempty"`
 	// Changes to be atomically applied to the specified row if `predicate_filter`
 	// does not yield any cells when applied to `row_key`. Entries are applied in
 	// order, meaning that earlier mutations can be masked by later ones.
 	// Must contain at least one entry if `true_mutations` is empty, and at most
 	// 100000.
-	FalseMutations       []*Mutation `protobuf:"bytes,5,rep,name=false_mutations,json=falseMutations" json:"false_mutations,omitempty"`
+	FalseMutations       []*Mutation `protobuf:"bytes,5,rep,name=false_mutations,json=falseMutations,proto3" json:"false_mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -918,7 +918,7 @@ func (m *CheckAndMutateRowRequest) GetFalseMutations() []*Mutation {
 type CheckAndMutateRowResponse struct {
 	// Whether or not the request's `predicate_filter` yielded any results for
 	// the specified row.
-	PredicateMatched     bool     `protobuf:"varint,1,opt,name=predicate_matched,json=predicateMatched" json:"predicate_matched,omitempty"`
+	PredicateMatched     bool     `protobuf:"varint,1,opt,name=predicate_matched,json=predicateMatched,proto3" json:"predicate_matched,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -961,16 +961,16 @@ type ReadModifyWriteRowRequest struct {
 	// applied.
 	// Values are of the form
 	// `projects/<project>/instances/<instance>/tables/<table>`.
-	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// This value specifies routing for replication. If not specified, the
 	// "default" application profile will be used.
-	AppProfileId string `protobuf:"bytes,4,opt,name=app_profile_id,json=appProfileId" json:"app_profile_id,omitempty"`
+	AppProfileId string `protobuf:"bytes,4,opt,name=app_profile_id,json=appProfileId,proto3" json:"app_profile_id,omitempty"`
 	// The key of the row to which the read/modify/write rules should be applied.
 	RowKey []byte `protobuf:"bytes,2,opt,name=row_key,json=rowKey,proto3" json:"row_key,omitempty"`
 	// Rules specifying how the specified row's contents are to be transformed
 	// into writes. Entries are applied in order, meaning that earlier rules will
 	// affect the results of later ones.
-	Rules                []*ReadModifyWriteRule `protobuf:"bytes,3,rep,name=rules" json:"rules,omitempty"`
+	Rules                []*ReadModifyWriteRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -1031,7 +1031,7 @@ func (m *ReadModifyWriteRowRequest) GetRules() []*ReadModifyWriteRule {
 // Response message for Bigtable.ReadModifyWriteRow.
 type ReadModifyWriteRowResponse struct {
 	// A Row containing the new contents of all cells modified by the request.
-	Row                  *Row     `protobuf:"bytes,1,opt,name=row" json:"row,omitempty"`
+	Row                  *Row     `protobuf:"bytes,1,opt,name=row,proto3" json:"row,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1257,8 +1257,7 @@ func (c *bigtableClient) ReadModifyWriteRow(ctx context.Context, in *ReadModifyW
 	return out, nil
 }
 
-// Server API for Bigtable service
-
+// BigtableServer is the server API for Bigtable service.
 type BigtableServer interface {
 	// Streams back the contents of all requested rows in key order, optionally
 	// applying the same Reader filter to each. Depending on their size,
diff --git a/googleapis/bigtable/v2/data.pb.go b/googleapis/bigtable/v2/data.pb.go
index fab17ac44f7c184d2bf5d379c3cf2a425016be3a..3554517f570f3dada1cbd9f0b59810bf74eb26a2 100644
--- a/googleapis/bigtable/v2/data.pb.go
+++ b/googleapis/bigtable/v2/data.pb.go
@@ -27,7 +27,7 @@ type Row struct {
 	Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// May be empty, but only if the entire row is empty.
 	// The mutual ordering of column families is not specified.
-	Families             []*Family `protobuf:"bytes,2,rep,name=families" json:"families,omitempty"`
+	Families             []*Family `protobuf:"bytes,2,rep,name=families,proto3" json:"families,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -80,9 +80,9 @@ type Family struct {
 	// Must match `[-_.a-zA-Z0-9]+`, except that AggregatingRowProcessors may
 	// produce cells in a sentinel family with an empty name.
 	// Must be no greater than 64 characters in length.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Must not be empty. Sorted in order of increasing "qualifier".
-	Columns              []*Column `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"`
+	Columns              []*Column `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -136,7 +136,7 @@ type Column struct {
 	// length.
 	Qualifier []byte `protobuf:"bytes,1,opt,name=qualifier,proto3" json:"qualifier,omitempty"`
 	// Must not be empty. Sorted in order of decreasing "timestamp_micros".
-	Cells                []*Cell  `protobuf:"bytes,2,rep,name=cells" json:"cells,omitempty"`
+	Cells                []*Cell  `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -188,13 +188,13 @@ type Cell struct {
 	// a coarser granularity to further restrict the allowed values. For
 	// example, a table which specifies millisecond granularity will only allow
 	// values of `timestamp_micros` which are multiples of 1000.
-	TimestampMicros int64 `protobuf:"varint,1,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
+	TimestampMicros int64 `protobuf:"varint,1,opt,name=timestamp_micros,json=timestampMicros,proto3" json:"timestamp_micros,omitempty"`
 	// The value stored in the cell.
 	// May contain any byte string, including the empty string, up to 100MiB in
 	// length.
 	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Labels applied to the cell by a [RowFilter][google.bigtable.v2.RowFilter].
-	Labels               []string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty"`
+	Labels               []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -469,7 +469,7 @@ type RowSet struct {
 	// Single rows included in the set.
 	RowKeys [][]byte `protobuf:"bytes,1,rep,name=row_keys,json=rowKeys,proto3" json:"row_keys,omitempty"`
 	// Contiguous row ranges included in the set.
-	RowRanges            []*RowRange `protobuf:"bytes,2,rep,name=row_ranges,json=rowRanges" json:"row_ranges,omitempty"`
+	RowRanges            []*RowRange `protobuf:"bytes,2,rep,name=row_ranges,json=rowRanges,proto3" json:"row_ranges,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -519,7 +519,7 @@ func (m *RowSet) GetRowRanges() []*RowRange {
 // inclusive or exclusive.
 type ColumnRange struct {
 	// The name of the column family within which this range falls.
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The column qualifier at which to start the range (within `column_family`).
 	// If neither field is set, interpreted as the empty string, inclusive.
 	//
@@ -747,9 +747,9 @@ func _ColumnRange_OneofSizer(msg proto.Message) (n int) {
 // Specified a contiguous range of microsecond timestamps.
 type TimestampRange struct {
 	// Inclusive lower bound. If left empty, interpreted as 0.
-	StartTimestampMicros int64 `protobuf:"varint,1,opt,name=start_timestamp_micros,json=startTimestampMicros" json:"start_timestamp_micros,omitempty"`
+	StartTimestampMicros int64 `protobuf:"varint,1,opt,name=start_timestamp_micros,json=startTimestampMicros,proto3" json:"start_timestamp_micros,omitempty"`
 	// Exclusive upper bound. If left empty, interpreted as infinity.
-	EndTimestampMicros   int64    `protobuf:"varint,2,opt,name=end_timestamp_micros,json=endTimestampMicros" json:"end_timestamp_micros,omitempty"`
+	EndTimestampMicros   int64    `protobuf:"varint,2,opt,name=end_timestamp_micros,json=endTimestampMicros,proto3" json:"end_timestamp_micros,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1104,61 +1104,61 @@ type isRowFilter_Filter interface {
 }
 
 type RowFilter_Chain_ struct {
-	Chain *RowFilter_Chain `protobuf:"bytes,1,opt,name=chain,oneof"`
+	Chain *RowFilter_Chain `protobuf:"bytes,1,opt,name=chain,proto3,oneof"`
 }
 type RowFilter_Interleave_ struct {
-	Interleave *RowFilter_Interleave `protobuf:"bytes,2,opt,name=interleave,oneof"`
+	Interleave *RowFilter_Interleave `protobuf:"bytes,2,opt,name=interleave,proto3,oneof"`
 }
 type RowFilter_Condition_ struct {
-	Condition *RowFilter_Condition `protobuf:"bytes,3,opt,name=condition,oneof"`
+	Condition *RowFilter_Condition `protobuf:"bytes,3,opt,name=condition,proto3,oneof"`
 }
 type RowFilter_Sink struct {
-	Sink bool `protobuf:"varint,16,opt,name=sink,oneof"`
+	Sink bool `protobuf:"varint,16,opt,name=sink,proto3,oneof"`
 }
 type RowFilter_PassAllFilter struct {
-	PassAllFilter bool `protobuf:"varint,17,opt,name=pass_all_filter,json=passAllFilter,oneof"`
+	PassAllFilter bool `protobuf:"varint,17,opt,name=pass_all_filter,json=passAllFilter,proto3,oneof"`
 }
 type RowFilter_BlockAllFilter struct {
-	BlockAllFilter bool `protobuf:"varint,18,opt,name=block_all_filter,json=blockAllFilter,oneof"`
+	BlockAllFilter bool `protobuf:"varint,18,opt,name=block_all_filter,json=blockAllFilter,proto3,oneof"`
 }
 type RowFilter_RowKeyRegexFilter struct {
 	RowKeyRegexFilter []byte `protobuf:"bytes,4,opt,name=row_key_regex_filter,json=rowKeyRegexFilter,proto3,oneof"`
 }
 type RowFilter_RowSampleFilter struct {
-	RowSampleFilter float64 `protobuf:"fixed64,14,opt,name=row_sample_filter,json=rowSampleFilter,oneof"`
+	RowSampleFilter float64 `protobuf:"fixed64,14,opt,name=row_sample_filter,json=rowSampleFilter,proto3,oneof"`
 }
 type RowFilter_FamilyNameRegexFilter struct {
-	FamilyNameRegexFilter string `protobuf:"bytes,5,opt,name=family_name_regex_filter,json=familyNameRegexFilter,oneof"`
+	FamilyNameRegexFilter string `protobuf:"bytes,5,opt,name=family_name_regex_filter,json=familyNameRegexFilter,proto3,oneof"`
 }
 type RowFilter_ColumnQualifierRegexFilter struct {
 	ColumnQualifierRegexFilter []byte `protobuf:"bytes,6,opt,name=column_qualifier_regex_filter,json=columnQualifierRegexFilter,proto3,oneof"`
 }
 type RowFilter_ColumnRangeFilter struct {
-	ColumnRangeFilter *ColumnRange `protobuf:"bytes,7,opt,name=column_range_filter,json=columnRangeFilter,oneof"`
+	ColumnRangeFilter *ColumnRange `protobuf:"bytes,7,opt,name=column_range_filter,json=columnRangeFilter,proto3,oneof"`
 }
 type RowFilter_TimestampRangeFilter struct {
-	TimestampRangeFilter *TimestampRange `protobuf:"bytes,8,opt,name=timestamp_range_filter,json=timestampRangeFilter,oneof"`
+	TimestampRangeFilter *TimestampRange `protobuf:"bytes,8,opt,name=timestamp_range_filter,json=timestampRangeFilter,proto3,oneof"`
 }
 type RowFilter_ValueRegexFilter struct {
 	ValueRegexFilter []byte `protobuf:"bytes,9,opt,name=value_regex_filter,json=valueRegexFilter,proto3,oneof"`
 }
 type RowFilter_ValueRangeFilter struct {
-	ValueRangeFilter *ValueRange `protobuf:"bytes,15,opt,name=value_range_filter,json=valueRangeFilter,oneof"`
+	ValueRangeFilter *ValueRange `protobuf:"bytes,15,opt,name=value_range_filter,json=valueRangeFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerRowOffsetFilter struct {
-	CellsPerRowOffsetFilter int32 `protobuf:"varint,10,opt,name=cells_per_row_offset_filter,json=cellsPerRowOffsetFilter,oneof"`
+	CellsPerRowOffsetFilter int32 `protobuf:"varint,10,opt,name=cells_per_row_offset_filter,json=cellsPerRowOffsetFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerRowLimitFilter struct {
-	CellsPerRowLimitFilter int32 `protobuf:"varint,11,opt,name=cells_per_row_limit_filter,json=cellsPerRowLimitFilter,oneof"`
+	CellsPerRowLimitFilter int32 `protobuf:"varint,11,opt,name=cells_per_row_limit_filter,json=cellsPerRowLimitFilter,proto3,oneof"`
 }
 type RowFilter_CellsPerColumnLimitFilter struct {
-	CellsPerColumnLimitFilter int32 `protobuf:"varint,12,opt,name=cells_per_column_limit_filter,json=cellsPerColumnLimitFilter,oneof"`
+	CellsPerColumnLimitFilter int32 `protobuf:"varint,12,opt,name=cells_per_column_limit_filter,json=cellsPerColumnLimitFilter,proto3,oneof"`
 }
 type RowFilter_StripValueTransformer struct {
-	StripValueTransformer bool `protobuf:"varint,13,opt,name=strip_value_transformer,json=stripValueTransformer,oneof"`
+	StripValueTransformer bool `protobuf:"varint,13,opt,name=strip_value_transformer,json=stripValueTransformer,proto3,oneof"`
 }
 type RowFilter_ApplyLabelTransformer struct {
-	ApplyLabelTransformer string `protobuf:"bytes,19,opt,name=apply_label_transformer,json=applyLabelTransformer,oneof"`
+	ApplyLabelTransformer string `protobuf:"bytes,19,opt,name=apply_label_transformer,json=applyLabelTransformer,proto3,oneof"`
 }
 
 func (*RowFilter_Chain_) isRowFilter_Filter()                     {}
@@ -1679,7 +1679,7 @@ type RowFilter_Chain struct {
 	// The elements of "filters" are chained together to process the input row:
 	// in row -> f(0) -> intermediate row -> f(1) -> ... -> f(N) -> out row
 	// The full chain is executed atomically.
-	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1744,7 +1744,7 @@ type RowFilter_Interleave struct {
 	//     6:                      far,blah,5,x   // identical to #5
 	//
 	// All interleaved filters are executed atomically.
-	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*RowFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1791,14 +1791,14 @@ func (m *RowFilter_Interleave) GetFilters() []*RowFilter {
 type RowFilter_Condition struct {
 	// If `predicate_filter` outputs any cells, then `true_filter` will be
 	// evaluated on the input row. Otherwise, `false_filter` will be evaluated.
-	PredicateFilter *RowFilter `protobuf:"bytes,1,opt,name=predicate_filter,json=predicateFilter" json:"predicate_filter,omitempty"`
+	PredicateFilter *RowFilter `protobuf:"bytes,1,opt,name=predicate_filter,json=predicateFilter,proto3" json:"predicate_filter,omitempty"`
 	// The filter to apply to the input row if `predicate_filter` returns any
 	// results. If not provided, no results will be returned in the true case.
-	TrueFilter *RowFilter `protobuf:"bytes,2,opt,name=true_filter,json=trueFilter" json:"true_filter,omitempty"`
+	TrueFilter *RowFilter `protobuf:"bytes,2,opt,name=true_filter,json=trueFilter,proto3" json:"true_filter,omitempty"`
 	// The filter to apply to the input row if `predicate_filter` does not
 	// return any results. If not provided, no results will be returned in the
 	// false case.
-	FalseFilter          *RowFilter `protobuf:"bytes,3,opt,name=false_filter,json=falseFilter" json:"false_filter,omitempty"`
+	FalseFilter          *RowFilter `protobuf:"bytes,3,opt,name=false_filter,json=falseFilter,proto3" json:"false_filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1893,16 +1893,16 @@ type isMutation_Mutation interface {
 }
 
 type Mutation_SetCell_ struct {
-	SetCell *Mutation_SetCell `protobuf:"bytes,1,opt,name=set_cell,json=setCell,oneof"`
+	SetCell *Mutation_SetCell `protobuf:"bytes,1,opt,name=set_cell,json=setCell,proto3,oneof"`
 }
 type Mutation_DeleteFromColumn_ struct {
-	DeleteFromColumn *Mutation_DeleteFromColumn `protobuf:"bytes,2,opt,name=delete_from_column,json=deleteFromColumn,oneof"`
+	DeleteFromColumn *Mutation_DeleteFromColumn `protobuf:"bytes,2,opt,name=delete_from_column,json=deleteFromColumn,proto3,oneof"`
 }
 type Mutation_DeleteFromFamily_ struct {
-	DeleteFromFamily *Mutation_DeleteFromFamily `protobuf:"bytes,3,opt,name=delete_from_family,json=deleteFromFamily,oneof"`
+	DeleteFromFamily *Mutation_DeleteFromFamily `protobuf:"bytes,3,opt,name=delete_from_family,json=deleteFromFamily,proto3,oneof"`
 }
 type Mutation_DeleteFromRow_ struct {
-	DeleteFromRow *Mutation_DeleteFromRow `protobuf:"bytes,4,opt,name=delete_from_row,json=deleteFromRow,oneof"`
+	DeleteFromRow *Mutation_DeleteFromRow `protobuf:"bytes,4,opt,name=delete_from_row,json=deleteFromRow,proto3,oneof"`
 }
 
 func (*Mutation_SetCell_) isMutation_Mutation()          {}
@@ -2061,7 +2061,7 @@ func _Mutation_OneofSizer(msg proto.Message) (n int) {
 type Mutation_SetCell struct {
 	// The name of the family into which new data should be written.
 	// Must match `[-_.a-zA-Z0-9]+`
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column into which new data should be written.
 	// Can be any byte string, including the empty string.
 	ColumnQualifier []byte `protobuf:"bytes,2,opt,name=column_qualifier,json=columnQualifier,proto3" json:"column_qualifier,omitempty"`
@@ -2070,7 +2070,7 @@ type Mutation_SetCell struct {
 	// Otherwise, the client should set this value itself, noting that the
 	// default value is a timestamp of zero if the field is left unspecified.
 	// Values must match the granularity of the table (e.g. micros, millis).
-	TimestampMicros int64 `protobuf:"varint,3,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
+	TimestampMicros int64 `protobuf:"varint,3,opt,name=timestamp_micros,json=timestampMicros,proto3" json:"timestamp_micros,omitempty"`
 	// The value to be written into the specified cell.
 	Value                []byte   `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -2135,12 +2135,12 @@ func (m *Mutation_SetCell) GetValue() []byte {
 type Mutation_DeleteFromColumn struct {
 	// The name of the family from which cells should be deleted.
 	// Must match `[-_.a-zA-Z0-9]+`
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column from which cells should be deleted.
 	// Can be any byte string, including the empty string.
 	ColumnQualifier []byte `protobuf:"bytes,2,opt,name=column_qualifier,json=columnQualifier,proto3" json:"column_qualifier,omitempty"`
 	// The range of timestamps within which cells should be deleted.
-	TimeRange            *TimestampRange `protobuf:"bytes,3,opt,name=time_range,json=timeRange" json:"time_range,omitempty"`
+	TimeRange            *TimestampRange `protobuf:"bytes,3,opt,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -2195,7 +2195,7 @@ func (m *Mutation_DeleteFromColumn) GetTimeRange() *TimestampRange {
 type Mutation_DeleteFromFamily struct {
 	// The name of the family from which cells should be deleted.
 	// Must match `[-_.a-zA-Z0-9]+`
-	FamilyName           string   `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName           string   `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2268,7 +2268,7 @@ var xxx_messageInfo_Mutation_DeleteFromRow proto.InternalMessageInfo
 type ReadModifyWriteRule struct {
 	// The name of the family to which the read/modify/write should be applied.
 	// Must match `[-_.a-zA-Z0-9]+`
-	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
+	FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
 	// The qualifier of the column to which the read/modify/write should be
 	// applied.
 	// Can be any byte string, including the empty string.
@@ -2317,7 +2317,7 @@ type ReadModifyWriteRule_AppendValue struct {
 	AppendValue []byte `protobuf:"bytes,3,opt,name=append_value,json=appendValue,proto3,oneof"`
 }
 type ReadModifyWriteRule_IncrementAmount struct {
-	IncrementAmount int64 `protobuf:"varint,4,opt,name=increment_amount,json=incrementAmount,oneof"`
+	IncrementAmount int64 `protobuf:"varint,4,opt,name=increment_amount,json=incrementAmount,proto3,oneof"`
 }
 
 func (*ReadModifyWriteRule_AppendValue) isReadModifyWriteRule_Rule()     {}
diff --git a/googleapis/bytestream/bytestream.pb.go b/googleapis/bytestream/bytestream.pb.go
index 026a67cae0a9c9ccd3059b8cb574f65fe0840531..acf2c230f4a758aba23ed699a42fdb6f7327594b 100644
--- a/googleapis/bytestream/bytestream.pb.go
+++ b/googleapis/bytestream/bytestream.pb.go
@@ -28,13 +28,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Request object for ByteStream.Read.
 type ReadRequest struct {
 	// The name of the resource to read.
-	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName" json:"resource_name,omitempty"`
+	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	// The offset for the first byte to return in the read, relative to the start
 	// of the resource.
 	//
 	// A `read_offset` that is negative or greater than the size of the resource
 	// will cause an `OUT_OF_RANGE` error.
-	ReadOffset int64 `protobuf:"varint,2,opt,name=read_offset,json=readOffset" json:"read_offset,omitempty"`
+	ReadOffset int64 `protobuf:"varint,2,opt,name=read_offset,json=readOffset,proto3" json:"read_offset,omitempty"`
 	// The maximum number of `data` bytes the server is allowed to return in the
 	// sum of all `ReadResponse` messages. A `read_limit` of zero indicates that
 	// there is no limit, and a negative `read_limit` will cause an error.
@@ -42,7 +42,7 @@ type ReadRequest struct {
 	// If the stream returns fewer bytes than allowed by the `read_limit` and no
 	// error occurred, the stream includes all data from the `read_offset` to the
 	// end of the resource.
-	ReadLimit            int64    `protobuf:"varint,3,opt,name=read_limit,json=readLimit" json:"read_limit,omitempty"`
+	ReadLimit            int64    `protobuf:"varint,3,opt,name=read_limit,json=readLimit,proto3" json:"read_limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -141,7 +141,7 @@ type WriteRequest struct {
 	// The name of the resource to write. This **must** be set on the first
 	// `WriteRequest` of each `Write()` action. If it is set on subsequent calls,
 	// it **must** match the value of the first request.
-	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName" json:"resource_name,omitempty"`
+	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	// The offset from the beginning of the resource at which the data should be
 	// written. It is required on all `WriteRequest`s.
 	//
@@ -154,11 +154,11 @@ type WriteRequest struct {
 	// sent previously on this stream.
 	//
 	// An incorrect value will cause an error.
-	WriteOffset int64 `protobuf:"varint,2,opt,name=write_offset,json=writeOffset" json:"write_offset,omitempty"`
+	WriteOffset int64 `protobuf:"varint,2,opt,name=write_offset,json=writeOffset,proto3" json:"write_offset,omitempty"`
 	// If `true`, this indicates that the write is complete. Sending any
 	// `WriteRequest`s subsequent to one in which `finish_write` is `true` will
 	// cause an error.
-	FinishWrite bool `protobuf:"varint,3,opt,name=finish_write,json=finishWrite" json:"finish_write,omitempty"`
+	FinishWrite bool `protobuf:"varint,3,opt,name=finish_write,json=finishWrite,proto3" json:"finish_write,omitempty"`
 	// A portion of the data for the resource. The client **may** leave `data`
 	// empty for any given `WriteRequest`. This enables the client to inform the
 	// service that the request is still live while it is running an operation to
@@ -224,7 +224,7 @@ func (m *WriteRequest) GetData() []byte {
 // Response object for ByteStream.Write.
 type WriteResponse struct {
 	// The number of bytes that have been processed for the given resource.
-	CommittedSize        int64    `protobuf:"varint,1,opt,name=committed_size,json=committedSize" json:"committed_size,omitempty"`
+	CommittedSize        int64    `protobuf:"varint,1,opt,name=committed_size,json=committedSize,proto3" json:"committed_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -264,7 +264,7 @@ func (m *WriteResponse) GetCommittedSize() int64 {
 // Request object for ByteStream.QueryWriteStatus.
 type QueryWriteStatusRequest struct {
 	// The name of the resource whose write status is being requested.
-	ResourceName         string   `protobuf:"bytes,1,opt,name=resource_name,json=resourceName" json:"resource_name,omitempty"`
+	ResourceName         string   `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -304,10 +304,10 @@ func (m *QueryWriteStatusRequest) GetResourceName() string {
 // Response object for ByteStream.QueryWriteStatus.
 type QueryWriteStatusResponse struct {
 	// The number of bytes that have been processed for the given resource.
-	CommittedSize int64 `protobuf:"varint,1,opt,name=committed_size,json=committedSize" json:"committed_size,omitempty"`
+	CommittedSize int64 `protobuf:"varint,1,opt,name=committed_size,json=committedSize,proto3" json:"committed_size,omitempty"`
 	// `complete` is `true` only if the client has sent a `WriteRequest` with
 	// `finish_write` set to true, and the server has processed that request.
-	Complete             bool     `protobuf:"varint,2,opt,name=complete" json:"complete,omitempty"`
+	Complete             bool     `protobuf:"varint,2,opt,name=complete,proto3" json:"complete,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -499,8 +499,7 @@ func (c *byteStreamClient) QueryWriteStatus(ctx context.Context, in *QueryWriteS
 	return out, nil
 }
 
-// Server API for ByteStream service
-
+// ByteStreamServer is the server API for ByteStream service.
 type ByteStreamServer interface {
 	// `Read()` is used to retrieve the contents of a resource as a sequence
 	// of bytes. The bytes are returned in a sequence of responses, and the
diff --git a/googleapis/cloud/audit/audit_log.pb.go b/googleapis/cloud/audit/audit_log.pb.go
index 8b4fd262457f4ed9bd331327292b73f5ffd40055..9317dd53341f2738816b33fc9865a1e02372db01 100644
--- a/googleapis/cloud/audit/audit_log.pb.go
+++ b/googleapis/cloud/audit/audit_log.pb.go
@@ -26,51 +26,51 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type AuditLog struct {
 	// The name of the API service performing the operation. For example,
 	// `"datastore.googleapis.com"`.
-	ServiceName string `protobuf:"bytes,7,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+	ServiceName string `protobuf:"bytes,7,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
 	// The name of the service method or operation.
 	// For API calls, this should be the name of the API method.
 	// For example,
 	//
 	//     "google.datastore.v1.Datastore.RunQuery"
 	//     "google.logging.v1.LoggingService.DeleteLog"
-	MethodName string `protobuf:"bytes,8,opt,name=method_name,json=methodName" json:"method_name,omitempty"`
+	MethodName string `protobuf:"bytes,8,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"`
 	// The resource or collection that is the target of the operation.
 	// The name is a scheme-less URI, not including the API service name.
 	// For example:
 	//
 	//     "shelves/SHELF_ID/books"
 	//     "shelves/SHELF_ID/books/BOOK_ID"
-	ResourceName string `protobuf:"bytes,11,opt,name=resource_name,json=resourceName" json:"resource_name,omitempty"`
+	ResourceName string `protobuf:"bytes,11,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	// The number of items returned from a List or Query API method,
 	// if applicable.
-	NumResponseItems int64 `protobuf:"varint,12,opt,name=num_response_items,json=numResponseItems" json:"num_response_items,omitempty"`
+	NumResponseItems int64 `protobuf:"varint,12,opt,name=num_response_items,json=numResponseItems,proto3" json:"num_response_items,omitempty"`
 	// The status of the overall operation.
-	Status *status.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
 	// Authentication information.
-	AuthenticationInfo *AuthenticationInfo `protobuf:"bytes,3,opt,name=authentication_info,json=authenticationInfo" json:"authentication_info,omitempty"`
+	AuthenticationInfo *AuthenticationInfo `protobuf:"bytes,3,opt,name=authentication_info,json=authenticationInfo,proto3" json:"authentication_info,omitempty"`
 	// Authorization information. If there are multiple
 	// resources or permissions involved, then there is
 	// one AuthorizationInfo element for each {resource, permission} tuple.
-	AuthorizationInfo []*AuthorizationInfo `protobuf:"bytes,9,rep,name=authorization_info,json=authorizationInfo" json:"authorization_info,omitempty"`
+	AuthorizationInfo []*AuthorizationInfo `protobuf:"bytes,9,rep,name=authorization_info,json=authorizationInfo,proto3" json:"authorization_info,omitempty"`
 	// Metadata about the operation.
-	RequestMetadata *RequestMetadata `protobuf:"bytes,4,opt,name=request_metadata,json=requestMetadata" json:"request_metadata,omitempty"`
+	RequestMetadata *RequestMetadata `protobuf:"bytes,4,opt,name=request_metadata,json=requestMetadata,proto3" json:"request_metadata,omitempty"`
 	// The operation request. This may not include all request parameters,
 	// such as those that are too large, privacy-sensitive, or duplicated
 	// elsewhere in the log record.
 	// It should never include user-generated data, such as file contents.
 	// When the JSON object represented here has a proto equivalent, the proto
 	// name will be indicated in the `@type` property.
-	Request *_struct.Struct `protobuf:"bytes,16,opt,name=request" json:"request,omitempty"`
+	Request *_struct.Struct `protobuf:"bytes,16,opt,name=request,proto3" json:"request,omitempty"`
 	// The operation response. This may not include all response elements,
 	// such as those that are too large, privacy-sensitive, or duplicated
 	// elsewhere in the log record.
 	// It should never include user-generated data, such as file contents.
 	// When the JSON object represented here has a proto equivalent, the proto
 	// name will be indicated in the `@type` property.
-	Response *_struct.Struct `protobuf:"bytes,17,opt,name=response" json:"response,omitempty"`
+	Response *_struct.Struct `protobuf:"bytes,17,opt,name=response,proto3" json:"response,omitempty"`
 	// Other service-specific data about the request, response, and other
 	// activities.
-	ServiceData          *any.Any `protobuf:"bytes,15,opt,name=service_data,json=serviceData" json:"service_data,omitempty"`
+	ServiceData          *any.Any `protobuf:"bytes,15,opt,name=service_data,json=serviceData,proto3" json:"service_data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -180,7 +180,7 @@ func (m *AuditLog) GetServiceData() *any.Any {
 // Authentication information for the operation.
 type AuthenticationInfo struct {
 	// The email address of the authenticated user making the request.
-	PrincipalEmail       string   `protobuf:"bytes,1,opt,name=principal_email,json=principalEmail" json:"principal_email,omitempty"`
+	PrincipalEmail       string   `protobuf:"bytes,1,opt,name=principal_email,json=principalEmail,proto3" json:"principal_email,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -222,12 +222,12 @@ type AuthorizationInfo struct {
 	// The resource being accessed, as a REST-style string. For example:
 	//
 	//     bigquery.googlapis.com/projects/PROJECTID/datasets/DATASETID
-	Resource string `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	// The required IAM permission.
-	Permission string `protobuf:"bytes,2,opt,name=permission" json:"permission,omitempty"`
+	Permission string `protobuf:"bytes,2,opt,name=permission,proto3" json:"permission,omitempty"`
 	// Whether or not authorization for `resource` and `permission`
 	// was granted.
-	Granted              bool     `protobuf:"varint,3,opt,name=granted" json:"granted,omitempty"`
+	Granted              bool     `protobuf:"varint,3,opt,name=granted,proto3" json:"granted,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -281,7 +281,7 @@ func (m *AuthorizationInfo) GetGranted() bool {
 // Metadata about the request.
 type RequestMetadata struct {
 	// The IP address of the caller.
-	CallerIp string `protobuf:"bytes,1,opt,name=caller_ip,json=callerIp" json:"caller_ip,omitempty"`
+	CallerIp string `protobuf:"bytes,1,opt,name=caller_ip,json=callerIp,proto3" json:"caller_ip,omitempty"`
 	// The user agent of the caller.
 	// This information is not authenticated and should be treated accordingly.
 	// For example:
@@ -292,7 +292,7 @@ type RequestMetadata struct {
 	//     The request was made by the Google Cloud SDK CLI (gcloud).
 	// +   `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`:
 	//     The request was made from the `my-project` App Engine app.
-	CallerSuppliedUserAgent string   `protobuf:"bytes,2,opt,name=caller_supplied_user_agent,json=callerSuppliedUserAgent" json:"caller_supplied_user_agent,omitempty"`
+	CallerSuppliedUserAgent string   `protobuf:"bytes,2,opt,name=caller_supplied_user_agent,json=callerSuppliedUserAgent,proto3" json:"caller_supplied_user_agent,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
diff --git a/googleapis/cloud/bigquery/datatransfer/v1/datatransfer.pb.go b/googleapis/cloud/bigquery/datatransfer/v1/datatransfer.pb.go
index 35cb1406932ac6808ae70f746e21cfcdbf08574e..385eecf583dcf4725e546752b16b1cd3d83d0ad3 100644
--- a/googleapis/cloud/bigquery/datatransfer/v1/datatransfer.pb.go
+++ b/googleapis/cloud/bigquery/datatransfer/v1/datatransfer.pb.go
@@ -176,37 +176,37 @@ func (ListTransferRunsRequest_RunAttempt) EnumDescriptor() ([]byte, []int) {
 // or custom data source specific forms.
 type DataSourceParameter struct {
 	// Parameter identifier.
-	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
+	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId,proto3" json:"param_id,omitempty"`
 	// Parameter display name in the user interface.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Parameter description.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Parameter type.
-	Type DataSourceParameter_Type `protobuf:"varint,4,opt,name=type,enum=google.cloud.bigquery.datatransfer.v1.DataSourceParameter_Type" json:"type,omitempty"`
+	Type DataSourceParameter_Type `protobuf:"varint,4,opt,name=type,proto3,enum=google.cloud.bigquery.datatransfer.v1.DataSourceParameter_Type" json:"type,omitempty"`
 	// Is parameter required.
-	Required bool `protobuf:"varint,5,opt,name=required" json:"required,omitempty"`
+	Required bool `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty"`
 	// Can parameter have multiple values.
-	Repeated bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"`
+	Repeated bool `protobuf:"varint,6,opt,name=repeated,proto3" json:"repeated,omitempty"`
 	// Regular expression which can be used for parameter validation.
-	ValidationRegex string `protobuf:"bytes,7,opt,name=validation_regex,json=validationRegex" json:"validation_regex,omitempty"`
+	ValidationRegex string `protobuf:"bytes,7,opt,name=validation_regex,json=validationRegex,proto3" json:"validation_regex,omitempty"`
 	// All possible values for the parameter.
-	AllowedValues []string `protobuf:"bytes,8,rep,name=allowed_values,json=allowedValues" json:"allowed_values,omitempty"`
+	AllowedValues []string `protobuf:"bytes,8,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"`
 	// For integer and double values specifies minimum allowed value.
-	MinValue *wrappers.DoubleValue `protobuf:"bytes,9,opt,name=min_value,json=minValue" json:"min_value,omitempty"`
+	MinValue *wrappers.DoubleValue `protobuf:"bytes,9,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
 	// For integer and double values specifies maxminum allowed value.
-	MaxValue *wrappers.DoubleValue `protobuf:"bytes,10,opt,name=max_value,json=maxValue" json:"max_value,omitempty"`
+	MaxValue *wrappers.DoubleValue `protobuf:"bytes,10,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
 	// When parameter is a record, describes child fields.
-	Fields []*DataSourceParameter `protobuf:"bytes,11,rep,name=fields" json:"fields,omitempty"`
+	Fields []*DataSourceParameter `protobuf:"bytes,11,rep,name=fields,proto3" json:"fields,omitempty"`
 	// Description of the requirements for this field, in case the user input does
 	// not fulfill the regex pattern or min/max values.
-	ValidationDescription string `protobuf:"bytes,12,opt,name=validation_description,json=validationDescription" json:"validation_description,omitempty"`
+	ValidationDescription string `protobuf:"bytes,12,opt,name=validation_description,json=validationDescription,proto3" json:"validation_description,omitempty"`
 	// URL to a help document to further explain the naming requirements.
-	ValidationHelpUrl string `protobuf:"bytes,13,opt,name=validation_help_url,json=validationHelpUrl" json:"validation_help_url,omitempty"`
+	ValidationHelpUrl string `protobuf:"bytes,13,opt,name=validation_help_url,json=validationHelpUrl,proto3" json:"validation_help_url,omitempty"`
 	// Cannot be changed after initial creation.
-	Immutable bool `protobuf:"varint,14,opt,name=immutable" json:"immutable,omitempty"`
+	Immutable bool `protobuf:"varint,14,opt,name=immutable,proto3" json:"immutable,omitempty"`
 	// If set to true, schema should be taken from the parent with the same
 	// parameter_id. Only applicable when parameter type is RECORD.
-	Recurse              bool     `protobuf:"varint,15,opt,name=recurse" json:"recurse,omitempty"`
+	Recurse              bool     `protobuf:"varint,15,opt,name=recurse,proto3" json:"recurse,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -345,58 +345,58 @@ func (m *DataSourceParameter) GetRecurse() bool {
 // render UI and request proper OAuth tokens.
 type DataSource struct {
 	// Output only. Data source resource name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Data source id.
-	DataSourceId string `protobuf:"bytes,2,opt,name=data_source_id,json=dataSourceId" json:"data_source_id,omitempty"`
+	DataSourceId string `protobuf:"bytes,2,opt,name=data_source_id,json=dataSourceId,proto3" json:"data_source_id,omitempty"`
 	// User friendly data source name.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// User friendly data source description string.
-	Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 	// Data source client id which should be used to receive refresh token.
 	// When not supplied, no offline credentials are populated for data transfer.
-	ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
+	ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
 	// 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
-	Scopes []string `protobuf:"bytes,6,rep,name=scopes" json:"scopes,omitempty"`
+	Scopes []string `protobuf:"bytes,6,rep,name=scopes,proto3" json:"scopes,omitempty"`
 	// Deprecated. This field has no effect.
-	TransferType TransferType `protobuf:"varint,7,opt,name=transfer_type,json=transferType,enum=google.cloud.bigquery.datatransfer.v1.TransferType" json:"transfer_type,omitempty"`
+	TransferType TransferType `protobuf:"varint,7,opt,name=transfer_type,json=transferType,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferType" json:"transfer_type,omitempty"`
 	// Indicates whether the data source supports multiple transfers
 	// to different BigQuery targets.
-	SupportsMultipleTransfers bool `protobuf:"varint,8,opt,name=supports_multiple_transfers,json=supportsMultipleTransfers" json:"supports_multiple_transfers,omitempty"`
+	SupportsMultipleTransfers bool `protobuf:"varint,8,opt,name=supports_multiple_transfers,json=supportsMultipleTransfers,proto3" json:"supports_multiple_transfers,omitempty"`
 	// The number of seconds to wait for an update from the data source
 	// before BigQuery marks the transfer as failed.
-	UpdateDeadlineSeconds int32 `protobuf:"varint,9,opt,name=update_deadline_seconds,json=updateDeadlineSeconds" json:"update_deadline_seconds,omitempty"`
+	UpdateDeadlineSeconds int32 `protobuf:"varint,9,opt,name=update_deadline_seconds,json=updateDeadlineSeconds,proto3" json:"update_deadline_seconds,omitempty"`
 	// 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`.
-	DefaultSchedule string `protobuf:"bytes,10,opt,name=default_schedule,json=defaultSchedule" json:"default_schedule,omitempty"`
+	DefaultSchedule string `protobuf:"bytes,10,opt,name=default_schedule,json=defaultSchedule,proto3" json:"default_schedule,omitempty"`
 	// 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.
-	SupportsCustomSchedule bool `protobuf:"varint,11,opt,name=supports_custom_schedule,json=supportsCustomSchedule" json:"supports_custom_schedule,omitempty"`
+	SupportsCustomSchedule bool `protobuf:"varint,11,opt,name=supports_custom_schedule,json=supportsCustomSchedule,proto3" json:"supports_custom_schedule,omitempty"`
 	// Data source parameters.
-	Parameters []*DataSourceParameter `protobuf:"bytes,12,rep,name=parameters" json:"parameters,omitempty"`
+	Parameters []*DataSourceParameter `protobuf:"bytes,12,rep,name=parameters,proto3" json:"parameters,omitempty"`
 	// Url for the help document for this data source.
-	HelpUrl string `protobuf:"bytes,13,opt,name=help_url,json=helpUrl" json:"help_url,omitempty"`
+	HelpUrl string `protobuf:"bytes,13,opt,name=help_url,json=helpUrl,proto3" json:"help_url,omitempty"`
 	// Indicates the type of authorization.
-	AuthorizationType DataSource_AuthorizationType `protobuf:"varint,14,opt,name=authorization_type,json=authorizationType,enum=google.cloud.bigquery.datatransfer.v1.DataSource_AuthorizationType" json:"authorization_type,omitempty"`
+	AuthorizationType DataSource_AuthorizationType `protobuf:"varint,14,opt,name=authorization_type,json=authorizationType,proto3,enum=google.cloud.bigquery.datatransfer.v1.DataSource_AuthorizationType" json:"authorization_type,omitempty"`
 	// 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.
-	DataRefreshType DataSource_DataRefreshType `protobuf:"varint,15,opt,name=data_refresh_type,json=dataRefreshType,enum=google.cloud.bigquery.datatransfer.v1.DataSource_DataRefreshType" json:"data_refresh_type,omitempty"`
+	DataRefreshType DataSource_DataRefreshType `protobuf:"varint,15,opt,name=data_refresh_type,json=dataRefreshType,proto3,enum=google.cloud.bigquery.datatransfer.v1.DataSource_DataRefreshType" json:"data_refresh_type,omitempty"`
 	// Default data refresh window on days.
 	// Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.
-	DefaultDataRefreshWindowDays int32 `protobuf:"varint,16,opt,name=default_data_refresh_window_days,json=defaultDataRefreshWindowDays" json:"default_data_refresh_window_days,omitempty"`
+	DefaultDataRefreshWindowDays int32 `protobuf:"varint,16,opt,name=default_data_refresh_window_days,json=defaultDataRefreshWindowDays,proto3" json:"default_data_refresh_window_days,omitempty"`
 	// Disables backfilling and manual run scheduling
 	// for the data source.
-	ManualRunsDisabled bool `protobuf:"varint,17,opt,name=manual_runs_disabled,json=manualRunsDisabled" json:"manual_runs_disabled,omitempty"`
+	ManualRunsDisabled bool `protobuf:"varint,17,opt,name=manual_runs_disabled,json=manualRunsDisabled,proto3" json:"manual_runs_disabled,omitempty"`
 	// The minimum interval for scheduler to schedule runs.
-	MinimumScheduleInterval *duration.Duration `protobuf:"bytes,18,opt,name=minimum_schedule_interval,json=minimumScheduleInterval" json:"minimum_schedule_interval,omitempty"`
+	MinimumScheduleInterval *duration.Duration `protobuf:"bytes,18,opt,name=minimum_schedule_interval,json=minimumScheduleInterval,proto3" json:"minimum_schedule_interval,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}           `json:"-"`
 	XXX_unrecognized        []byte             `json:"-"`
 	XXX_sizecache           int32              `json:"-"`
@@ -556,7 +556,7 @@ func (m *DataSource) GetMinimumScheduleInterval() *duration.Duration {
 type GetDataSourceRequest struct {
 	// The field will contain name of the resource requested, for example:
 	// `projects/{project_id}/dataSources/{data_source_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -597,15 +597,15 @@ func (m *GetDataSourceRequest) GetName() string {
 type ListDataSourcesRequest struct {
 	// The BigQuery project id for which data sources should be returned.
 	// Must be in the form: `projects/{project_id}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Page size. The default page size is the maximum value of 1000 results.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -659,12 +659,12 @@ func (m *ListDataSourcesRequest) GetPageSize() int32 {
 // Returns list of supported data sources and their metadata.
 type ListDataSourcesResponse struct {
 	// List of supported data sources and their transfer settings.
-	DataSources []*DataSource `protobuf:"bytes,1,rep,name=data_sources,json=dataSources" json:"data_sources,omitempty"`
+	DataSources []*DataSource `protobuf:"bytes,1,rep,name=data_sources,json=dataSources,proto3" json:"data_sources,omitempty"`
 	// Output only. 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -719,9 +719,9 @@ type CreateTransferConfigRequest struct {
 	// Must be in the format /projects/{project_id}/locations/{location_id}
 	// If specified location and location of the destination bigquery dataset
 	// do not match - the request will fail.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Data transfer configuration to create.
-	TransferConfig *TransferConfig `protobuf:"bytes,2,opt,name=transfer_config,json=transferConfig" json:"transfer_config,omitempty"`
+	TransferConfig *TransferConfig `protobuf:"bytes,2,opt,name=transfer_config,json=transferConfig,proto3" json:"transfer_config,omitempty"`
 	// Optional OAuth2 authorization code to use with this transfer configuration.
 	// This is required if new credentials are needed, as indicated by
 	// `CheckValidCreds`.
@@ -738,7 +738,7 @@ type CreateTransferConfigRequest struct {
 	//   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.
-	AuthorizationCode    string   `protobuf:"bytes,3,opt,name=authorization_code,json=authorizationCode" json:"authorization_code,omitempty"`
+	AuthorizationCode    string   `protobuf:"bytes,3,opt,name=authorization_code,json=authorizationCode,proto3" json:"authorization_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -793,7 +793,7 @@ func (m *CreateTransferConfigRequest) GetAuthorizationCode() string {
 // transfer configuration, an authorization code needs to be provided.
 type UpdateTransferConfigRequest struct {
 	// Data transfer configuration to create.
-	TransferConfig *TransferConfig `protobuf:"bytes,1,opt,name=transfer_config,json=transferConfig" json:"transfer_config,omitempty"`
+	TransferConfig *TransferConfig `protobuf:"bytes,1,opt,name=transfer_config,json=transferConfig,proto3" json:"transfer_config,omitempty"`
 	// Optional OAuth2 authorization code to use with this transfer configuration.
 	// If it is provided, the transfer configuration will be associated with the
 	// authorizing user.
@@ -810,9 +810,9 @@ type UpdateTransferConfigRequest struct {
 	//   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.
-	AuthorizationCode string `protobuf:"bytes,3,opt,name=authorization_code,json=authorizationCode" json:"authorization_code,omitempty"`
+	AuthorizationCode string `protobuf:"bytes,3,opt,name=authorization_code,json=authorizationCode,proto3" json:"authorization_code,omitempty"`
 	// Required list of fields to be updated in this request.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -867,7 +867,7 @@ func (m *UpdateTransferConfigRequest) GetUpdateMask() *field_mask.FieldMask {
 type GetTransferConfigRequest struct {
 	// The field will contain name of the resource requested, for example:
 	// `projects/{project_id}/transferConfigs/{config_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -909,7 +909,7 @@ func (m *GetTransferConfigRequest) GetName() string {
 type DeleteTransferConfigRequest struct {
 	// The field will contain name of the resource requested, for example:
 	// `projects/{project_id}/transferConfigs/{config_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -950,7 +950,7 @@ func (m *DeleteTransferConfigRequest) GetName() string {
 type GetTransferRunRequest struct {
 	// The field will contain name of the resource requested, for example:
 	// `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -991,7 +991,7 @@ func (m *GetTransferRunRequest) GetName() string {
 type DeleteTransferRunRequest struct {
 	// The field will contain name of the resource requested, for example:
 	// `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1032,17 +1032,17 @@ func (m *DeleteTransferRunRequest) GetName() string {
 type ListTransferConfigsRequest struct {
 	// The BigQuery project id for which data sources
 	// should be returned: `projects/{project_id}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// When specified, only configurations of requested data sources are returned.
-	DataSourceIds []string `protobuf:"bytes,2,rep,name=data_source_ids,json=dataSourceIds" json:"data_source_ids,omitempty"`
+	DataSourceIds []string `protobuf:"bytes,2,rep,name=data_source_ids,json=dataSourceIds,proto3" json:"data_source_ids,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Page size. The default page size is the maximum value of 1000 results.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1103,12 +1103,12 @@ func (m *ListTransferConfigsRequest) GetPageSize() int32 {
 // The returned list of pipelines in the project.
 type ListTransferConfigsResponse struct {
 	// Output only. The stored pipeline transfer configurations.
-	TransferConfigs []*TransferConfig `protobuf:"bytes,1,rep,name=transfer_configs,json=transferConfigs" json:"transfer_configs,omitempty"`
+	TransferConfigs []*TransferConfig `protobuf:"bytes,1,rep,name=transfer_configs,json=transferConfigs,proto3" json:"transfer_configs,omitempty"`
 	// Output only. 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1159,19 +1159,19 @@ type ListTransferRunsRequest struct {
 	// Name of transfer configuration for which transfer runs should be retrieved.
 	// Format of transfer configuration resource name is:
 	// `projects/{project_id}/transferConfigs/{config_id}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// When specified, only transfer runs with requested states are returned.
-	States []TransferState `protobuf:"varint,2,rep,packed,name=states,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"states,omitempty"`
+	States []TransferState `protobuf:"varint,2,rep,packed,name=states,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"states,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Page size. The default page size is the maximum value of 1000 results.
-	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Indicates how run attempts are to be pulled.
-	RunAttempt           ListTransferRunsRequest_RunAttempt `protobuf:"varint,5,opt,name=run_attempt,json=runAttempt,enum=google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest_RunAttempt" json:"run_attempt,omitempty"`
+	RunAttempt           ListTransferRunsRequest_RunAttempt `protobuf:"varint,5,opt,name=run_attempt,json=runAttempt,proto3,enum=google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest_RunAttempt" json:"run_attempt,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
 	XXX_unrecognized     []byte                             `json:"-"`
 	XXX_sizecache        int32                              `json:"-"`
@@ -1239,12 +1239,12 @@ func (m *ListTransferRunsRequest) GetRunAttempt() ListTransferRunsRequest_RunAtt
 // The returned list of pipelines in the project.
 type ListTransferRunsResponse struct {
 	// Output only. The stored pipeline transfer runs.
-	TransferRuns []*TransferRun `protobuf:"bytes,1,rep,name=transfer_runs,json=transferRuns" json:"transfer_runs,omitempty"`
+	TransferRuns []*TransferRun `protobuf:"bytes,1,rep,name=transfer_runs,json=transferRuns,proto3" json:"transfer_runs,omitempty"`
 	// Output only. 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1292,18 +1292,18 @@ func (m *ListTransferRunsResponse) GetNextPageToken() string {
 type ListTransferLogsRequest struct {
 	// Transfer run name in the form:
 	// `projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Page size. The default page size is the maximum value of 1000 results.
-	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Message types to return. If not populated - INFO, WARNING and ERROR
 	// messages are returned.
-	MessageTypes         []TransferMessage_MessageSeverity `protobuf:"varint,6,rep,packed,name=message_types,json=messageTypes,enum=google.cloud.bigquery.datatransfer.v1.TransferMessage_MessageSeverity" json:"message_types,omitempty"`
+	MessageTypes         []TransferMessage_MessageSeverity `protobuf:"varint,6,rep,packed,name=message_types,json=messageTypes,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferMessage_MessageSeverity" json:"message_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -1364,12 +1364,12 @@ func (m *ListTransferLogsRequest) GetMessageTypes() []TransferMessage_MessageSev
 // The returned list transfer run messages.
 type ListTransferLogsResponse struct {
 	// Output only. The stored pipeline transfer messages.
-	TransferMessages []*TransferMessage `protobuf:"bytes,1,rep,name=transfer_messages,json=transferMessages" json:"transfer_messages,omitempty"`
+	TransferMessages []*TransferMessage `protobuf:"bytes,1,rep,name=transfer_messages,json=transferMessages,proto3" json:"transfer_messages,omitempty"`
 	// Output only. 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1422,7 +1422,7 @@ func (m *ListTransferLogsResponse) GetNextPageToken() string {
 type CheckValidCredsRequest struct {
 	// The data source in the form:
 	// `projects/{project_id}/dataSources/{data_source_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1462,7 +1462,7 @@ func (m *CheckValidCredsRequest) GetName() string {
 // A response indicating whether the credentials exist and are valid.
 type CheckValidCredsResponse struct {
 	// If set to `true`, the credentials exist and are valid.
-	HasValidCreds        bool     `protobuf:"varint,1,opt,name=has_valid_creds,json=hasValidCreds" json:"has_valid_creds,omitempty"`
+	HasValidCreds        bool     `protobuf:"varint,1,opt,name=has_valid_creds,json=hasValidCreds,proto3" json:"has_valid_creds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1503,13 +1503,13 @@ func (m *CheckValidCredsResponse) GetHasValidCreds() bool {
 type ScheduleTransferRunsRequest struct {
 	// Transfer configuration name in the form:
 	// `projects/{project_id}/transferConfigs/{config_id}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Start time of the range of transfer runs. For example,
 	// `"2017-05-25T00:00:00+00:00"`.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End time of the range of transfer runs. For example,
 	// `"2017-05-30T00:00:00+00:00"`.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1563,7 +1563,7 @@ func (m *ScheduleTransferRunsRequest) GetEndTime() *timestamp.Timestamp {
 // A response to schedule transfer runs for a time range.
 type ScheduleTransferRunsResponse struct {
 	// The transfer runs that were scheduled.
-	Runs                 []*TransferRun `protobuf:"bytes,1,rep,name=runs" json:"runs,omitempty"`
+	Runs                 []*TransferRun `protobuf:"bytes,1,rep,name=runs,proto3" json:"runs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1805,8 +1805,7 @@ func (c *dataTransferServiceClient) CheckValidCreds(ctx context.Context, in *Che
 	return out, nil
 }
 
-// Server API for DataTransferService service
-
+// DataTransferServiceServer is the server API for DataTransferService service.
 type DataTransferServiceServer interface {
 	// Retrieves a supported data source and returns its settings,
 	// which can be used for UI rendering.
diff --git a/googleapis/cloud/bigquery/datatransfer/v1/transfer.pb.go b/googleapis/cloud/bigquery/datatransfer/v1/transfer.pb.go
index 67542b6c5bbd978690248e9cf106228c2283a684..ee6d573416e4588ad771888865615a0208032602 100644
--- a/googleapis/cloud/bigquery/datatransfer/v1/transfer.pb.go
+++ b/googleapis/cloud/bigquery/datatransfer/v1/transfer.pb.go
@@ -143,15 +143,15 @@ type TransferConfig struct {
 	// Where `config_id` is usually a uuid, even though it is not
 	// guaranteed or required. The name is ignored when creating a transfer
 	// config.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The BigQuery target dataset id.
-	DestinationDatasetId string `protobuf:"bytes,2,opt,name=destination_dataset_id,json=destinationDatasetId" json:"destination_dataset_id,omitempty"`
+	DestinationDatasetId string `protobuf:"bytes,2,opt,name=destination_dataset_id,json=destinationDatasetId,proto3" json:"destination_dataset_id,omitempty"`
 	// User specified display name for the data transfer.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Data source id. Cannot be changed once data transfer is created.
-	DataSourceId string `protobuf:"bytes,5,opt,name=data_source_id,json=dataSourceId" json:"data_source_id,omitempty"`
+	DataSourceId string `protobuf:"bytes,5,opt,name=data_source_id,json=dataSourceId,proto3" json:"data_source_id,omitempty"`
 	// Data transfer specific parameters.
-	Params *_struct.Struct `protobuf:"bytes,9,opt,name=params" json:"params,omitempty"`
+	Params *_struct.Struct `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"`
 	// Data transfer schedule.
 	// 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
@@ -164,31 +164,31 @@ type TransferConfig struct {
 	// See more explanation about the format here:
 	// https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format
 	// NOTE: the granularity should be at least 8 hours, or less frequent.
-	Schedule string `protobuf:"bytes,7,opt,name=schedule" json:"schedule,omitempty"`
+	Schedule string `protobuf:"bytes,7,opt,name=schedule,proto3" json:"schedule,omitempty"`
 	// 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.
-	DataRefreshWindowDays int32 `protobuf:"varint,12,opt,name=data_refresh_window_days,json=dataRefreshWindowDays" json:"data_refresh_window_days,omitempty"`
+	DataRefreshWindowDays int32 `protobuf:"varint,12,opt,name=data_refresh_window_days,json=dataRefreshWindowDays,proto3" json:"data_refresh_window_days,omitempty"`
 	// Is this config disabled. When set to true, no runs are scheduled
 	// for a given transfer.
-	Disabled bool `protobuf:"varint,13,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled bool `protobuf:"varint,13,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	// Output only. Data transfer modification time. Ignored by server on input.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// Output only. Next time when data transfer will run.
-	NextRunTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=next_run_time,json=nextRunTime" json:"next_run_time,omitempty"`
+	NextRunTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=next_run_time,json=nextRunTime,proto3" json:"next_run_time,omitempty"`
 	// Output only. State of the most recently updated transfer run.
-	State TransferState `protobuf:"varint,10,opt,name=state,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"state,omitempty"`
+	State TransferState `protobuf:"varint,10,opt,name=state,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"state,omitempty"`
 	// Output only. Unique ID 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.
 	// May be negative. Note, that this identifier is not stable.
 	// It may change over time even for the same user.
-	UserId int64 `protobuf:"varint,11,opt,name=user_id,json=userId" json:"user_id,omitempty"`
+	UserId int64 `protobuf:"varint,11,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
 	// Output only. Region in which BigQuery dataset is located.
-	DatasetRegion        string   `protobuf:"bytes,14,opt,name=dataset_region,json=datasetRegion" json:"dataset_region,omitempty"`
+	DatasetRegion        string   `protobuf:"bytes,14,opt,name=dataset_region,json=datasetRegion,proto3" json:"dataset_region,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -315,42 +315,42 @@ type TransferRun struct {
 	// Transfer run names have the form
 	// `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`.
 	// The name is ignored when creating a transfer run.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Minimum time after which a transfer run can be started.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// For batch transfer runs, specifies the date and time that
 	// data should be ingested.
-	RunTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=run_time,json=runTime" json:"run_time,omitempty"`
+	RunTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=run_time,json=runTime,proto3" json:"run_time,omitempty"`
 	// Status of the transfer run.
-	ErrorStatus *status.Status `protobuf:"bytes,21,opt,name=error_status,json=errorStatus" json:"error_status,omitempty"`
+	ErrorStatus *status.Status `protobuf:"bytes,21,opt,name=error_status,json=errorStatus,proto3" json:"error_status,omitempty"`
 	// Output only. Time when transfer run was started.
 	// Parameter ignored by server for input requests.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Output only. Time when transfer run ended.
 	// Parameter ignored by server for input requests.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Output only. Last time the data transfer run state was updated.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// Output only. Data transfer specific parameters.
-	Params *_struct.Struct `protobuf:"bytes,9,opt,name=params" json:"params,omitempty"`
+	Params *_struct.Struct `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"`
 	// Output only. The BigQuery target dataset id.
-	DestinationDatasetId string `protobuf:"bytes,2,opt,name=destination_dataset_id,json=destinationDatasetId" json:"destination_dataset_id,omitempty"`
+	DestinationDatasetId string `protobuf:"bytes,2,opt,name=destination_dataset_id,json=destinationDatasetId,proto3" json:"destination_dataset_id,omitempty"`
 	// Output only. Data source id.
-	DataSourceId string `protobuf:"bytes,7,opt,name=data_source_id,json=dataSourceId" json:"data_source_id,omitempty"`
+	DataSourceId string `protobuf:"bytes,7,opt,name=data_source_id,json=dataSourceId,proto3" json:"data_source_id,omitempty"`
 	// Data transfer run state. Ignored for input requests.
-	State TransferState `protobuf:"varint,8,opt,name=state,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"state,omitempty"`
+	State TransferState `protobuf:"varint,8,opt,name=state,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferState" json:"state,omitempty"`
 	// Output only. Unique ID 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.
 	// May be negative. Note, that this identifier is not stable.
 	// It may change over time even for the same user.
-	UserId int64 `protobuf:"varint,11,opt,name=user_id,json=userId" json:"user_id,omitempty"`
+	UserId int64 `protobuf:"varint,11,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
 	// Output only. Describes the schedule of this transfer run if it was
 	// created as part of a regular schedule. For batch transfer runs that are
 	// scheduled manually, 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.
-	Schedule             string   `protobuf:"bytes,12,opt,name=schedule" json:"schedule,omitempty"`
+	Schedule             string   `protobuf:"bytes,12,opt,name=schedule,proto3" json:"schedule,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -474,11 +474,11 @@ func (m *TransferRun) GetSchedule() string {
 // Represents a user facing message for a particular data transfer run.
 type TransferMessage struct {
 	// Time when message was logged.
-	MessageTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=message_time,json=messageTime" json:"message_time,omitempty"`
+	MessageTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=message_time,json=messageTime,proto3" json:"message_time,omitempty"`
 	// Message severity.
-	Severity TransferMessage_MessageSeverity `protobuf:"varint,2,opt,name=severity,enum=google.cloud.bigquery.datatransfer.v1.TransferMessage_MessageSeverity" json:"severity,omitempty"`
+	Severity TransferMessage_MessageSeverity `protobuf:"varint,2,opt,name=severity,proto3,enum=google.cloud.bigquery.datatransfer.v1.TransferMessage_MessageSeverity" json:"severity,omitempty"`
 	// Message text.
-	MessageText          string   `protobuf:"bytes,3,opt,name=message_text,json=messageText" json:"message_text,omitempty"`
+	MessageText          string   `protobuf:"bytes,3,opt,name=message_text,json=messageText,proto3" json:"message_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/bigquery/logging/v1/audit_data.pb.go b/googleapis/cloud/bigquery/logging/v1/audit_data.pb.go
index 013312f326262c262ca99e3255668678cc3de916..39320dbc7cab1ec0f05d010d894a6cc4030c26e2 100644
--- a/googleapis/cloud/bigquery/logging/v1/audit_data.pb.go
+++ b/googleapis/cloud/bigquery/logging/v1/audit_data.pb.go
@@ -53,7 +53,7 @@ type AuditData struct {
 	//	*AuditData_JobQueryDoneResponse
 	Response isAuditData_Response `protobuf_oneof:"response"`
 	// A job completion event.
-	JobCompletedEvent    *JobCompletedEvent `protobuf:"bytes,17,opt,name=job_completed_event,json=jobCompletedEvent" json:"job_completed_event,omitempty"`
+	JobCompletedEvent    *JobCompletedEvent `protobuf:"bytes,17,opt,name=job_completed_event,json=jobCompletedEvent,proto3" json:"job_completed_event,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -91,55 +91,55 @@ type isAuditData_Response interface {
 }
 
 type AuditData_TableInsertRequest struct {
-	TableInsertRequest *TableInsertRequest `protobuf:"bytes,1,opt,name=table_insert_request,json=tableInsertRequest,oneof"`
+	TableInsertRequest *TableInsertRequest `protobuf:"bytes,1,opt,name=table_insert_request,json=tableInsertRequest,proto3,oneof"`
 }
 type AuditData_TableUpdateRequest struct {
-	TableUpdateRequest *TableUpdateRequest `protobuf:"bytes,16,opt,name=table_update_request,json=tableUpdateRequest,oneof"`
+	TableUpdateRequest *TableUpdateRequest `protobuf:"bytes,16,opt,name=table_update_request,json=tableUpdateRequest,proto3,oneof"`
 }
 type AuditData_DatasetListRequest struct {
-	DatasetListRequest *DatasetListRequest `protobuf:"bytes,2,opt,name=dataset_list_request,json=datasetListRequest,oneof"`
+	DatasetListRequest *DatasetListRequest `protobuf:"bytes,2,opt,name=dataset_list_request,json=datasetListRequest,proto3,oneof"`
 }
 type AuditData_DatasetInsertRequest struct {
-	DatasetInsertRequest *DatasetInsertRequest `protobuf:"bytes,3,opt,name=dataset_insert_request,json=datasetInsertRequest,oneof"`
+	DatasetInsertRequest *DatasetInsertRequest `protobuf:"bytes,3,opt,name=dataset_insert_request,json=datasetInsertRequest,proto3,oneof"`
 }
 type AuditData_DatasetUpdateRequest struct {
-	DatasetUpdateRequest *DatasetUpdateRequest `protobuf:"bytes,4,opt,name=dataset_update_request,json=datasetUpdateRequest,oneof"`
+	DatasetUpdateRequest *DatasetUpdateRequest `protobuf:"bytes,4,opt,name=dataset_update_request,json=datasetUpdateRequest,proto3,oneof"`
 }
 type AuditData_JobInsertRequest struct {
-	JobInsertRequest *JobInsertRequest `protobuf:"bytes,5,opt,name=job_insert_request,json=jobInsertRequest,oneof"`
+	JobInsertRequest *JobInsertRequest `protobuf:"bytes,5,opt,name=job_insert_request,json=jobInsertRequest,proto3,oneof"`
 }
 type AuditData_JobQueryRequest struct {
-	JobQueryRequest *JobQueryRequest `protobuf:"bytes,6,opt,name=job_query_request,json=jobQueryRequest,oneof"`
+	JobQueryRequest *JobQueryRequest `protobuf:"bytes,6,opt,name=job_query_request,json=jobQueryRequest,proto3,oneof"`
 }
 type AuditData_JobGetQueryResultsRequest struct {
-	JobGetQueryResultsRequest *JobGetQueryResultsRequest `protobuf:"bytes,7,opt,name=job_get_query_results_request,json=jobGetQueryResultsRequest,oneof"`
+	JobGetQueryResultsRequest *JobGetQueryResultsRequest `protobuf:"bytes,7,opt,name=job_get_query_results_request,json=jobGetQueryResultsRequest,proto3,oneof"`
 }
 type AuditData_TableDataListRequest struct {
-	TableDataListRequest *TableDataListRequest `protobuf:"bytes,8,opt,name=table_data_list_request,json=tableDataListRequest,oneof"`
+	TableDataListRequest *TableDataListRequest `protobuf:"bytes,8,opt,name=table_data_list_request,json=tableDataListRequest,proto3,oneof"`
 }
 type AuditData_TableInsertResponse struct {
-	TableInsertResponse *TableInsertResponse `protobuf:"bytes,9,opt,name=table_insert_response,json=tableInsertResponse,oneof"`
+	TableInsertResponse *TableInsertResponse `protobuf:"bytes,9,opt,name=table_insert_response,json=tableInsertResponse,proto3,oneof"`
 }
 type AuditData_TableUpdateResponse struct {
-	TableUpdateResponse *TableUpdateResponse `protobuf:"bytes,10,opt,name=table_update_response,json=tableUpdateResponse,oneof"`
+	TableUpdateResponse *TableUpdateResponse `protobuf:"bytes,10,opt,name=table_update_response,json=tableUpdateResponse,proto3,oneof"`
 }
 type AuditData_DatasetInsertResponse struct {
-	DatasetInsertResponse *DatasetInsertResponse `protobuf:"bytes,11,opt,name=dataset_insert_response,json=datasetInsertResponse,oneof"`
+	DatasetInsertResponse *DatasetInsertResponse `protobuf:"bytes,11,opt,name=dataset_insert_response,json=datasetInsertResponse,proto3,oneof"`
 }
 type AuditData_DatasetUpdateResponse struct {
-	DatasetUpdateResponse *DatasetUpdateResponse `protobuf:"bytes,12,opt,name=dataset_update_response,json=datasetUpdateResponse,oneof"`
+	DatasetUpdateResponse *DatasetUpdateResponse `protobuf:"bytes,12,opt,name=dataset_update_response,json=datasetUpdateResponse,proto3,oneof"`
 }
 type AuditData_JobInsertResponse struct {
-	JobInsertResponse *JobInsertResponse `protobuf:"bytes,18,opt,name=job_insert_response,json=jobInsertResponse,oneof"`
+	JobInsertResponse *JobInsertResponse `protobuf:"bytes,18,opt,name=job_insert_response,json=jobInsertResponse,proto3,oneof"`
 }
 type AuditData_JobQueryResponse struct {
-	JobQueryResponse *JobQueryResponse `protobuf:"bytes,13,opt,name=job_query_response,json=jobQueryResponse,oneof"`
+	JobQueryResponse *JobQueryResponse `protobuf:"bytes,13,opt,name=job_query_response,json=jobQueryResponse,proto3,oneof"`
 }
 type AuditData_JobGetQueryResultsResponse struct {
-	JobGetQueryResultsResponse *JobGetQueryResultsResponse `protobuf:"bytes,14,opt,name=job_get_query_results_response,json=jobGetQueryResultsResponse,oneof"`
+	JobGetQueryResultsResponse *JobGetQueryResultsResponse `protobuf:"bytes,14,opt,name=job_get_query_results_response,json=jobGetQueryResultsResponse,proto3,oneof"`
 }
 type AuditData_JobQueryDoneResponse struct {
-	JobQueryDoneResponse *JobQueryDoneResponse `protobuf:"bytes,15,opt,name=job_query_done_response,json=jobQueryDoneResponse,oneof"`
+	JobQueryDoneResponse *JobQueryDoneResponse `protobuf:"bytes,15,opt,name=job_query_done_response,json=jobQueryDoneResponse,proto3,oneof"`
 }
 
 func (*AuditData_TableInsertRequest) isAuditData_Request()          {}
@@ -673,7 +673,7 @@ func _AuditData_OneofSizer(msg proto.Message) (n int) {
 // Table insert request.
 type TableInsertRequest struct {
 	// The new table.
-	Resource             *Table   `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Table   `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -713,7 +713,7 @@ func (m *TableInsertRequest) GetResource() *Table {
 // Table update request.
 type TableUpdateRequest struct {
 	// The table to be updated.
-	Resource             *Table   `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Table   `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -753,7 +753,7 @@ func (m *TableUpdateRequest) GetResource() *Table {
 // Table insert response.
 type TableInsertResponse struct {
 	// Final state of the inserted table.
-	Resource             *Table   `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Table   `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -793,7 +793,7 @@ func (m *TableInsertResponse) GetResource() *Table {
 // Table update response.
 type TableUpdateResponse struct {
 	// Final state of the updated table.
-	Resource             *Table   `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Table   `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -833,7 +833,7 @@ func (m *TableUpdateResponse) GetResource() *Table {
 // Dataset list request.
 type DatasetListRequest struct {
 	// Whether to list all datasets, including hidden ones.
-	ListAll              bool     `protobuf:"varint,1,opt,name=list_all,json=listAll" json:"list_all,omitempty"`
+	ListAll              bool     `protobuf:"varint,1,opt,name=list_all,json=listAll,proto3" json:"list_all,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -873,7 +873,7 @@ func (m *DatasetListRequest) GetListAll() bool {
 // Dataset insert request.
 type DatasetInsertRequest struct {
 	// The dataset to be inserted.
-	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -913,7 +913,7 @@ func (m *DatasetInsertRequest) GetResource() *Dataset {
 // Dataset insert response.
 type DatasetInsertResponse struct {
 	// Final state of the inserted dataset.
-	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -953,7 +953,7 @@ func (m *DatasetInsertResponse) GetResource() *Dataset {
 // Dataset update request.
 type DatasetUpdateRequest struct {
 	// The dataset to be updated.
-	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -993,7 +993,7 @@ func (m *DatasetUpdateRequest) GetResource() *Dataset {
 // Dataset update response.
 type DatasetUpdateResponse struct {
 	// Final state of the updated dataset.
-	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Dataset `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1033,7 +1033,7 @@ func (m *DatasetUpdateResponse) GetResource() *Dataset {
 // Job insert request.
 type JobInsertRequest struct {
 	// Job insert request.
-	Resource             *Job     `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Job     `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1073,7 +1073,7 @@ func (m *JobInsertRequest) GetResource() *Job {
 // Job insert response.
 type JobInsertResponse struct {
 	// Job insert response.
-	Resource             *Job     `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             *Job     `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1113,15 +1113,15 @@ func (m *JobInsertResponse) GetResource() *Job {
 // Job query request.
 type JobQueryRequest struct {
 	// The query.
-	Query string `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"`
+	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
 	// The maximum number of results.
-	MaxResults uint32 `protobuf:"varint,2,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults uint32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	// The default dataset for tables that do not have a dataset specified.
-	DefaultDataset *DatasetName `protobuf:"bytes,3,opt,name=default_dataset,json=defaultDataset" json:"default_dataset,omitempty"`
+	DefaultDataset *DatasetName `protobuf:"bytes,3,opt,name=default_dataset,json=defaultDataset,proto3" json:"default_dataset,omitempty"`
 	// Project that the query should be charged to.
-	ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If true, don't actually run the job. Just check that it would run.
-	DryRun               bool     `protobuf:"varint,5,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
+	DryRun               bool     `protobuf:"varint,5,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1189,9 +1189,9 @@ func (m *JobQueryRequest) GetDryRun() bool {
 // Job query response.
 type JobQueryResponse struct {
 	// The total number of rows in the full query result set.
-	TotalResults uint64 `protobuf:"varint,1,opt,name=total_results,json=totalResults" json:"total_results,omitempty"`
+	TotalResults uint64 `protobuf:"varint,1,opt,name=total_results,json=totalResults,proto3" json:"total_results,omitempty"`
 	// Information about the queried job.
-	Job                  *Job     `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1238,9 +1238,9 @@ func (m *JobQueryResponse) GetJob() *Job {
 // Job getQueryResults request.
 type JobGetQueryResultsRequest struct {
 	// Maximum number of results to return.
-	MaxResults uint32 `protobuf:"varint,1,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults uint32 `protobuf:"varint,1,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	// Zero-based row number at which to start.
-	StartRow             uint64   `protobuf:"varint,2,opt,name=start_row,json=startRow" json:"start_row,omitempty"`
+	StartRow             uint64   `protobuf:"varint,2,opt,name=start_row,json=startRow,proto3" json:"start_row,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1287,11 +1287,11 @@ func (m *JobGetQueryResultsRequest) GetStartRow() uint64 {
 // Job getQueryResults response.
 type JobGetQueryResultsResponse struct {
 	// Total number of results in query results.
-	TotalResults uint64 `protobuf:"varint,1,opt,name=total_results,json=totalResults" json:"total_results,omitempty"`
+	TotalResults uint64 `protobuf:"varint,1,opt,name=total_results,json=totalResults,proto3" json:"total_results,omitempty"`
 	// The job that was created to run the query.
 	// It completed if `job.status.state` is `DONE`.
 	// It failed if `job.status.errorResult` is also present.
-	Job                  *Job     `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1339,7 +1339,7 @@ func (m *JobGetQueryResultsResponse) GetJob() *Job {
 type JobQueryDoneResponse struct {
 	// The job and status information.
 	// The job completed if `job.status.state` is `DONE`.
-	Job                  *Job     `protobuf:"bytes,1,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1379,9 +1379,9 @@ func (m *JobQueryDoneResponse) GetJob() *Job {
 // Query job completed event.
 type JobCompletedEvent struct {
 	// Name of the event.
-	EventName string `protobuf:"bytes,1,opt,name=event_name,json=eventName" json:"event_name,omitempty"`
+	EventName string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
 	// Job information.
-	Job                  *Job     `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1428,9 +1428,9 @@ func (m *JobCompletedEvent) GetJob() *Job {
 // Table data-list request.
 type TableDataListRequest struct {
 	// Starting row offset.
-	StartRow uint64 `protobuf:"varint,1,opt,name=start_row,json=startRow" json:"start_row,omitempty"`
+	StartRow uint64 `protobuf:"varint,1,opt,name=start_row,json=startRow,proto3" json:"start_row,omitempty"`
 	// Maximum number of results to return.
-	MaxResults           uint32   `protobuf:"varint,2,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults           uint32   `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1482,22 +1482,22 @@ func (m *TableDataListRequest) GetMaxResults() uint32 {
 // transition.
 type Table struct {
 	// The name of the table.
-	TableName *TableName `protobuf:"bytes,1,opt,name=table_name,json=tableName" json:"table_name,omitempty"`
+	TableName *TableName `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"`
 	// User-provided metadata for the table.
-	Info *TableInfo `protobuf:"bytes,2,opt,name=info" json:"info,omitempty"`
+	Info *TableInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
 	// A JSON representation of the table's schema.
-	SchemaJson string `protobuf:"bytes,8,opt,name=schema_json,json=schemaJson" json:"schema_json,omitempty"`
+	SchemaJson string `protobuf:"bytes,8,opt,name=schema_json,json=schemaJson,proto3" json:"schema_json,omitempty"`
 	// If present, this is a virtual table defined by a SQL query.
-	View *TableViewDefinition `protobuf:"bytes,4,opt,name=view" json:"view,omitempty"`
+	View *TableViewDefinition `protobuf:"bytes,4,opt,name=view,proto3" json:"view,omitempty"`
 	// The expiration date for the table, after which the table
 	// is deleted and the storage reclaimed.
 	// If not present, the table persists indefinitely.
-	ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// The time the table was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time the table was last truncated
 	// by an operation with a `writeDisposition` of `WRITE_TRUNCATE`.
-	TruncateTime         *timestamp.Timestamp `protobuf:"bytes,7,opt,name=truncate_time,json=truncateTime" json:"truncate_time,omitempty"`
+	TruncateTime         *timestamp.Timestamp `protobuf:"bytes,7,opt,name=truncate_time,json=truncateTime,proto3" json:"truncate_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1579,10 +1579,10 @@ func (m *Table) GetTruncateTime() *timestamp.Timestamp {
 // User-provided metadata for a table.
 type TableInfo struct {
 	// A short name for the table, such as`"Analytics Data - Jan 2011"`.
-	FriendlyName string `protobuf:"bytes,1,opt,name=friendly_name,json=friendlyName" json:"friendly_name,omitempty"`
+	FriendlyName string `protobuf:"bytes,1,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"`
 	// A long description, perhaps several paragraphs,
 	// describing the table contents in detail.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1629,7 +1629,7 @@ func (m *TableInfo) GetDescription() string {
 // Describes a virtual table defined by a SQL query.
 type TableViewDefinition struct {
 	// SQL query defining the view.
-	Query                string   `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"`
+	Query                string   `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1671,20 +1671,20 @@ func (m *TableViewDefinition) GetQuery() string {
 // for more details on individual fields.
 type Dataset struct {
 	// The name of the dataset.
-	DatasetName *DatasetName `protobuf:"bytes,1,opt,name=dataset_name,json=datasetName" json:"dataset_name,omitempty"`
+	DatasetName *DatasetName `protobuf:"bytes,1,opt,name=dataset_name,json=datasetName,proto3" json:"dataset_name,omitempty"`
 	// User-provided metadata for the dataset.
-	Info *DatasetInfo `protobuf:"bytes,2,opt,name=info" json:"info,omitempty"`
+	Info *DatasetInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
 	// The time the dataset was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time the dataset was last modified.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// The access control list for the dataset.
-	Acl *BigQueryAcl `protobuf:"bytes,6,opt,name=acl" json:"acl,omitempty"`
+	Acl *BigQueryAcl `protobuf:"bytes,6,opt,name=acl,proto3" json:"acl,omitempty"`
 	// If this field is present, each table that does not specify an
 	// expiration time is assigned an expiration time by adding this
 	// duration to the table's `createTime`.  If this field is empty,
 	// there is no default table expiration time.
-	DefaultTableExpireDuration *duration.Duration `protobuf:"bytes,8,opt,name=default_table_expire_duration,json=defaultTableExpireDuration" json:"default_table_expire_duration,omitempty"`
+	DefaultTableExpireDuration *duration.Duration `protobuf:"bytes,8,opt,name=default_table_expire_duration,json=defaultTableExpireDuration,proto3" json:"default_table_expire_duration,omitempty"`
 	XXX_NoUnkeyedLiteral       struct{}           `json:"-"`
 	XXX_unrecognized           []byte             `json:"-"`
 	XXX_sizecache              int32              `json:"-"`
@@ -1759,10 +1759,10 @@ func (m *Dataset) GetDefaultTableExpireDuration() *duration.Duration {
 // User-provided metadata for a dataset.
 type DatasetInfo struct {
 	// A short name for the dataset, such as`"Analytics Data 2011"`.
-	FriendlyName string `protobuf:"bytes,1,opt,name=friendly_name,json=friendlyName" json:"friendly_name,omitempty"`
+	FriendlyName string `protobuf:"bytes,1,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"`
 	// A long description, perhaps several paragraphs,
 	// describing the dataset contents in detail.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1809,7 +1809,7 @@ func (m *DatasetInfo) GetDescription() string {
 // An access control list.
 type BigQueryAcl struct {
 	// Access control entry list.
-	Entries              []*BigQueryAcl_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
+	Entries              []*BigQueryAcl_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1849,18 +1849,18 @@ func (m *BigQueryAcl) GetEntries() []*BigQueryAcl_Entry {
 // Access control entry.
 type BigQueryAcl_Entry struct {
 	// The granted role, which can be `READER`, `WRITER`, or `OWNER`.
-	Role string `protobuf:"bytes,1,opt,name=role" json:"role,omitempty"`
+	Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
 	// Grants access to a group identified by an email address.
-	GroupEmail string `protobuf:"bytes,2,opt,name=group_email,json=groupEmail" json:"group_email,omitempty"`
+	GroupEmail string `protobuf:"bytes,2,opt,name=group_email,json=groupEmail,proto3" json:"group_email,omitempty"`
 	// Grants access to a user identified by an email address.
-	UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail" json:"user_email,omitempty"`
+	UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
 	// Grants access to all members of a domain.
-	Domain string `protobuf:"bytes,4,opt,name=domain" json:"domain,omitempty"`
+	Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
 	// Grants access to special groups. Valid groups are `PROJECT_OWNERS`,
 	// `PROJECT_READERS`, `PROJECT_WRITERS` and `ALL_AUTHENTICATED_USERS`.
-	SpecialGroup string `protobuf:"bytes,5,opt,name=special_group,json=specialGroup" json:"special_group,omitempty"`
+	SpecialGroup string `protobuf:"bytes,5,opt,name=special_group,json=specialGroup,proto3" json:"special_group,omitempty"`
 	// Grants access to a BigQuery View.
-	ViewName             *TableName `protobuf:"bytes,6,opt,name=view_name,json=viewName" json:"view_name,omitempty"`
+	ViewName             *TableName `protobuf:"bytes,6,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1935,13 +1935,13 @@ func (m *BigQueryAcl_Entry) GetViewName() *TableName {
 // Describes a job.
 type Job struct {
 	// Job name.
-	JobName *JobName `protobuf:"bytes,1,opt,name=job_name,json=jobName" json:"job_name,omitempty"`
+	JobName *JobName `protobuf:"bytes,1,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"`
 	// Job configuration.
-	JobConfiguration *JobConfiguration `protobuf:"bytes,2,opt,name=job_configuration,json=jobConfiguration" json:"job_configuration,omitempty"`
+	JobConfiguration *JobConfiguration `protobuf:"bytes,2,opt,name=job_configuration,json=jobConfiguration,proto3" json:"job_configuration,omitempty"`
 	// Job status.
-	JobStatus *JobStatus `protobuf:"bytes,3,opt,name=job_status,json=jobStatus" json:"job_status,omitempty"`
+	JobStatus *JobStatus `protobuf:"bytes,3,opt,name=job_status,json=jobStatus,proto3" json:"job_status,omitempty"`
 	// Job statistics.
-	JobStatistics        *JobStatistics `protobuf:"bytes,4,opt,name=job_statistics,json=jobStatistics" json:"job_statistics,omitempty"`
+	JobStatistics        *JobStatistics `protobuf:"bytes,4,opt,name=job_statistics,json=jobStatistics,proto3" json:"job_statistics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -2012,7 +2012,7 @@ type JobConfiguration struct {
 	//	*JobConfiguration_TableCopy_
 	Configuration isJobConfiguration_Configuration `protobuf_oneof:"configuration"`
 	// If true, don't actually run the job. Just check that it would run.
-	DryRun               bool     `protobuf:"varint,9,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
+	DryRun               bool     `protobuf:"varint,9,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2047,16 +2047,16 @@ type isJobConfiguration_Configuration interface {
 }
 
 type JobConfiguration_Query_ struct {
-	Query *JobConfiguration_Query `protobuf:"bytes,5,opt,name=query,oneof"`
+	Query *JobConfiguration_Query `protobuf:"bytes,5,opt,name=query,proto3,oneof"`
 }
 type JobConfiguration_Load_ struct {
-	Load *JobConfiguration_Load `protobuf:"bytes,6,opt,name=load,oneof"`
+	Load *JobConfiguration_Load `protobuf:"bytes,6,opt,name=load,proto3,oneof"`
 }
 type JobConfiguration_Extract_ struct {
-	Extract *JobConfiguration_Extract `protobuf:"bytes,7,opt,name=extract,oneof"`
+	Extract *JobConfiguration_Extract `protobuf:"bytes,7,opt,name=extract,proto3,oneof"`
 }
 type JobConfiguration_TableCopy_ struct {
-	TableCopy *JobConfiguration_TableCopy `protobuf:"bytes,8,opt,name=table_copy,json=tableCopy,oneof"`
+	TableCopy *JobConfiguration_TableCopy `protobuf:"bytes,8,opt,name=table_copy,json=tableCopy,proto3,oneof"`
 }
 
 func (*JobConfiguration_Query_) isJobConfiguration_Configuration()     {}
@@ -2221,20 +2221,20 @@ func _JobConfiguration_OneofSizer(msg proto.Message) (n int) {
 // Describes a query job, which executes a SQL-like query.
 type JobConfiguration_Query struct {
 	// The SQL query to run.
-	Query string `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"`
+	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
 	// The table where results are written.
-	DestinationTable *TableName `protobuf:"bytes,2,opt,name=destination_table,json=destinationTable" json:"destination_table,omitempty"`
+	DestinationTable *TableName `protobuf:"bytes,2,opt,name=destination_table,json=destinationTable,proto3" json:"destination_table,omitempty"`
 	// Describes when a job is allowed to create a table:
 	// `CREATE_IF_NEEDED`, `CREATE_NEVER`.
-	CreateDisposition string `protobuf:"bytes,3,opt,name=create_disposition,json=createDisposition" json:"create_disposition,omitempty"`
+	CreateDisposition string `protobuf:"bytes,3,opt,name=create_disposition,json=createDisposition,proto3" json:"create_disposition,omitempty"`
 	// Describes how writes affect existing tables:
 	// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.
-	WriteDisposition string `protobuf:"bytes,4,opt,name=write_disposition,json=writeDisposition" json:"write_disposition,omitempty"`
+	WriteDisposition string `protobuf:"bytes,4,opt,name=write_disposition,json=writeDisposition,proto3" json:"write_disposition,omitempty"`
 	// If a table name is specified without a dataset in a query,
 	// this dataset will be added to table name.
-	DefaultDataset *DatasetName `protobuf:"bytes,5,opt,name=default_dataset,json=defaultDataset" json:"default_dataset,omitempty"`
+	DefaultDataset *DatasetName `protobuf:"bytes,5,opt,name=default_dataset,json=defaultDataset,proto3" json:"default_dataset,omitempty"`
 	// Describes data sources outside BigQuery, if needed.
-	TableDefinitions     []*TableDefinition `protobuf:"bytes,6,rep,name=table_definitions,json=tableDefinitions" json:"table_definitions,omitempty"`
+	TableDefinitions     []*TableDefinition `protobuf:"bytes,6,rep,name=table_definitions,json=tableDefinitions,proto3" json:"table_definitions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -2311,17 +2311,17 @@ func (m *JobConfiguration_Query) GetTableDefinitions() []*TableDefinition {
 type JobConfiguration_Load struct {
 	// URIs for the data to be imported. Only Google Cloud Storage URIs are
 	// supported.
-	SourceUris []string `protobuf:"bytes,1,rep,name=source_uris,json=sourceUris" json:"source_uris,omitempty"`
+	SourceUris []string `protobuf:"bytes,1,rep,name=source_uris,json=sourceUris,proto3" json:"source_uris,omitempty"`
 	// The table schema in JSON format representation of a TableSchema.
-	SchemaJson string `protobuf:"bytes,6,opt,name=schema_json,json=schemaJson" json:"schema_json,omitempty"`
+	SchemaJson string `protobuf:"bytes,6,opt,name=schema_json,json=schemaJson,proto3" json:"schema_json,omitempty"`
 	// The table where the imported data is written.
-	DestinationTable *TableName `protobuf:"bytes,3,opt,name=destination_table,json=destinationTable" json:"destination_table,omitempty"`
+	DestinationTable *TableName `protobuf:"bytes,3,opt,name=destination_table,json=destinationTable,proto3" json:"destination_table,omitempty"`
 	// Describes when a job is allowed to create a table:
 	// `CREATE_IF_NEEDED`, `CREATE_NEVER`.
-	CreateDisposition string `protobuf:"bytes,4,opt,name=create_disposition,json=createDisposition" json:"create_disposition,omitempty"`
+	CreateDisposition string `protobuf:"bytes,4,opt,name=create_disposition,json=createDisposition,proto3" json:"create_disposition,omitempty"`
 	// Describes how writes affect existing tables:
 	// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.
-	WriteDisposition     string   `protobuf:"bytes,5,opt,name=write_disposition,json=writeDisposition" json:"write_disposition,omitempty"`
+	WriteDisposition     string   `protobuf:"bytes,5,opt,name=write_disposition,json=writeDisposition,proto3" json:"write_disposition,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2390,9 +2390,9 @@ func (m *JobConfiguration_Load) GetWriteDisposition() string {
 // via the  export pipeline.
 type JobConfiguration_Extract struct {
 	// Google Cloud Storage URIs where extracted data should be written.
-	DestinationUris []string `protobuf:"bytes,1,rep,name=destination_uris,json=destinationUris" json:"destination_uris,omitempty"`
+	DestinationUris []string `protobuf:"bytes,1,rep,name=destination_uris,json=destinationUris,proto3" json:"destination_uris,omitempty"`
 	// The source table.
-	SourceTable          *TableName `protobuf:"bytes,2,opt,name=source_table,json=sourceTable" json:"source_table,omitempty"`
+	SourceTable          *TableName `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2439,15 +2439,15 @@ func (m *JobConfiguration_Extract) GetSourceTable() *TableName {
 // Describes a copy job, which copies an existing table to another table.
 type JobConfiguration_TableCopy struct {
 	// Source tables.
-	SourceTables []*TableName `protobuf:"bytes,1,rep,name=source_tables,json=sourceTables" json:"source_tables,omitempty"`
+	SourceTables []*TableName `protobuf:"bytes,1,rep,name=source_tables,json=sourceTables,proto3" json:"source_tables,omitempty"`
 	// Destination table.
-	DestinationTable *TableName `protobuf:"bytes,2,opt,name=destination_table,json=destinationTable" json:"destination_table,omitempty"`
+	DestinationTable *TableName `protobuf:"bytes,2,opt,name=destination_table,json=destinationTable,proto3" json:"destination_table,omitempty"`
 	// Describes when a job is allowed to create a table:
 	// `CREATE_IF_NEEDED`, `CREATE_NEVER`.
-	CreateDisposition string `protobuf:"bytes,3,opt,name=create_disposition,json=createDisposition" json:"create_disposition,omitempty"`
+	CreateDisposition string `protobuf:"bytes,3,opt,name=create_disposition,json=createDisposition,proto3" json:"create_disposition,omitempty"`
 	// Describes how writes affect existing tables:
 	// `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.
-	WriteDisposition     string   `protobuf:"bytes,4,opt,name=write_disposition,json=writeDisposition" json:"write_disposition,omitempty"`
+	WriteDisposition     string   `protobuf:"bytes,4,opt,name=write_disposition,json=writeDisposition,proto3" json:"write_disposition,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2508,9 +2508,9 @@ func (m *JobConfiguration_TableCopy) GetWriteDisposition() string {
 // Describes an external data source used in a query.
 type TableDefinition struct {
 	// Name of the table, used in queries.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Google Cloud Storage URIs for the data to be imported.
-	SourceUris           []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris" json:"source_uris,omitempty"`
+	SourceUris           []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris,proto3" json:"source_uris,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2557,9 +2557,9 @@ func (m *TableDefinition) GetSourceUris() []string {
 // Running state of a job.
 type JobStatus struct {
 	// State of a job: `PENDING`, `RUNNING`, or `DONE`.
-	State string `protobuf:"bytes,1,opt,name=state" json:"state,omitempty"`
+	State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
 	// If the job did not complete successfully, this field describes why.
-	Error                *status.Status `protobuf:"bytes,2,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -2606,17 +2606,17 @@ func (m *JobStatus) GetError() *status.Status {
 // Job statistics that may change after a job starts.
 type JobStatistics struct {
 	// Time when the job was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time when the job started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time when the job ended.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Total bytes processed for a job.
-	TotalProcessedBytes int64 `protobuf:"varint,4,opt,name=total_processed_bytes,json=totalProcessedBytes" json:"total_processed_bytes,omitempty"`
+	TotalProcessedBytes int64 `protobuf:"varint,4,opt,name=total_processed_bytes,json=totalProcessedBytes,proto3" json:"total_processed_bytes,omitempty"`
 	// Processed bytes, adjusted by the job's CPU usage.
-	TotalBilledBytes int64 `protobuf:"varint,5,opt,name=total_billed_bytes,json=totalBilledBytes" json:"total_billed_bytes,omitempty"`
+	TotalBilledBytes int64 `protobuf:"varint,5,opt,name=total_billed_bytes,json=totalBilledBytes,proto3" json:"total_billed_bytes,omitempty"`
 	// The tier assigned by CPU-based billing.
-	BillingTier          int32    `protobuf:"varint,7,opt,name=billing_tier,json=billingTier" json:"billing_tier,omitempty"`
+	BillingTier          int32    `protobuf:"varint,7,opt,name=billing_tier,json=billingTier,proto3" json:"billing_tier,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2691,9 +2691,9 @@ func (m *JobStatistics) GetBillingTier() int32 {
 // The fully-qualified name for a dataset.
 type DatasetName struct {
 	// The project ID.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The dataset ID within the project.
-	DatasetId            string   `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId            string   `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2740,11 +2740,11 @@ func (m *DatasetName) GetDatasetId() string {
 // The fully-qualified name for a table.
 type TableName struct {
 	// The project ID.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The dataset ID within the project.
-	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The table ID of the table within the dataset.
-	TableId              string   `protobuf:"bytes,3,opt,name=table_id,json=tableId" json:"table_id,omitempty"`
+	TableId              string   `protobuf:"bytes,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2798,9 +2798,9 @@ func (m *TableName) GetTableId() string {
 // The fully-qualified name for a job.
 type JobName struct {
 	// The project ID.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The job ID within the project.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/billing/v1/cloud_billing.pb.go b/googleapis/cloud/billing/v1/cloud_billing.pb.go
index 8453248f7b429f3a57bfef637fd0902d634f2970..d6ff15b7ecc15647619dba0f0a037da9cbeb3677 100644
--- a/googleapis/cloud/billing/v1/cloud_billing.pb.go
+++ b/googleapis/cloud/billing/v1/cloud_billing.pb.go
@@ -32,14 +32,14 @@ type BillingAccount struct {
 	// `billingAccounts/{billing_account_id}`. For example,
 	// `billingAccounts/012345-567890-ABCDEF` would be the resource name for
 	// billing account `012345-567890-ABCDEF`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// True if the billing account is open, and will therefore be charged for any
 	// usage on associated projects. False if the billing account is closed, and
 	// therefore projects associated with it will be unable to use paid services.
-	Open bool `protobuf:"varint,2,opt,name=open" json:"open,omitempty"`
+	Open bool `protobuf:"varint,2,opt,name=open,proto3" json:"open,omitempty"`
 	// The display name given to the billing account, such as `My Billing
 	// Account`. This name is displayed in the Google Cloud Console.
-	DisplayName          string   `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -98,19 +98,19 @@ type ProjectBillingInfo struct {
 	// `projects/{project_id}/billingInfo`. For example, the resource name for the
 	// billing information for project `tokyo-rain-123` would be
 	// `projects/tokyo-rain-123/billingInfo`. This field is read-only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The ID of the project that this `ProjectBillingInfo` represents, such as
 	// `tokyo-rain-123`. This is a convenience field so that you don't need to
 	// parse the `name` field to obtain a project ID. This field is read-only.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The resource name of the billing account associated with the project, if
 	// any. For example, `billingAccounts/012345-567890-ABCDEF`.
-	BillingAccountName string `protobuf:"bytes,3,opt,name=billing_account_name,json=billingAccountName" json:"billing_account_name,omitempty"`
+	BillingAccountName string `protobuf:"bytes,3,opt,name=billing_account_name,json=billingAccountName,proto3" json:"billing_account_name,omitempty"`
 	// True if the project is associated with an open billing account, to which
 	// usage on the project is charged. False if the project is associated with a
 	// closed billing account, or no billing account at all, and therefore cannot
 	// use paid services. This field is read-only.
-	BillingEnabled       bool     `protobuf:"varint,4,opt,name=billing_enabled,json=billingEnabled" json:"billing_enabled,omitempty"`
+	BillingEnabled       bool     `protobuf:"varint,4,opt,name=billing_enabled,json=billingEnabled,proto3" json:"billing_enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -172,7 +172,7 @@ func (m *ProjectBillingInfo) GetBillingEnabled() bool {
 type GetBillingAccountRequest struct {
 	// The resource name of the billing account to retrieve. For example,
 	// `billingAccounts/012345-567890-ABCDEF`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -213,11 +213,11 @@ func (m *GetBillingAccountRequest) GetName() string {
 type ListBillingAccountsRequest struct {
 	// Requested page size. The maximum page size is 100; this is also the
 	// default.
-	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying a page of results to return. This should be a
 	// `next_page_token` value returned from a previous `ListBillingAccounts`
 	// call. If unspecified, the first page of results is returned.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -264,11 +264,11 @@ func (m *ListBillingAccountsRequest) GetPageToken() string {
 // Response message for `ListBillingAccounts`.
 type ListBillingAccountsResponse struct {
 	// A list of billing accounts.
-	BillingAccounts []*BillingAccount `protobuf:"bytes,1,rep,name=billing_accounts,json=billingAccounts" json:"billing_accounts,omitempty"`
+	BillingAccounts []*BillingAccount `protobuf:"bytes,1,rep,name=billing_accounts,json=billingAccounts,proto3" json:"billing_accounts,omitempty"`
 	// A token to retrieve the next page of results. To retrieve the next page,
 	// call `ListBillingAccounts` again with the `page_token` field set to this
 	// value. This field is empty if there are no more results to retrieve.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -316,14 +316,14 @@ func (m *ListBillingAccountsResponse) GetNextPageToken() string {
 type ListProjectBillingInfoRequest struct {
 	// The resource name of the billing account associated with the projects that
 	// you want to list. For example, `billingAccounts/012345-567890-ABCDEF`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Requested page size. The maximum page size is 100; this is also the
 	// default.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying a page of results to be returned. This should be a
 	// `next_page_token` value returned from a previous `ListProjectBillingInfo`
 	// call. If unspecified, the first page of results is returned.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -378,11 +378,11 @@ func (m *ListProjectBillingInfoRequest) GetPageToken() string {
 type ListProjectBillingInfoResponse struct {
 	// A list of `ProjectBillingInfo` resources representing the projects
 	// associated with the billing account.
-	ProjectBillingInfo []*ProjectBillingInfo `protobuf:"bytes,1,rep,name=project_billing_info,json=projectBillingInfo" json:"project_billing_info,omitempty"`
+	ProjectBillingInfo []*ProjectBillingInfo `protobuf:"bytes,1,rep,name=project_billing_info,json=projectBillingInfo,proto3" json:"project_billing_info,omitempty"`
 	// A token to retrieve the next page of results. To retrieve the next page,
 	// call `ListProjectBillingInfo` again with the `page_token` field set to this
 	// value. This field is empty if there are no more results to retrieve.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -430,7 +430,7 @@ func (m *ListProjectBillingInfoResponse) GetNextPageToken() string {
 type GetProjectBillingInfoRequest struct {
 	// The resource name of the project for which billing information is
 	// retrieved. For example, `projects/tokyo-rain-123`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -471,10 +471,10 @@ func (m *GetProjectBillingInfoRequest) GetName() string {
 type UpdateProjectBillingInfoRequest struct {
 	// The resource name of the project associated with the billing information
 	// that you want to update. For example, `projects/tokyo-rain-123`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The new billing information for the project. Read-only fields are ignored;
 	// thus, you may leave empty all fields except `billing_account_name`.
-	ProjectBillingInfo   *ProjectBillingInfo `protobuf:"bytes,2,opt,name=project_billing_info,json=projectBillingInfo" json:"project_billing_info,omitempty"`
+	ProjectBillingInfo   *ProjectBillingInfo `protobuf:"bytes,2,opt,name=project_billing_info,json=projectBillingInfo,proto3" json:"project_billing_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -645,8 +645,7 @@ func (c *cloudBillingClient) UpdateProjectBillingInfo(ctx context.Context, in *U
 	return out, nil
 }
 
-// Server API for CloudBilling service
-
+// CloudBillingServer is the server API for CloudBilling service.
 type CloudBillingServer interface {
 	// Gets information about a billing account. The current authenticated user
 	// must be an [owner of the billing
diff --git a/googleapis/cloud/dataproc/v1/clusters.pb.go b/googleapis/cloud/dataproc/v1/clusters.pb.go
index d7a803ccf6fc848b7f0d32592228824c2ac2c54b..66c87b5f6519af48cb06f6cce1ac9c5e55b0a429 100644
--- a/googleapis/cloud/dataproc/v1/clusters.pb.go
+++ b/googleapis/cloud/dataproc/v1/clusters.pb.go
@@ -109,32 +109,32 @@ func (ClusterStatus_Substate) EnumDescriptor() ([]byte, []int) {
 // a cluster of Google Compute Engine instances.
 type Cluster struct {
 	// Required. The Google Cloud Platform project ID that the cluster belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The cluster name. Cluster names within a project must be
 	// unique. Names of deleted clusters can be reused.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Required. The cluster config. Note that Cloud Dataproc may set
 	// default values, and values may change when clusters are updated.
-	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config" json:"config,omitempty"`
+	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
 	// 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.
-	Labels map[string]string `protobuf:"bytes,8,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output-only. Cluster status.
-	Status *ClusterStatus `protobuf:"bytes,4,opt,name=status" json:"status,omitempty"`
+	Status *ClusterStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
 	// Output-only. The previous cluster status.
-	StatusHistory []*ClusterStatus `protobuf:"bytes,7,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*ClusterStatus `protobuf:"bytes,7,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc
 	// generates this value when it creates the cluster.
-	ClusterUuid string `protobuf:"bytes,6,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid string `protobuf:"bytes,6,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	// 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.
-	Metrics              *ClusterMetrics `protobuf:"bytes,9,opt,name=metrics" json:"metrics,omitempty"`
+	Metrics              *ClusterMetrics `protobuf:"bytes,9,opt,name=metrics,proto3" json:"metrics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -228,21 +228,21 @@ type ClusterConfig struct {
 	// 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.
-	ConfigBucket string `protobuf:"bytes,1,opt,name=config_bucket,json=configBucket" json:"config_bucket,omitempty"`
+	ConfigBucket string `protobuf:"bytes,1,opt,name=config_bucket,json=configBucket,proto3" json:"config_bucket,omitempty"`
 	// Required. The shared Google Compute Engine config settings for
 	// all instances in a cluster.
-	GceClusterConfig *GceClusterConfig `protobuf:"bytes,8,opt,name=gce_cluster_config,json=gceClusterConfig" json:"gce_cluster_config,omitempty"`
+	GceClusterConfig *GceClusterConfig `protobuf:"bytes,8,opt,name=gce_cluster_config,json=gceClusterConfig,proto3" json:"gce_cluster_config,omitempty"`
 	// Optional. The Google Compute Engine config settings for
 	// the master instance in a cluster.
-	MasterConfig *InstanceGroupConfig `protobuf:"bytes,9,opt,name=master_config,json=masterConfig" json:"master_config,omitempty"`
+	MasterConfig *InstanceGroupConfig `protobuf:"bytes,9,opt,name=master_config,json=masterConfig,proto3" json:"master_config,omitempty"`
 	// Optional. The Google Compute Engine config settings for
 	// worker instances in a cluster.
-	WorkerConfig *InstanceGroupConfig `protobuf:"bytes,10,opt,name=worker_config,json=workerConfig" json:"worker_config,omitempty"`
+	WorkerConfig *InstanceGroupConfig `protobuf:"bytes,10,opt,name=worker_config,json=workerConfig,proto3" json:"worker_config,omitempty"`
 	// Optional. The Google Compute Engine config settings for
 	// additional worker instances in a cluster.
-	SecondaryWorkerConfig *InstanceGroupConfig `protobuf:"bytes,12,opt,name=secondary_worker_config,json=secondaryWorkerConfig" json:"secondary_worker_config,omitempty"`
+	SecondaryWorkerConfig *InstanceGroupConfig `protobuf:"bytes,12,opt,name=secondary_worker_config,json=secondaryWorkerConfig,proto3" json:"secondary_worker_config,omitempty"`
 	// Optional. The config settings for software inside the cluster.
-	SoftwareConfig *SoftwareConfig `protobuf:"bytes,13,opt,name=software_config,json=softwareConfig" json:"software_config,omitempty"`
+	SoftwareConfig *SoftwareConfig `protobuf:"bytes,13,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"`
 	// 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
@@ -254,7 +254,7 @@ type ClusterConfig struct {
 	//     else
 	//       ... worker specific actions ...
 	//     fi
-	InitializationActions []*NodeInitializationAction `protobuf:"bytes,11,rep,name=initialization_actions,json=initializationActions" json:"initialization_actions,omitempty"`
+	InitializationActions []*NodeInitializationAction `protobuf:"bytes,11,rep,name=initialization_actions,json=initializationActions,proto3" json:"initialization_actions,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}                    `json:"-"`
 	XXX_unrecognized      []byte                      `json:"-"`
 	XXX_sizecache         int32                       `json:"-"`
@@ -347,7 +347,7 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`
 	// * `projects/[project_id]/zones/[zone]`
 	// * `us-central1-f`
-	ZoneUri string `protobuf:"bytes,1,opt,name=zone_uri,json=zoneUri" json:"zone_uri,omitempty"`
+	ZoneUri string `protobuf:"bytes,1,opt,name=zone_uri,json=zoneUri,proto3" json:"zone_uri,omitempty"`
 	// 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
@@ -359,7 +359,7 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`
 	// * `projects/[project_id]/regions/global/default`
 	// * `default`
-	NetworkUri string `protobuf:"bytes,2,opt,name=network_uri,json=networkUri" json:"network_uri,omitempty"`
+	NetworkUri string `protobuf:"bytes,2,opt,name=network_uri,json=networkUri,proto3" json:"network_uri,omitempty"`
 	// Optional. The Google Compute Engine subnetwork to be used for machine
 	// communications. Cannot be specified with network_uri.
 	//
@@ -368,14 +368,14 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`
 	// * `projects/[project_id]/regions/us-east1/sub0`
 	// * `sub0`
-	SubnetworkUri string `protobuf:"bytes,6,opt,name=subnetwork_uri,json=subnetworkUri" json:"subnetwork_uri,omitempty"`
+	SubnetworkUri string `protobuf:"bytes,6,opt,name=subnetwork_uri,json=subnetworkUri,proto3" json:"subnetwork_uri,omitempty"`
 	// 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.
-	InternalIpOnly bool `protobuf:"varint,7,opt,name=internal_ip_only,json=internalIpOnly" json:"internal_ip_only,omitempty"`
+	InternalIpOnly bool `protobuf:"varint,7,opt,name=internal_ip_only,json=internalIpOnly,proto3" json:"internal_ip_only,omitempty"`
 	// 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:
@@ -386,7 +386,7 @@ type GceClusterConfig struct {
 	// (see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts
 	// for more information).
 	// Example: `[account_id]@[project_id].iam.gserviceaccount.com`
-	ServiceAccount string `protobuf:"bytes,8,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,8,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// Optional. The URIs of service account scopes to be included in Google
 	// Compute Engine instances. The following base set of scopes is always
 	// included:
@@ -401,13 +401,13 @@ type GceClusterConfig struct {
 	// * https://www.googleapis.com/auth/bigtable.admin.table
 	// * https://www.googleapis.com/auth/bigtable.data
 	// * https://www.googleapis.com/auth/devstorage.full_control
-	ServiceAccountScopes []string `protobuf:"bytes,3,rep,name=service_account_scopes,json=serviceAccountScopes" json:"service_account_scopes,omitempty"`
+	ServiceAccountScopes []string `protobuf:"bytes,3,rep,name=service_account_scopes,json=serviceAccountScopes,proto3" json:"service_account_scopes,omitempty"`
 	// The Google Compute Engine tags to add to all instances (see
 	// [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
-	Tags []string `protobuf:"bytes,4,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
 	// The Google Compute Engine metadata entries to add to all instances (see
 	// [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
-	Metadata             map[string]string `protobuf:"bytes,5,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata             map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -498,14 +498,14 @@ func (m *GceClusterConfig) GetMetadata() map[string]string {
 type InstanceGroupConfig struct {
 	// Optional. The number of VM instances in the instance group.
 	// For master instance groups, must be set to 1.
-	NumInstances int32 `protobuf:"varint,1,opt,name=num_instances,json=numInstances" json:"num_instances,omitempty"`
+	NumInstances int32 `protobuf:"varint,1,opt,name=num_instances,json=numInstances,proto3" json:"num_instances,omitempty"`
 	// 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).
-	InstanceNames []string `protobuf:"bytes,2,rep,name=instance_names,json=instanceNames" json:"instance_names,omitempty"`
+	InstanceNames []string `protobuf:"bytes,2,rep,name=instance_names,json=instanceNames,proto3" json:"instance_names,omitempty"`
 	// Output-only. The Google Compute Engine image resource used for cluster
 	// instances. Inferred from `SoftwareConfig.image_version`.
-	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. The Google Compute Engine machine type used for cluster instances.
 	//
 	// A full URL, partial URI, or short name are valid. Examples:
@@ -513,21 +513,21 @@ type InstanceGroupConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`
 	// * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`
 	// * `n1-standard-2`
-	MachineTypeUri string `protobuf:"bytes,4,opt,name=machine_type_uri,json=machineTypeUri" json:"machine_type_uri,omitempty"`
+	MachineTypeUri string `protobuf:"bytes,4,opt,name=machine_type_uri,json=machineTypeUri,proto3" json:"machine_type_uri,omitempty"`
 	// Optional. Disk option config settings.
-	DiskConfig *DiskConfig `protobuf:"bytes,5,opt,name=disk_config,json=diskConfig" json:"disk_config,omitempty"`
+	DiskConfig *DiskConfig `protobuf:"bytes,5,opt,name=disk_config,json=diskConfig,proto3" json:"disk_config,omitempty"`
 	// Optional. Specifies that this instance group contains preemptible instances.
-	IsPreemptible bool `protobuf:"varint,6,opt,name=is_preemptible,json=isPreemptible" json:"is_preemptible,omitempty"`
+	IsPreemptible bool `protobuf:"varint,6,opt,name=is_preemptible,json=isPreemptible,proto3" json:"is_preemptible,omitempty"`
 	// Output-only. The config for Google Compute Engine Instance Group
 	// Manager that manages this group.
 	// This is only used for preemptible instance groups.
-	ManagedGroupConfig *ManagedGroupConfig `protobuf:"bytes,7,opt,name=managed_group_config,json=managedGroupConfig" json:"managed_group_config,omitempty"`
+	ManagedGroupConfig *ManagedGroupConfig `protobuf:"bytes,7,opt,name=managed_group_config,json=managedGroupConfig,proto3" json:"managed_group_config,omitempty"`
 	// 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         []*AcceleratorConfig `protobuf:"bytes,8,rep,name=accelerators" json:"accelerators,omitempty"`
+	Accelerators         []*AcceleratorConfig `protobuf:"bytes,8,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -617,9 +617,9 @@ func (m *InstanceGroupConfig) GetAccelerators() []*AcceleratorConfig {
 type ManagedGroupConfig struct {
 	// Output-only. The name of the Instance Template used for the Managed
 	// Instance Group.
-	InstanceTemplateName string `protobuf:"bytes,1,opt,name=instance_template_name,json=instanceTemplateName" json:"instance_template_name,omitempty"`
+	InstanceTemplateName string `protobuf:"bytes,1,opt,name=instance_template_name,json=instanceTemplateName,proto3" json:"instance_template_name,omitempty"`
 	// Output-only. The name of the Instance Group Manager for this group.
-	InstanceGroupManagerName string   `protobuf:"bytes,2,opt,name=instance_group_manager_name,json=instanceGroupManagerName" json:"instance_group_manager_name,omitempty"`
+	InstanceGroupManagerName string   `protobuf:"bytes,2,opt,name=instance_group_manager_name,json=instanceGroupManagerName,proto3" json:"instance_group_manager_name,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -674,9 +674,9 @@ type AcceleratorConfig struct {
 	// * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80`
 	// * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80`
 	// * `nvidia-tesla-k80`
-	AcceleratorTypeUri string `protobuf:"bytes,1,opt,name=accelerator_type_uri,json=acceleratorTypeUri" json:"accelerator_type_uri,omitempty"`
+	AcceleratorTypeUri string `protobuf:"bytes,1,opt,name=accelerator_type_uri,json=acceleratorTypeUri,proto3" json:"accelerator_type_uri,omitempty"`
 	// The number of the accelerator cards of this type exposed to this instance.
-	AcceleratorCount     int32    `protobuf:"varint,2,opt,name=accelerator_count,json=acceleratorCount" json:"accelerator_count,omitempty"`
+	AcceleratorCount     int32    `protobuf:"varint,2,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -723,14 +723,14 @@ func (m *AcceleratorConfig) GetAcceleratorCount() int32 {
 // Specifies the config of disk options for a group of VM instances.
 type DiskConfig struct {
 	// Optional. Size in GB of the boot disk (default is 500GB).
-	BootDiskSizeGb int32 `protobuf:"varint,1,opt,name=boot_disk_size_gb,json=bootDiskSizeGb" json:"boot_disk_size_gb,omitempty"`
+	BootDiskSizeGb int32 `protobuf:"varint,1,opt,name=boot_disk_size_gb,json=bootDiskSizeGb,proto3" json:"boot_disk_size_gb,omitempty"`
 	// 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.
-	NumLocalSsds         int32    `protobuf:"varint,2,opt,name=num_local_ssds,json=numLocalSsds" json:"num_local_ssds,omitempty"`
+	NumLocalSsds         int32    `protobuf:"varint,2,opt,name=num_local_ssds,json=numLocalSsds,proto3" json:"num_local_ssds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -778,12 +778,12 @@ func (m *DiskConfig) GetNumLocalSsds() int32 {
 // timeout period for executable completion.
 type NodeInitializationAction struct {
 	// Required. Google Cloud Storage URI of executable file.
-	ExecutableFile string `protobuf:"bytes,1,opt,name=executable_file,json=executableFile" json:"executable_file,omitempty"`
+	ExecutableFile string `protobuf:"bytes,1,opt,name=executable_file,json=executableFile,proto3" json:"executable_file,omitempty"`
 	// 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.
-	ExecutionTimeout     *duration.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout" json:"execution_timeout,omitempty"`
+	ExecutionTimeout     *duration.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -830,14 +830,14 @@ func (m *NodeInitializationAction) GetExecutionTimeout() *duration.Duration {
 // The status of a cluster and its instances.
 type ClusterStatus struct {
 	// Output-only. The cluster's state.
-	State ClusterStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1.ClusterStatus_State" json:"state,omitempty"`
+	State ClusterStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1.ClusterStatus_State" json:"state,omitempty"`
 	// Output-only. Optional details of cluster's state.
-	Detail string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"`
+	Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	// Output-only. Time when this state was entered.
-	StateStartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	// Output-only. Additional state information that includes
 	// status reported by the agent.
-	Substate             ClusterStatus_Substate `protobuf:"varint,4,opt,name=substate,enum=google.cloud.dataproc.v1.ClusterStatus_Substate" json:"substate,omitempty"`
+	Substate             ClusterStatus_Substate `protobuf:"varint,4,opt,name=substate,proto3,enum=google.cloud.dataproc.v1.ClusterStatus_Substate" json:"substate,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -900,7 +900,7 @@ type SoftwareConfig struct {
 	// 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](/dataproc/versioning)).
-	ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion" json:"image_version,omitempty"`
+	ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"`
 	// Optional. The properties to set on daemon config files.
 	//
 	// Property keys are specified in `prefix:property` format, such as
@@ -919,7 +919,7 @@ type SoftwareConfig struct {
 	//
 	// For more information, see
 	// [Cluster properties](/dataproc/docs/concepts/cluster-properties).
-	Properties           map[string]string `protobuf:"bytes,2,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties           map[string]string `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -969,9 +969,9 @@ func (m *SoftwareConfig) GetProperties() map[string]string {
 // be changed before final release.
 type ClusterMetrics struct {
 	// The HDFS metrics.
-	HdfsMetrics map[string]int64 `protobuf:"bytes,1,rep,name=hdfs_metrics,json=hdfsMetrics" json:"hdfs_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	HdfsMetrics map[string]int64 `protobuf:"bytes,1,rep,name=hdfs_metrics,json=hdfsMetrics,proto3" json:"hdfs_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	// The YARN metrics.
-	YarnMetrics          map[string]int64 `protobuf:"bytes,2,rep,name=yarn_metrics,json=yarnMetrics" json:"yarn_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	YarnMetrics          map[string]int64 `protobuf:"bytes,2,rep,name=yarn_metrics,json=yarnMetrics,proto3" json:"yarn_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -1019,11 +1019,11 @@ func (m *ClusterMetrics) GetYarnMetrics() map[string]int64 {
 type CreateClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster to create.
-	Cluster              *Cluster `protobuf:"bytes,2,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster              *Cluster `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1078,13 +1078,13 @@ func (m *CreateClusterRequest) GetCluster() *Cluster {
 type UpdateClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project the
 	// cluster belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,5,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Required. The changes to the cluster.
-	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// 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
@@ -1132,7 +1132,7 @@ type UpdateClusterRequest struct {
 	//  </tr>
 	//  </tbody>
 	//  </table>
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1201,11 +1201,11 @@ func (m *UpdateClusterRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1260,11 +1260,11 @@ func (m *DeleteClusterRequest) GetClusterName() string {
 type GetClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1319,9 +1319,9 @@ func (m *GetClusterRequest) GetClusterName() string {
 type ListClustersRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,4,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
 	// Optional. A filter constraining the clusters to list. Filters are
 	// case-sensitive and have the following syntax:
 	//
@@ -1341,11 +1341,11 @@ type ListClustersRequest struct {
 	//
 	// status.state = ACTIVE AND clusterName = mycluster
 	// AND labels.env = staging AND labels.starred = *
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Optional. The standard List page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The standard List page token.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1413,11 +1413,11 @@ func (m *ListClustersRequest) GetPageToken() string {
 // The list of all clusters in a project.
 type ListClustersResponse struct {
 	// Output-only. The clusters in the project.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1465,11 +1465,11 @@ func (m *ListClustersResponse) GetNextPageToken() string {
 type DiagnoseClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1525,7 +1525,7 @@ type DiagnoseClusterResults struct {
 	// Output-only. The Google Cloud Storage URI of the diagnostic output.
 	// The output report is a plain text file with a summary of collected
 	// diagnostics.
-	OutputUri            string   `protobuf:"bytes,1,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri            string   `protobuf:"bytes,1,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1681,8 +1681,7 @@ func (c *clusterControllerClient) DiagnoseCluster(ctx context.Context, in *Diagn
 	return out, nil
 }
 
-// Server API for ClusterController service
-
+// ClusterControllerServer is the server API for ClusterController service.
 type ClusterControllerServer interface {
 	// Creates a cluster in a project.
 	CreateCluster(context.Context, *CreateClusterRequest) (*longrunning.Operation, error)
diff --git a/googleapis/cloud/dataproc/v1/jobs.pb.go b/googleapis/cloud/dataproc/v1/jobs.pb.go
index 316e4b10dc718e41bc43bc02add6c56f414b0a3c..414c146f7c736f00668a1cc520704038ead81356 100644
--- a/googleapis/cloud/dataproc/v1/jobs.pb.go
+++ b/googleapis/cloud/dataproc/v1/jobs.pb.go
@@ -280,7 +280,7 @@ type LoggingConfig struct {
 	// "root" package name to configure rootLogger.
 	// Examples:
 	//   'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-	DriverLogLevels      map[string]LoggingConfig_Level `protobuf:"bytes,2,rep,name=driver_log_levels,json=driverLogLevels" json:"driver_log_levels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.cloud.dataproc.v1.LoggingConfig_Level"`
+	DriverLogLevels      map[string]LoggingConfig_Level `protobuf:"bytes,2,rep,name=driver_log_levels,json=driverLogLevels,proto3" json:"driver_log_levels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.cloud.dataproc.v1.LoggingConfig_Level"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -334,25 +334,25 @@ type HadoopJob struct {
 	// 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.
-	Args []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. Jar file URIs to add to the CLASSPATHs of the
 	// Hadoop driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -387,10 +387,10 @@ type isHadoopJob_Driver interface {
 }
 
 type HadoopJob_MainJarFileUri struct {
-	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,oneof"`
+	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"`
 }
 type HadoopJob_MainClass struct {
-	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,oneof"`
+	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"`
 }
 
 func (*HadoopJob_MainJarFileUri) isHadoopJob_Driver() {}
@@ -540,24 +540,24 @@ type SparkJob struct {
 	// 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 []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. HCFS URIs of jar files to add to the CLASSPATHs of the
 	// Spark driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. HCFS URIs of files to be copied to the working directory of
 	// Spark drivers and distributed tasks. Useful for naively parallel tasks.
-	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -592,10 +592,10 @@ type isSparkJob_Driver interface {
 }
 
 type SparkJob_MainJarFileUri struct {
-	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,oneof"`
+	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"`
 }
 type SparkJob_MainClass struct {
-	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,oneof"`
+	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"`
 }
 
 func (*SparkJob_MainJarFileUri) isSparkJob_Driver() {}
@@ -736,30 +736,30 @@ func _SparkJob_OneofSizer(msg proto.Message) (n int) {
 type PySparkJob struct {
 	// Required. The HCFS URI of the main Python file to use as the driver. Must
 	// be a .py file.
-	MainPythonFileUri string `protobuf:"bytes,1,opt,name=main_python_file_uri,json=mainPythonFileUri" json:"main_python_file_uri,omitempty"`
+	MainPythonFileUri string `protobuf:"bytes,1,opt,name=main_python_file_uri,json=mainPythonFileUri,proto3" json:"main_python_file_uri,omitempty"`
 	// 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 []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. HCFS file URIs of Python files to pass to the PySpark
 	// framework. Supported file types: .py, .egg, and .zip.
-	PythonFileUris []string `protobuf:"bytes,3,rep,name=python_file_uris,json=pythonFileUris" json:"python_file_uris,omitempty"`
+	PythonFileUris []string `protobuf:"bytes,3,rep,name=python_file_uris,json=pythonFileUris,proto3" json:"python_file_uris,omitempty"`
 	// Optional. HCFS URIs of jar files to add to the CLASSPATHs of the
 	// Python driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. HCFS URIs of files to be copied to the working directory of
 	// Python drivers and distributed tasks. Useful for naively parallel tasks.
-	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// Optional. HCFS URIs of archives to be extracted in the working directory of
 	// .jar, .tar, .tar.gz, .tgz, and .zip.
-	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -861,7 +861,7 @@ type QueryList struct {
 	//         ]
 	//       }
 	//     }
-	Queries              []string `protobuf:"bytes,1,rep,name=queries" json:"queries,omitempty"`
+	Queries              []string `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -911,19 +911,19 @@ type HiveJob struct {
 	// 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.
-	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure" json:"continue_on_failure,omitempty"`
+	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"`
 	// Optional. Mapping of query variable names to values (equivalent to the
 	// Hive command: `SET name="value";`).
-	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Properties map[string]string `protobuf:"bytes,5,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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          []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris          []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -958,10 +958,10 @@ type isHiveJob_Queries interface {
 }
 
 type HiveJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type HiveJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*HiveJob_QueryFileUri) isHiveJob_Queries() {}
@@ -1098,15 +1098,15 @@ type SparkSqlJob struct {
 	Queries isSparkSqlJob_Queries `protobuf_oneof:"queries"`
 	// Optional. Mapping of query variable names to values (equivalent to the
 	// Spark SQL command: SET `name="value";`).
-	ScriptVariables map[string]string `protobuf:"bytes,3,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,3,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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 map[string]string `protobuf:"bytes,4,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
-	JarFileUris []string `protobuf:"bytes,56,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,56,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1141,10 +1141,10 @@ type isSparkSqlJob_Queries interface {
 }
 
 type SparkSqlJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type SparkSqlJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*SparkSqlJob_QueryFileUri) isSparkSqlJob_Queries() {}
@@ -1282,20 +1282,20 @@ type PigJob struct {
 	// 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.
-	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure" json:"continue_on_failure,omitempty"`
+	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"`
 	// Optional. Mapping of query variable names to values (equivalent to the Pig
 	// command: `name=[value]`).
-	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Properties map[string]string `protobuf:"bytes,5,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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 []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1330,10 +1330,10 @@ type isPigJob_Queries interface {
 }
 
 type PigJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type PigJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*PigJob_QueryFileUri) isPigJob_Queries() {}
@@ -1468,10 +1468,10 @@ func _PigJob_OneofSizer(msg proto.Message) (n int) {
 // Cloud Dataproc job config.
 type JobPlacement struct {
 	// Required. The name of the cluster where the job will be submitted.
-	ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Output-only. A cluster UUID generated by the Cloud Dataproc service when
 	// the job is submitted.
-	ClusterUuid          string   `protobuf:"bytes,2,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid          string   `protobuf:"bytes,2,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1518,15 +1518,15 @@ func (m *JobPlacement) GetClusterUuid() string {
 // Cloud Dataproc job status.
 type JobStatus struct {
 	// Output-only. A state message specifying the overall job state.
-	State JobStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1.JobStatus_State" json:"state,omitempty"`
+	State JobStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1.JobStatus_State" json:"state,omitempty"`
 	// Output-only. Optional job state details, such as an error
 	// description if the state is <code>ERROR</code>.
-	Details string `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
+	Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	// Output-only. The time when this state was entered.
-	StateStartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	// Output-only. Additional state information, which includes
 	// status reported by the agent.
-	Substate             JobStatus_Substate `protobuf:"varint,7,opt,name=substate,enum=google.cloud.dataproc.v1.JobStatus_Substate" json:"substate,omitempty"`
+	Substate             JobStatus_Substate `protobuf:"varint,7,opt,name=substate,proto3,enum=google.cloud.dataproc.v1.JobStatus_Substate" json:"substate,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1588,13 +1588,13 @@ func (m *JobStatus) GetSubstate() JobStatus_Substate {
 type JobReference struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// 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.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1645,16 +1645,16 @@ func (m *JobReference) GetJobId() string {
 // be changed before final release.
 type YarnApplication struct {
 	// Required. The application name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The application state.
-	State YarnApplication_State `protobuf:"varint,2,opt,name=state,enum=google.cloud.dataproc.v1.YarnApplication_State" json:"state,omitempty"`
+	State YarnApplication_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.dataproc.v1.YarnApplication_State" json:"state,omitempty"`
 	// Required. The numerical progress of the application, from 1 to 100.
-	Progress float32 `protobuf:"fixed32,3,opt,name=progress" json:"progress,omitempty"`
+	Progress float32 `protobuf:"fixed32,3,opt,name=progress,proto3" json:"progress,omitempty"`
 	// 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.
-	TrackingUrl          string   `protobuf:"bytes,4,opt,name=tracking_url,json=trackingUrl" json:"tracking_url,omitempty"`
+	TrackingUrl          string   `protobuf:"bytes,4,opt,name=tracking_url,json=trackingUrl,proto3" json:"tracking_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1718,10 +1718,10 @@ type Job struct {
 	// 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>.
-	Reference *JobReference `protobuf:"bytes,1,opt,name=reference" json:"reference,omitempty"`
+	Reference *JobReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
 	// Required. Job information, including how, when, and where to
 	// run the job.
-	Placement *JobPlacement `protobuf:"bytes,2,opt,name=placement" json:"placement,omitempty"`
+	Placement *JobPlacement `protobuf:"bytes,2,opt,name=placement,proto3" json:"placement,omitempty"`
 	// Required. The application/framework-specific portion of the job.
 	//
 	// Types that are valid to be assigned to TypeJob:
@@ -1735,30 +1735,30 @@ type Job struct {
 	// 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.
-	Status *JobStatus `protobuf:"bytes,8,opt,name=status" json:"status,omitempty"`
+	Status *JobStatus `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
 	// Output-only. The previous job status.
-	StatusHistory []*JobStatus `protobuf:"bytes,13,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*JobStatus `protobuf:"bytes,13,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// 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 []*YarnApplication `protobuf:"bytes,9,rep,name=yarn_applications,json=yarnApplications" json:"yarn_applications,omitempty"`
+	YarnApplications []*YarnApplication `protobuf:"bytes,9,rep,name=yarn_applications,json=yarnApplications,proto3" json:"yarn_applications,omitempty"`
 	// Output-only. A URI pointing to the location of the stdout of the job's
 	// driver program.
-	DriverOutputResourceUri string `protobuf:"bytes,17,opt,name=driver_output_resource_uri,json=driverOutputResourceUri" json:"driver_output_resource_uri,omitempty"`
+	DriverOutputResourceUri string `protobuf:"bytes,17,opt,name=driver_output_resource_uri,json=driverOutputResourceUri,proto3" json:"driver_output_resource_uri,omitempty"`
 	// 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 string `protobuf:"bytes,15,opt,name=driver_control_files_uri,json=driverControlFilesUri" json:"driver_control_files_uri,omitempty"`
+	DriverControlFilesUri string `protobuf:"bytes,15,opt,name=driver_control_files_uri,json=driverControlFilesUri,proto3" json:"driver_control_files_uri,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,18,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. Job scheduling configuration.
-	Scheduling           *JobScheduling `protobuf:"bytes,20,opt,name=scheduling" json:"scheduling,omitempty"`
+	Scheduling           *JobScheduling `protobuf:"bytes,20,opt,name=scheduling,proto3" json:"scheduling,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1793,22 +1793,22 @@ type isJob_TypeJob interface {
 }
 
 type Job_HadoopJob struct {
-	HadoopJob *HadoopJob `protobuf:"bytes,3,opt,name=hadoop_job,json=hadoopJob,oneof"`
+	HadoopJob *HadoopJob `protobuf:"bytes,3,opt,name=hadoop_job,json=hadoopJob,proto3,oneof"`
 }
 type Job_SparkJob struct {
-	SparkJob *SparkJob `protobuf:"bytes,4,opt,name=spark_job,json=sparkJob,oneof"`
+	SparkJob *SparkJob `protobuf:"bytes,4,opt,name=spark_job,json=sparkJob,proto3,oneof"`
 }
 type Job_PysparkJob struct {
-	PysparkJob *PySparkJob `protobuf:"bytes,5,opt,name=pyspark_job,json=pysparkJob,oneof"`
+	PysparkJob *PySparkJob `protobuf:"bytes,5,opt,name=pyspark_job,json=pysparkJob,proto3,oneof"`
 }
 type Job_HiveJob struct {
-	HiveJob *HiveJob `protobuf:"bytes,6,opt,name=hive_job,json=hiveJob,oneof"`
+	HiveJob *HiveJob `protobuf:"bytes,6,opt,name=hive_job,json=hiveJob,proto3,oneof"`
 }
 type Job_PigJob struct {
-	PigJob *PigJob `protobuf:"bytes,7,opt,name=pig_job,json=pigJob,oneof"`
+	PigJob *PigJob `protobuf:"bytes,7,opt,name=pig_job,json=pigJob,proto3,oneof"`
 }
 type Job_SparkSqlJob struct {
-	SparkSqlJob *SparkSqlJob `protobuf:"bytes,12,opt,name=spark_sql_job,json=sparkSqlJob,oneof"`
+	SparkSqlJob *SparkSqlJob `protobuf:"bytes,12,opt,name=spark_sql_job,json=sparkSqlJob,proto3,oneof"`
 }
 
 func (*Job_HadoopJob) isJob_TypeJob()   {}
@@ -2093,7 +2093,7 @@ type JobScheduling struct {
 	// 4 times within 10 minute window.
 	//
 	// Maximum value is 10.
-	MaxFailuresPerHour   int32    `protobuf:"varint,1,opt,name=max_failures_per_hour,json=maxFailuresPerHour" json:"max_failures_per_hour,omitempty"`
+	MaxFailuresPerHour   int32    `protobuf:"varint,1,opt,name=max_failures_per_hour,json=maxFailuresPerHour,proto3" json:"max_failures_per_hour,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2134,11 +2134,11 @@ func (m *JobScheduling) GetMaxFailuresPerHour() int32 {
 type SubmitJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job resource.
-	Job                  *Job     `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2193,11 +2193,11 @@ func (m *SubmitJobRequest) GetJob() *Job {
 type GetJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2252,22 +2252,22 @@ func (m *GetJobRequest) GetJobId() string {
 type ListJobsRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,6,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,6,opt,name=region,proto3" json:"region,omitempty"`
 	// Optional. The number of results to return in each response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The page token, returned by a previous call, to request the
 	// next page of results.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional. If set, the returned jobs list includes only jobs that were
 	// submitted to the named cluster.
-	ClusterName string `protobuf:"bytes,4,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,4,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Optional. Specifies enumerated categories of jobs to list.
 	// (default = match ALL jobs).
 	//
 	// If `filter` is provided, `jobStateMatcher` will be ignored.
-	JobStateMatcher ListJobsRequest_JobStateMatcher `protobuf:"varint,5,opt,name=job_state_matcher,json=jobStateMatcher,enum=google.cloud.dataproc.v1.ListJobsRequest_JobStateMatcher" json:"job_state_matcher,omitempty"`
+	JobStateMatcher ListJobsRequest_JobStateMatcher `protobuf:"varint,5,opt,name=job_state_matcher,json=jobStateMatcher,proto3,enum=google.cloud.dataproc.v1.ListJobsRequest_JobStateMatcher" json:"job_state_matcher,omitempty"`
 	// Optional. A filter constraining the jobs to list. Filters are
 	// case-sensitive and have the following syntax:
 	//
@@ -2282,7 +2282,7 @@ type ListJobsRequest struct {
 	// Example filter:
 	//
 	// status.state = ACTIVE AND labels.env = staging AND labels.starred = *
-	Filter               string   `protobuf:"bytes,7,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2365,20 +2365,20 @@ func (m *ListJobsRequest) GetFilter() string {
 type UpdateJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,2,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	// Required. The changes to the job.
-	Job *Job `protobuf:"bytes,4,opt,name=job" json:"job,omitempty"`
+	Job *Job `protobuf:"bytes,4,opt,name=job,proto3" json:"job,omitempty"`
 	// 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           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2446,11 +2446,11 @@ func (m *UpdateJobRequest) GetUpdateMask() *field_mask.FieldMask {
 // A list of jobs in a project.
 type ListJobsResponse struct {
 	// Output-only. Jobs list.
-	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs" json:"jobs,omitempty"`
+	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
 	// 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>.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2498,11 +2498,11 @@ func (m *ListJobsResponse) GetNextPageToken() string {
 type CancelJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2557,11 +2557,11 @@ func (m *CancelJobRequest) GetJobId() string {
 type DeleteJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2744,8 +2744,7 @@ func (c *jobControllerClient) DeleteJob(ctx context.Context, in *DeleteJobReques
 	return out, nil
 }
 
-// Server API for JobController service
-
+// JobControllerServer is the server API for JobController service.
 type JobControllerServer interface {
 	// Submits a job to a cluster.
 	SubmitJob(context.Context, *SubmitJobRequest) (*Job, error)
diff --git a/googleapis/cloud/dataproc/v1/operations.pb.go b/googleapis/cloud/dataproc/v1/operations.pb.go
index e90f2fff0bda70d676591dc335cbe92c0134e216..b64cec48577b6d2fdeed630bf18e4ed28dfb75c6 100644
--- a/googleapis/cloud/dataproc/v1/operations.pb.go
+++ b/googleapis/cloud/dataproc/v1/operations.pb.go
@@ -59,13 +59,13 @@ func (ClusterOperationStatus_State) EnumDescriptor() ([]byte, []int) {
 // The status of the operation.
 type ClusterOperationStatus struct {
 	// Output-only. A message containing the operation state.
-	State ClusterOperationStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1.ClusterOperationStatus_State" json:"state,omitempty"`
+	State ClusterOperationStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1.ClusterOperationStatus_State" json:"state,omitempty"`
 	// Output-only. A message containing the detailed operation state.
-	InnerState string `protobuf:"bytes,2,opt,name=inner_state,json=innerState" json:"inner_state,omitempty"`
+	InnerState string `protobuf:"bytes,2,opt,name=inner_state,json=innerState,proto3" json:"inner_state,omitempty"`
 	// Output-only.A message containing any operation metadata details.
-	Details string `protobuf:"bytes,3,opt,name=details" json:"details,omitempty"`
+	Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"`
 	// Output-only. The time this state was entered.
-	StateStartTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -126,21 +126,21 @@ func (m *ClusterOperationStatus) GetStateStartTime() *timestamp.Timestamp {
 // Metadata describing the operation.
 type ClusterOperationMetadata struct {
 	// Output-only. Name of the cluster for the operation.
-	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Output-only. Cluster UUID for the operation.
-	ClusterUuid string `protobuf:"bytes,8,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid string `protobuf:"bytes,8,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	// Output-only. Current operation status.
-	Status *ClusterOperationStatus `protobuf:"bytes,9,opt,name=status" json:"status,omitempty"`
+	Status *ClusterOperationStatus `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"`
 	// Output-only. The previous operation status.
-	StatusHistory []*ClusterOperationStatus `protobuf:"bytes,10,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*ClusterOperationStatus `protobuf:"bytes,10,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// Output-only. The operation type.
-	OperationType string `protobuf:"bytes,11,opt,name=operation_type,json=operationType" json:"operation_type,omitempty"`
+	OperationType string `protobuf:"bytes,11,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"`
 	// Output-only. Short description of operation.
-	Description string `protobuf:"bytes,12,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"`
 	// Output-only. Labels associated with the operation
-	Labels map[string]string `protobuf:"bytes,13,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,13,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output-only. Errors encountered during operation execution.
-	Warnings             []string `protobuf:"bytes,14,rep,name=warnings" json:"warnings,omitempty"`
+	Warnings             []string `protobuf:"bytes,14,rep,name=warnings,proto3" json:"warnings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/dataproc/v1beta2/clusters.pb.go b/googleapis/cloud/dataproc/v1beta2/clusters.pb.go
index 270a446a4961386d03d3ed6ecd46c316e1080bc4..d36ce384560fc944b5bf841087d3d778569b9174 100644
--- a/googleapis/cloud/dataproc/v1beta2/clusters.pb.go
+++ b/googleapis/cloud/dataproc/v1beta2/clusters.pb.go
@@ -111,32 +111,32 @@ func (ClusterStatus_Substate) EnumDescriptor() ([]byte, []int) {
 // a cluster of Compute Engine instances.
 type Cluster struct {
 	// Required. The Google Cloud Platform project ID that the cluster belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The cluster name. Cluster names within a project must be
 	// unique. Names of deleted clusters can be reused.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Required. The cluster config. Note that Cloud Dataproc may set
 	// default values, and values may change when clusters are updated.
-	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config" json:"config,omitempty"`
+	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
 	// 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.
-	Labels map[string]string `protobuf:"bytes,8,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output only. Cluster status.
-	Status *ClusterStatus `protobuf:"bytes,4,opt,name=status" json:"status,omitempty"`
+	Status *ClusterStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
 	// Output only. The previous cluster status.
-	StatusHistory []*ClusterStatus `protobuf:"bytes,7,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*ClusterStatus `protobuf:"bytes,7,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// Output only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc
 	// generates this value when it creates the cluster.
-	ClusterUuid string `protobuf:"bytes,6,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid string `protobuf:"bytes,6,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	// 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.
-	Metrics              *ClusterMetrics `protobuf:"bytes,9,opt,name=metrics" json:"metrics,omitempty"`
+	Metrics              *ClusterMetrics `protobuf:"bytes,9,opt,name=metrics,proto3" json:"metrics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -230,23 +230,23 @@ type ClusterConfig struct {
 	// 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.
-	ConfigBucket string `protobuf:"bytes,1,opt,name=config_bucket,json=configBucket" json:"config_bucket,omitempty"`
+	ConfigBucket string `protobuf:"bytes,1,opt,name=config_bucket,json=configBucket,proto3" json:"config_bucket,omitempty"`
 	// Required. The shared Compute Engine config settings for
 	// all instances in a cluster.
-	GceClusterConfig *GceClusterConfig `protobuf:"bytes,8,opt,name=gce_cluster_config,json=gceClusterConfig" json:"gce_cluster_config,omitempty"`
+	GceClusterConfig *GceClusterConfig `protobuf:"bytes,8,opt,name=gce_cluster_config,json=gceClusterConfig,proto3" json:"gce_cluster_config,omitempty"`
 	// Optional. The Compute Engine config settings for
 	// the master instance in a cluster.
-	MasterConfig *InstanceGroupConfig `protobuf:"bytes,9,opt,name=master_config,json=masterConfig" json:"master_config,omitempty"`
+	MasterConfig *InstanceGroupConfig `protobuf:"bytes,9,opt,name=master_config,json=masterConfig,proto3" json:"master_config,omitempty"`
 	// Optional. The Compute Engine config settings for
 	// worker instances in a cluster.
-	WorkerConfig *InstanceGroupConfig `protobuf:"bytes,10,opt,name=worker_config,json=workerConfig" json:"worker_config,omitempty"`
+	WorkerConfig *InstanceGroupConfig `protobuf:"bytes,10,opt,name=worker_config,json=workerConfig,proto3" json:"worker_config,omitempty"`
 	// Optional. The Compute Engine config settings for
 	// additional worker instances in a cluster.
-	SecondaryWorkerConfig *InstanceGroupConfig `protobuf:"bytes,12,opt,name=secondary_worker_config,json=secondaryWorkerConfig" json:"secondary_worker_config,omitempty"`
+	SecondaryWorkerConfig *InstanceGroupConfig `protobuf:"bytes,12,opt,name=secondary_worker_config,json=secondaryWorkerConfig,proto3" json:"secondary_worker_config,omitempty"`
 	// Optional. The config settings for software inside the cluster.
-	SoftwareConfig *SoftwareConfig `protobuf:"bytes,13,opt,name=software_config,json=softwareConfig" json:"software_config,omitempty"`
+	SoftwareConfig *SoftwareConfig `protobuf:"bytes,13,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"`
 	// Optional. The config setting for auto delete cluster schedule.
-	LifecycleConfig *LifecycleConfig `protobuf:"bytes,14,opt,name=lifecycle_config,json=lifecycleConfig" json:"lifecycle_config,omitempty"`
+	LifecycleConfig *LifecycleConfig `protobuf:"bytes,14,opt,name=lifecycle_config,json=lifecycleConfig,proto3" json:"lifecycle_config,omitempty"`
 	// 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
@@ -258,7 +258,7 @@ type ClusterConfig struct {
 	//     else
 	//       ... worker specific actions ...
 	//     fi
-	InitializationActions []*NodeInitializationAction `protobuf:"bytes,11,rep,name=initialization_actions,json=initializationActions" json:"initialization_actions,omitempty"`
+	InitializationActions []*NodeInitializationAction `protobuf:"bytes,11,rep,name=initialization_actions,json=initializationActions,proto3" json:"initialization_actions,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}                    `json:"-"`
 	XXX_unrecognized      []byte                      `json:"-"`
 	XXX_sizecache         int32                       `json:"-"`
@@ -358,7 +358,7 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`
 	// * `projects/[project_id]/zones/[zone]`
 	// * `us-central1-f`
-	ZoneUri string `protobuf:"bytes,1,opt,name=zone_uri,json=zoneUri" json:"zone_uri,omitempty"`
+	ZoneUri string `protobuf:"bytes,1,opt,name=zone_uri,json=zoneUri,proto3" json:"zone_uri,omitempty"`
 	// Optional. The 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
@@ -370,7 +370,7 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`
 	// * `projects/[project_id]/regions/global/default`
 	// * `default`
-	NetworkUri string `protobuf:"bytes,2,opt,name=network_uri,json=networkUri" json:"network_uri,omitempty"`
+	NetworkUri string `protobuf:"bytes,2,opt,name=network_uri,json=networkUri,proto3" json:"network_uri,omitempty"`
 	// Optional. The Compute Engine subnetwork to be used for machine
 	// communications. Cannot be specified with network_uri.
 	//
@@ -379,14 +379,14 @@ type GceClusterConfig struct {
 	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`
 	// * `projects/[project_id]/regions/us-east1/sub0`
 	// * `sub0`
-	SubnetworkUri string `protobuf:"bytes,6,opt,name=subnetwork_uri,json=subnetworkUri" json:"subnetwork_uri,omitempty"`
+	SubnetworkUri string `protobuf:"bytes,6,opt,name=subnetwork_uri,json=subnetworkUri,proto3" json:"subnetwork_uri,omitempty"`
 	// 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.
-	InternalIpOnly bool `protobuf:"varint,7,opt,name=internal_ip_only,json=internalIpOnly" json:"internal_ip_only,omitempty"`
+	InternalIpOnly bool `protobuf:"varint,7,opt,name=internal_ip_only,json=internalIpOnly,proto3" json:"internal_ip_only,omitempty"`
 	// Optional. The service account of the instances. Defaults to the default
 	// Compute Engine service account. Custom service accounts need
 	// permissions equivalent to the following IAM roles:
@@ -397,7 +397,7 @@ type GceClusterConfig struct {
 	// (see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts
 	// for more information).
 	// Example: `[account_id]@[project_id].iam.gserviceaccount.com`
-	ServiceAccount string `protobuf:"bytes,8,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,8,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// Optional. The URIs of service account scopes to be included in
 	// Compute Engine instances. The following base set of scopes is always
 	// included:
@@ -412,13 +412,13 @@ type GceClusterConfig struct {
 	// * https://www.googleapis.com/auth/bigtable.admin.table
 	// * https://www.googleapis.com/auth/bigtable.data
 	// * https://www.googleapis.com/auth/devstorage.full_control
-	ServiceAccountScopes []string `protobuf:"bytes,3,rep,name=service_account_scopes,json=serviceAccountScopes" json:"service_account_scopes,omitempty"`
+	ServiceAccountScopes []string `protobuf:"bytes,3,rep,name=service_account_scopes,json=serviceAccountScopes,proto3" json:"service_account_scopes,omitempty"`
 	// The Compute Engine tags to add to all instances (see
 	// [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
-	Tags []string `protobuf:"bytes,4,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
 	// The Compute Engine metadata entries to add to all instances (see
 	// [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
-	Metadata             map[string]string `protobuf:"bytes,5,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata             map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -509,13 +509,13 @@ func (m *GceClusterConfig) GetMetadata() map[string]string {
 type InstanceGroupConfig struct {
 	// Optional. The number of VM instances in the instance group.
 	// For master instance groups, must be set to 1.
-	NumInstances int32 `protobuf:"varint,1,opt,name=num_instances,json=numInstances" json:"num_instances,omitempty"`
+	NumInstances int32 `protobuf:"varint,1,opt,name=num_instances,json=numInstances,proto3" json:"num_instances,omitempty"`
 	// Output only. The list of instance names. Cloud Dataproc derives the names
 	// from `cluster_name`, `num_instances`, and the instance group.
-	InstanceNames []string `protobuf:"bytes,2,rep,name=instance_names,json=instanceNames" json:"instance_names,omitempty"`
+	InstanceNames []string `protobuf:"bytes,2,rep,name=instance_names,json=instanceNames,proto3" json:"instance_names,omitempty"`
 	// Output only. The Compute Engine image resource used for cluster
 	// instances. Inferred from `SoftwareConfig.image_version`.
-	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. The Compute Engine machine type used for cluster instances.
 	//
 	// A full URL, partial URI, or short name are valid. Examples:
@@ -528,25 +528,25 @@ type InstanceGroupConfig struct {
 	// [Auto Zone Placement](/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement)
 	// feature, you must use the short name of the machine type
 	// resource, for example, `n1-standard-2`.
-	MachineTypeUri string `protobuf:"bytes,4,opt,name=machine_type_uri,json=machineTypeUri" json:"machine_type_uri,omitempty"`
+	MachineTypeUri string `protobuf:"bytes,4,opt,name=machine_type_uri,json=machineTypeUri,proto3" json:"machine_type_uri,omitempty"`
 	// Optional. Disk option config settings.
-	DiskConfig *DiskConfig `protobuf:"bytes,5,opt,name=disk_config,json=diskConfig" json:"disk_config,omitempty"`
+	DiskConfig *DiskConfig `protobuf:"bytes,5,opt,name=disk_config,json=diskConfig,proto3" json:"disk_config,omitempty"`
 	// Optional. Specifies that this instance group contains preemptible instances.
-	IsPreemptible bool `protobuf:"varint,6,opt,name=is_preemptible,json=isPreemptible" json:"is_preemptible,omitempty"`
+	IsPreemptible bool `protobuf:"varint,6,opt,name=is_preemptible,json=isPreemptible,proto3" json:"is_preemptible,omitempty"`
 	// Output only. The config for Compute Engine Instance Group
 	// Manager that manages this group.
 	// This is only used for preemptible instance groups.
-	ManagedGroupConfig *ManagedGroupConfig `protobuf:"bytes,7,opt,name=managed_group_config,json=managedGroupConfig" json:"managed_group_config,omitempty"`
+	ManagedGroupConfig *ManagedGroupConfig `protobuf:"bytes,7,opt,name=managed_group_config,json=managedGroupConfig,proto3" json:"managed_group_config,omitempty"`
 	// Optional. The Compute Engine accelerator configuration for these
 	// instances.
 	//
 	// **Beta Feature**: This feature is still under development. It may be
 	// changed before final release.
-	Accelerators []*AcceleratorConfig `protobuf:"bytes,8,rep,name=accelerators" json:"accelerators,omitempty"`
+	Accelerators []*AcceleratorConfig `protobuf:"bytes,8,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
 	// Optional. Specifies the minimum cpu platform for the Instance Group.
 	// See [Cloud Dataproc&rarr;Minimum CPU Platform]
 	// (/dataproc/docs/concepts/compute/dataproc-min-cpu).
-	MinCpuPlatform       string   `protobuf:"bytes,9,opt,name=min_cpu_platform,json=minCpuPlatform" json:"min_cpu_platform,omitempty"`
+	MinCpuPlatform       string   `protobuf:"bytes,9,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -643,9 +643,9 @@ func (m *InstanceGroupConfig) GetMinCpuPlatform() string {
 type ManagedGroupConfig struct {
 	// Output only. The name of the Instance Template used for the Managed
 	// Instance Group.
-	InstanceTemplateName string `protobuf:"bytes,1,opt,name=instance_template_name,json=instanceTemplateName" json:"instance_template_name,omitempty"`
+	InstanceTemplateName string `protobuf:"bytes,1,opt,name=instance_template_name,json=instanceTemplateName,proto3" json:"instance_template_name,omitempty"`
 	// Output only. The name of the Instance Group Manager for this group.
-	InstanceGroupManagerName string   `protobuf:"bytes,2,opt,name=instance_group_manager_name,json=instanceGroupManagerName" json:"instance_group_manager_name,omitempty"`
+	InstanceGroupManagerName string   `protobuf:"bytes,2,opt,name=instance_group_manager_name,json=instanceGroupManagerName,proto3" json:"instance_group_manager_name,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -705,9 +705,9 @@ type AcceleratorConfig struct {
 	// [Auto Zone Placement](/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement)
 	// feature, you must use the short name of the accelerator type
 	// resource, for example, `nvidia-tesla-k80`.
-	AcceleratorTypeUri string `protobuf:"bytes,1,opt,name=accelerator_type_uri,json=acceleratorTypeUri" json:"accelerator_type_uri,omitempty"`
+	AcceleratorTypeUri string `protobuf:"bytes,1,opt,name=accelerator_type_uri,json=acceleratorTypeUri,proto3" json:"accelerator_type_uri,omitempty"`
 	// The number of the accelerator cards of this type exposed to this instance.
-	AcceleratorCount     int32    `protobuf:"varint,2,opt,name=accelerator_count,json=acceleratorCount" json:"accelerator_count,omitempty"`
+	AcceleratorCount     int32    `protobuf:"varint,2,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -756,16 +756,16 @@ type DiskConfig struct {
 	// Optional. Type of the boot disk (default is "pd-standard").
 	// Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or
 	// "pd-standard" (Persistent Disk Hard Disk Drive).
-	BootDiskType string `protobuf:"bytes,3,opt,name=boot_disk_type,json=bootDiskType" json:"boot_disk_type,omitempty"`
+	BootDiskType string `protobuf:"bytes,3,opt,name=boot_disk_type,json=bootDiskType,proto3" json:"boot_disk_type,omitempty"`
 	// Optional. Size in GB of the boot disk (default is 500GB).
-	BootDiskSizeGb int32 `protobuf:"varint,1,opt,name=boot_disk_size_gb,json=bootDiskSizeGb" json:"boot_disk_size_gb,omitempty"`
+	BootDiskSizeGb int32 `protobuf:"varint,1,opt,name=boot_disk_size_gb,json=bootDiskSizeGb,proto3" json:"boot_disk_size_gb,omitempty"`
 	// 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.
-	NumLocalSsds         int32    `protobuf:"varint,2,opt,name=num_local_ssds,json=numLocalSsds" json:"num_local_ssds,omitempty"`
+	NumLocalSsds         int32    `protobuf:"varint,2,opt,name=num_local_ssds,json=numLocalSsds,proto3" json:"num_local_ssds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -820,7 +820,7 @@ func (m *DiskConfig) GetNumLocalSsds() int32 {
 type LifecycleConfig struct {
 	// Optional. The longest duration that cluster would keep alive while staying
 	//  idle; passing this threshold will cause cluster to be auto-deleted.
-	IdleDeleteTtl *duration.Duration `protobuf:"bytes,1,opt,name=idle_delete_ttl,json=idleDeleteTtl" json:"idle_delete_ttl,omitempty"`
+	IdleDeleteTtl *duration.Duration `protobuf:"bytes,1,opt,name=idle_delete_ttl,json=idleDeleteTtl,proto3" json:"idle_delete_ttl,omitempty"`
 	// Optional. Either the exact time the cluster should be deleted at or
 	// the cluster maximum age.
 	//
@@ -862,10 +862,10 @@ type isLifecycleConfig_Ttl interface {
 }
 
 type LifecycleConfig_AutoDeleteTime struct {
-	AutoDeleteTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=auto_delete_time,json=autoDeleteTime,oneof"`
+	AutoDeleteTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=auto_delete_time,json=autoDeleteTime,proto3,oneof"`
 }
 type LifecycleConfig_AutoDeleteTtl struct {
-	AutoDeleteTtl *duration.Duration `protobuf:"bytes,3,opt,name=auto_delete_ttl,json=autoDeleteTtl,oneof"`
+	AutoDeleteTtl *duration.Duration `protobuf:"bytes,3,opt,name=auto_delete_ttl,json=autoDeleteTtl,proto3,oneof"`
 }
 
 func (*LifecycleConfig_AutoDeleteTime) isLifecycleConfig_Ttl() {}
@@ -977,12 +977,12 @@ func _LifecycleConfig_OneofSizer(msg proto.Message) (n int) {
 // timeout period for executable completion.
 type NodeInitializationAction struct {
 	// Required. Cloud Storage URI of executable file.
-	ExecutableFile string `protobuf:"bytes,1,opt,name=executable_file,json=executableFile" json:"executable_file,omitempty"`
+	ExecutableFile string `protobuf:"bytes,1,opt,name=executable_file,json=executableFile,proto3" json:"executable_file,omitempty"`
 	// 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.
-	ExecutionTimeout     *duration.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout" json:"execution_timeout,omitempty"`
+	ExecutionTimeout     *duration.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1029,14 +1029,14 @@ func (m *NodeInitializationAction) GetExecutionTimeout() *duration.Duration {
 // The status of a cluster and its instances.
 type ClusterStatus struct {
 	// Output only. The cluster's state.
-	State ClusterStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1beta2.ClusterStatus_State" json:"state,omitempty"`
+	State ClusterStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.ClusterStatus_State" json:"state,omitempty"`
 	// Output only. Optional details of cluster's state.
-	Detail string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"`
+	Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	// Output only. Time when this state was entered.
-	StateStartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	// Output only. Additional state information that includes
 	// status reported by the agent.
-	Substate             ClusterStatus_Substate `protobuf:"varint,4,opt,name=substate,enum=google.cloud.dataproc.v1beta2.ClusterStatus_Substate" json:"substate,omitempty"`
+	Substate             ClusterStatus_Substate `protobuf:"varint,4,opt,name=substate,proto3,enum=google.cloud.dataproc.v1beta2.ClusterStatus_Substate" json:"substate,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -1101,7 +1101,7 @@ type SoftwareConfig struct {
 	// such as "1.2" (including a subminor version, such as "1.2.29"), or the
 	// ["preview" version](/dataproc/docs/concepts/versioning/dataproc-versions#other_versions).
 	// If unspecified, it defaults to the latest version.
-	ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion" json:"image_version,omitempty"`
+	ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"`
 	// Optional. The properties to set on daemon config files.
 	//
 	// Property keys are specified in `prefix:property` format, such as
@@ -1120,7 +1120,7 @@ type SoftwareConfig struct {
 	//
 	// For more information, see
 	// [Cluster properties](/dataproc/docs/concepts/cluster-properties).
-	Properties           map[string]string `protobuf:"bytes,2,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties           map[string]string `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1170,9 +1170,9 @@ func (m *SoftwareConfig) GetProperties() map[string]string {
 // be changed before final release.
 type ClusterMetrics struct {
 	// The HDFS metrics.
-	HdfsMetrics map[string]int64 `protobuf:"bytes,1,rep,name=hdfs_metrics,json=hdfsMetrics" json:"hdfs_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	HdfsMetrics map[string]int64 `protobuf:"bytes,1,rep,name=hdfs_metrics,json=hdfsMetrics,proto3" json:"hdfs_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	// The YARN metrics.
-	YarnMetrics          map[string]int64 `protobuf:"bytes,2,rep,name=yarn_metrics,json=yarnMetrics" json:"yarn_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	YarnMetrics          map[string]int64 `protobuf:"bytes,2,rep,name=yarn_metrics,json=yarnMetrics,proto3" json:"yarn_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -1220,11 +1220,11 @@ func (m *ClusterMetrics) GetYarnMetrics() map[string]int64 {
 type CreateClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster to create.
-	Cluster *Cluster `protobuf:"bytes,2,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster *Cluster `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// Optional. A unique id used to identify the request. If the server
 	// receives two [CreateClusterRequest][google.cloud.dataproc.v1beta2.CreateClusterRequest] requests  with the same
 	// id, then the second request will be ignored and the
@@ -1236,7 +1236,7 @@ type CreateClusterRequest struct {
 	//
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	RequestId            string   `protobuf:"bytes,4,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1298,13 +1298,13 @@ func (m *CreateClusterRequest) GetRequestId() string {
 type UpdateClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project the
 	// cluster belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,5,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Required. The changes to the cluster.
-	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// Optional. Timeout for graceful YARN decomissioning. Graceful
 	// decommissioning allows removing nodes from the cluster without
 	// interrupting jobs in progress. Timeout specifies how long to wait for jobs
@@ -1313,7 +1313,7 @@ type UpdateClusterRequest struct {
 	// the maximum allowed timeout is 1 day.
 	//
 	// Only supported on Dataproc image versions 1.2 and higher.
-	GracefulDecommissionTimeout *duration.Duration `protobuf:"bytes,6,opt,name=graceful_decommission_timeout,json=gracefulDecommissionTimeout" json:"graceful_decommission_timeout,omitempty"`
+	GracefulDecommissionTimeout *duration.Duration `protobuf:"bytes,6,opt,name=graceful_decommission_timeout,json=gracefulDecommissionTimeout,proto3" json:"graceful_decommission_timeout,omitempty"`
 	// 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
@@ -1364,7 +1364,7 @@ type UpdateClusterRequest struct {
 	// <td>config.lifecycle_config.idle_delete_ttl</td><td>Update Idle TTL duration</td>
 	// </tr>
 	// </table>
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Optional. A unique id used to identify the request. If the server
 	// receives two [UpdateClusterRequest][google.cloud.dataproc.v1beta2.UpdateClusterRequest] requests  with the same
 	// id, then the second request will be ignored and the
@@ -1376,7 +1376,7 @@ type UpdateClusterRequest struct {
 	//
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	RequestId            string   `protobuf:"bytes,7,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,7,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1459,14 +1459,14 @@ func (m *UpdateClusterRequest) GetRequestId() string {
 type DeleteClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Optional. Specifying the `cluster_uuid` means the RPC should fail
 	// (with error NOT_FOUND) if cluster with specified UUID does not exist.
-	ClusterUuid string `protobuf:"bytes,4,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid string `protobuf:"bytes,4,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	// Optional. A unique id used to identify the request. If the server
 	// receives two [DeleteClusterRequest][google.cloud.dataproc.v1beta2.DeleteClusterRequest] requests  with the same
 	// id, then the second request will be ignored and the
@@ -1478,7 +1478,7 @@ type DeleteClusterRequest struct {
 	//
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	RequestId            string   `protobuf:"bytes,5,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1547,11 +1547,11 @@ func (m *DeleteClusterRequest) GetRequestId() string {
 type GetClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1606,9 +1606,9 @@ func (m *GetClusterRequest) GetClusterName() string {
 type ListClustersRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,4,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
 	// Optional. A filter constraining the clusters to list. Filters are
 	// case-sensitive and have the following syntax:
 	//
@@ -1628,11 +1628,11 @@ type ListClustersRequest struct {
 	//
 	// status.state = ACTIVE AND clusterName = mycluster
 	// AND labels.env = staging AND labels.starred = *
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Optional. The standard List page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The standard List page token.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1700,11 +1700,11 @@ func (m *ListClustersRequest) GetPageToken() string {
 // The list of all clusters in a project.
 type ListClustersResponse struct {
 	// Output only. The clusters in the project.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// 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>.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1752,11 +1752,11 @@ func (m *ListClustersResponse) GetNextPageToken() string {
 type DiagnoseClusterRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the cluster
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The cluster name.
-	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1812,7 +1812,7 @@ type DiagnoseClusterResults struct {
 	// Output only. The Cloud Storage URI of the diagnostic output.
 	// The output report is a plain text file with a summary of collected
 	// diagnostics.
-	OutputUri            string   `protobuf:"bytes,1,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri            string   `protobuf:"bytes,1,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1969,8 +1969,7 @@ func (c *clusterControllerClient) DiagnoseCluster(ctx context.Context, in *Diagn
 	return out, nil
 }
 
-// Server API for ClusterController service
-
+// ClusterControllerServer is the server API for ClusterController service.
 type ClusterControllerServer interface {
 	// Creates a cluster in a project.
 	CreateCluster(context.Context, *CreateClusterRequest) (*longrunning.Operation, error)
diff --git a/googleapis/cloud/dataproc/v1beta2/jobs.pb.go b/googleapis/cloud/dataproc/v1beta2/jobs.pb.go
index 27d931a142009c753011f025179b772ffc49548a..76fa3d42c5fa2638ef1bc84871935d60d98614e3 100644
--- a/googleapis/cloud/dataproc/v1beta2/jobs.pb.go
+++ b/googleapis/cloud/dataproc/v1beta2/jobs.pb.go
@@ -282,7 +282,7 @@ type LoggingConfig struct {
 	// "root" package name to configure rootLogger.
 	// Examples:
 	//   'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-	DriverLogLevels      map[string]LoggingConfig_Level `protobuf:"bytes,2,rep,name=driver_log_levels,json=driverLogLevels" json:"driver_log_levels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.cloud.dataproc.v1beta2.LoggingConfig_Level"`
+	DriverLogLevels      map[string]LoggingConfig_Level `protobuf:"bytes,2,rep,name=driver_log_levels,json=driverLogLevels,proto3" json:"driver_log_levels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.cloud.dataproc.v1beta2.LoggingConfig_Level"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -336,25 +336,25 @@ type HadoopJob struct {
 	// 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.
-	Args []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. Jar file URIs to add to the CLASSPATHs of the
 	// Hadoop driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -389,10 +389,10 @@ type isHadoopJob_Driver interface {
 }
 
 type HadoopJob_MainJarFileUri struct {
-	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,oneof"`
+	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"`
 }
 type HadoopJob_MainClass struct {
-	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,oneof"`
+	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"`
 }
 
 func (*HadoopJob_MainJarFileUri) isHadoopJob_Driver() {}
@@ -542,24 +542,24 @@ type SparkJob struct {
 	// 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 []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. HCFS URIs of jar files to add to the CLASSPATHs of the
 	// Spark driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. HCFS URIs of files to be copied to the working directory of
 	// Spark drivers and distributed tasks. Useful for naively parallel tasks.
-	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// 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 []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -594,10 +594,10 @@ type isSparkJob_Driver interface {
 }
 
 type SparkJob_MainJarFileUri struct {
-	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,oneof"`
+	MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"`
 }
 type SparkJob_MainClass struct {
-	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,oneof"`
+	MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"`
 }
 
 func (*SparkJob_MainJarFileUri) isSparkJob_Driver() {}
@@ -738,30 +738,30 @@ func _SparkJob_OneofSizer(msg proto.Message) (n int) {
 type PySparkJob struct {
 	// Required. The HCFS URI of the main Python file to use as the driver. Must
 	// be a .py file.
-	MainPythonFileUri string `protobuf:"bytes,1,opt,name=main_python_file_uri,json=mainPythonFileUri" json:"main_python_file_uri,omitempty"`
+	MainPythonFileUri string `protobuf:"bytes,1,opt,name=main_python_file_uri,json=mainPythonFileUri,proto3" json:"main_python_file_uri,omitempty"`
 	// 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 []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. HCFS file URIs of Python files to pass to the PySpark
 	// framework. Supported file types: .py, .egg, and .zip.
-	PythonFileUris []string `protobuf:"bytes,3,rep,name=python_file_uris,json=pythonFileUris" json:"python_file_uris,omitempty"`
+	PythonFileUris []string `protobuf:"bytes,3,rep,name=python_file_uris,json=pythonFileUris,proto3" json:"python_file_uris,omitempty"`
 	// Optional. HCFS URIs of jar files to add to the CLASSPATHs of the
 	// Python driver and tasks.
-	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. HCFS URIs of files to be copied to the working directory of
 	// Python drivers and distributed tasks. Useful for naively parallel tasks.
-	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris" json:"file_uris,omitempty"`
+	FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"`
 	// Optional. HCFS URIs of archives to be extracted in the working directory of
 	// .jar, .tar, .tar.gz, .tgz, and .zip.
-	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris" json:"archive_uris,omitempty"`
+	ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,7,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -863,7 +863,7 @@ type QueryList struct {
 	//         ]
 	//       }
 	//     }
-	Queries              []string `protobuf:"bytes,1,rep,name=queries" json:"queries,omitempty"`
+	Queries              []string `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -913,19 +913,19 @@ type HiveJob struct {
 	// 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.
-	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure" json:"continue_on_failure,omitempty"`
+	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"`
 	// Optional. Mapping of query variable names to values (equivalent to the
 	// Hive command: `SET name="value";`).
-	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Properties map[string]string `protobuf:"bytes,5,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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          []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris          []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -960,10 +960,10 @@ type isHiveJob_Queries interface {
 }
 
 type HiveJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type HiveJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*HiveJob_QueryFileUri) isHiveJob_Queries() {}
@@ -1100,15 +1100,15 @@ type SparkSqlJob struct {
 	Queries isSparkSqlJob_Queries `protobuf_oneof:"queries"`
 	// Optional. Mapping of query variable names to values (equivalent to the
 	// Spark SQL command: SET `name="value";`).
-	ScriptVariables map[string]string `protobuf:"bytes,3,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,3,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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 map[string]string `protobuf:"bytes,4,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
-	JarFileUris []string `protobuf:"bytes,56,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,56,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1143,10 +1143,10 @@ type isSparkSqlJob_Queries interface {
 }
 
 type SparkSqlJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type SparkSqlJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*SparkSqlJob_QueryFileUri) isSparkSqlJob_Queries() {}
@@ -1284,20 +1284,20 @@ type PigJob struct {
 	// 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.
-	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure" json:"continue_on_failure,omitempty"`
+	ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"`
 	// Optional. Mapping of query variable names to values (equivalent to the Pig
 	// command: `name=[value]`).
-	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Properties map[string]string `protobuf:"bytes,5,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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 []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris" json:"jar_file_uris,omitempty"`
+	JarFileUris []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"`
 	// Optional. The runtime log config for job execution.
-	LoggingConfig        *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig" json:"logging_config,omitempty"`
+	LoggingConfig        *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1332,10 +1332,10 @@ type isPigJob_Queries interface {
 }
 
 type PigJob_QueryFileUri struct {
-	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,oneof"`
+	QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"`
 }
 type PigJob_QueryList struct {
-	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,oneof"`
+	QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"`
 }
 
 func (*PigJob_QueryFileUri) isPigJob_Queries() {}
@@ -1470,10 +1470,10 @@ func _PigJob_OneofSizer(msg proto.Message) (n int) {
 // Cloud Dataproc job config.
 type JobPlacement struct {
 	// Required. The name of the cluster where the job will be submitted.
-	ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Output only. A cluster UUID generated by the Cloud Dataproc service when
 	// the job is submitted.
-	ClusterUuid          string   `protobuf:"bytes,2,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid          string   `protobuf:"bytes,2,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1520,15 +1520,15 @@ func (m *JobPlacement) GetClusterUuid() string {
 // Cloud Dataproc job status.
 type JobStatus struct {
 	// Output only. A state message specifying the overall job state.
-	State JobStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1beta2.JobStatus_State" json:"state,omitempty"`
+	State JobStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.JobStatus_State" json:"state,omitempty"`
 	// Output only. Optional job state details, such as an error
 	// description if the state is <code>ERROR</code>.
-	Details string `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
+	Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	// Output only. The time when this state was entered.
-	StateStartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	// Output only. Additional state information, which includes
 	// status reported by the agent.
-	Substate             JobStatus_Substate `protobuf:"varint,7,opt,name=substate,enum=google.cloud.dataproc.v1beta2.JobStatus_Substate" json:"substate,omitempty"`
+	Substate             JobStatus_Substate `protobuf:"varint,7,opt,name=substate,proto3,enum=google.cloud.dataproc.v1beta2.JobStatus_Substate" json:"substate,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1590,13 +1590,13 @@ func (m *JobStatus) GetSubstate() JobStatus_Substate {
 type JobReference struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// 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.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1647,16 +1647,16 @@ func (m *JobReference) GetJobId() string {
 // be changed before final release.
 type YarnApplication struct {
 	// Required. The application name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The application state.
-	State YarnApplication_State `protobuf:"varint,2,opt,name=state,enum=google.cloud.dataproc.v1beta2.YarnApplication_State" json:"state,omitempty"`
+	State YarnApplication_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.YarnApplication_State" json:"state,omitempty"`
 	// Required. The numerical progress of the application, from 1 to 100.
-	Progress float32 `protobuf:"fixed32,3,opt,name=progress" json:"progress,omitempty"`
+	Progress float32 `protobuf:"fixed32,3,opt,name=progress,proto3" json:"progress,omitempty"`
 	// 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.
-	TrackingUrl          string   `protobuf:"bytes,4,opt,name=tracking_url,json=trackingUrl" json:"tracking_url,omitempty"`
+	TrackingUrl          string   `protobuf:"bytes,4,opt,name=tracking_url,json=trackingUrl,proto3" json:"tracking_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1720,10 +1720,10 @@ type Job struct {
 	// 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>.
-	Reference *JobReference `protobuf:"bytes,1,opt,name=reference" json:"reference,omitempty"`
+	Reference *JobReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
 	// Required. Job information, including how, when, and where to
 	// run the job.
-	Placement *JobPlacement `protobuf:"bytes,2,opt,name=placement" json:"placement,omitempty"`
+	Placement *JobPlacement `protobuf:"bytes,2,opt,name=placement,proto3" json:"placement,omitempty"`
 	// Required. The application/framework-specific portion of the job.
 	//
 	// Types that are valid to be assigned to TypeJob:
@@ -1737,30 +1737,30 @@ type Job struct {
 	// 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.
-	Status *JobStatus `protobuf:"bytes,8,opt,name=status" json:"status,omitempty"`
+	Status *JobStatus `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
 	// Output only. The previous job status.
-	StatusHistory []*JobStatus `protobuf:"bytes,13,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*JobStatus `protobuf:"bytes,13,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// 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 []*YarnApplication `protobuf:"bytes,9,rep,name=yarn_applications,json=yarnApplications" json:"yarn_applications,omitempty"`
+	YarnApplications []*YarnApplication `protobuf:"bytes,9,rep,name=yarn_applications,json=yarnApplications,proto3" json:"yarn_applications,omitempty"`
 	// Output only. A URI pointing to the location of the stdout of the job's
 	// driver program.
-	DriverOutputResourceUri string `protobuf:"bytes,17,opt,name=driver_output_resource_uri,json=driverOutputResourceUri" json:"driver_output_resource_uri,omitempty"`
+	DriverOutputResourceUri string `protobuf:"bytes,17,opt,name=driver_output_resource_uri,json=driverOutputResourceUri,proto3" json:"driver_output_resource_uri,omitempty"`
 	// 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 string `protobuf:"bytes,15,opt,name=driver_control_files_uri,json=driverControlFilesUri" json:"driver_control_files_uri,omitempty"`
+	DriverControlFilesUri string `protobuf:"bytes,15,opt,name=driver_control_files_uri,json=driverControlFilesUri,proto3" json:"driver_control_files_uri,omitempty"`
 	// 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 map[string]string `protobuf:"bytes,18,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. Job scheduling configuration.
-	Scheduling           *JobScheduling `protobuf:"bytes,20,opt,name=scheduling" json:"scheduling,omitempty"`
+	Scheduling           *JobScheduling `protobuf:"bytes,20,opt,name=scheduling,proto3" json:"scheduling,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1795,22 +1795,22 @@ type isJob_TypeJob interface {
 }
 
 type Job_HadoopJob struct {
-	HadoopJob *HadoopJob `protobuf:"bytes,3,opt,name=hadoop_job,json=hadoopJob,oneof"`
+	HadoopJob *HadoopJob `protobuf:"bytes,3,opt,name=hadoop_job,json=hadoopJob,proto3,oneof"`
 }
 type Job_SparkJob struct {
-	SparkJob *SparkJob `protobuf:"bytes,4,opt,name=spark_job,json=sparkJob,oneof"`
+	SparkJob *SparkJob `protobuf:"bytes,4,opt,name=spark_job,json=sparkJob,proto3,oneof"`
 }
 type Job_PysparkJob struct {
-	PysparkJob *PySparkJob `protobuf:"bytes,5,opt,name=pyspark_job,json=pysparkJob,oneof"`
+	PysparkJob *PySparkJob `protobuf:"bytes,5,opt,name=pyspark_job,json=pysparkJob,proto3,oneof"`
 }
 type Job_HiveJob struct {
-	HiveJob *HiveJob `protobuf:"bytes,6,opt,name=hive_job,json=hiveJob,oneof"`
+	HiveJob *HiveJob `protobuf:"bytes,6,opt,name=hive_job,json=hiveJob,proto3,oneof"`
 }
 type Job_PigJob struct {
-	PigJob *PigJob `protobuf:"bytes,7,opt,name=pig_job,json=pigJob,oneof"`
+	PigJob *PigJob `protobuf:"bytes,7,opt,name=pig_job,json=pigJob,proto3,oneof"`
 }
 type Job_SparkSqlJob struct {
-	SparkSqlJob *SparkSqlJob `protobuf:"bytes,12,opt,name=spark_sql_job,json=sparkSqlJob,oneof"`
+	SparkSqlJob *SparkSqlJob `protobuf:"bytes,12,opt,name=spark_sql_job,json=sparkSqlJob,proto3,oneof"`
 }
 
 func (*Job_HadoopJob) isJob_TypeJob()   {}
@@ -2092,7 +2092,7 @@ type JobScheduling struct {
 	// 4 times within 10 minute window.
 	//
 	// Maximum value is 10.
-	MaxFailuresPerHour   int32    `protobuf:"varint,1,opt,name=max_failures_per_hour,json=maxFailuresPerHour" json:"max_failures_per_hour,omitempty"`
+	MaxFailuresPerHour   int32    `protobuf:"varint,1,opt,name=max_failures_per_hour,json=maxFailuresPerHour,proto3" json:"max_failures_per_hour,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2133,11 +2133,11 @@ func (m *JobScheduling) GetMaxFailuresPerHour() int32 {
 type SubmitJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job resource.
-	Job *Job `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job *Job `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	// Optional. A unique id used to identify the request. If the server
 	// receives two [SubmitJobRequest][google.cloud.dataproc.v1beta2.SubmitJobRequest] requests  with the same
 	// id, then the second request will be ignored and the
@@ -2149,7 +2149,7 @@ type SubmitJobRequest struct {
 	//
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	RequestId            string   `protobuf:"bytes,4,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2211,11 +2211,11 @@ func (m *SubmitJobRequest) GetRequestId() string {
 type GetJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2270,22 +2270,22 @@ func (m *GetJobRequest) GetJobId() string {
 type ListJobsRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,6,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,6,opt,name=region,proto3" json:"region,omitempty"`
 	// Optional. The number of results to return in each response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The page token, returned by a previous call, to request the
 	// next page of results.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional. If set, the returned jobs list includes only jobs that were
 	// submitted to the named cluster.
-	ClusterName string `protobuf:"bytes,4,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,4,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Optional. Specifies enumerated categories of jobs to list.
 	// (default = match ALL jobs).
 	//
 	// If `filter` is provided, `jobStateMatcher` will be ignored.
-	JobStateMatcher ListJobsRequest_JobStateMatcher `protobuf:"varint,5,opt,name=job_state_matcher,json=jobStateMatcher,enum=google.cloud.dataproc.v1beta2.ListJobsRequest_JobStateMatcher" json:"job_state_matcher,omitempty"`
+	JobStateMatcher ListJobsRequest_JobStateMatcher `protobuf:"varint,5,opt,name=job_state_matcher,json=jobStateMatcher,proto3,enum=google.cloud.dataproc.v1beta2.ListJobsRequest_JobStateMatcher" json:"job_state_matcher,omitempty"`
 	// Optional. A filter constraining the jobs to list. Filters are
 	// case-sensitive and have the following syntax:
 	//
@@ -2300,7 +2300,7 @@ type ListJobsRequest struct {
 	// Example filter:
 	//
 	// status.state = ACTIVE AND labels.env = staging AND labels.starred = *
-	Filter               string   `protobuf:"bytes,7,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2383,20 +2383,20 @@ func (m *ListJobsRequest) GetFilter() string {
 type UpdateJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,2,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	// Required. The changes to the job.
-	Job *Job `protobuf:"bytes,4,opt,name=job" json:"job,omitempty"`
+	Job *Job `protobuf:"bytes,4,opt,name=job,proto3" json:"job,omitempty"`
 	// 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           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2464,11 +2464,11 @@ func (m *UpdateJobRequest) GetUpdateMask() *field_mask.FieldMask {
 // A list of jobs in a project.
 type ListJobsResponse struct {
 	// Output only. Jobs list.
-	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs" json:"jobs,omitempty"`
+	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
 	// 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>.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2516,11 +2516,11 @@ func (m *ListJobsResponse) GetNextPageToken() string {
 type CancelJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2575,11 +2575,11 @@ func (m *CancelJobRequest) GetJobId() string {
 type DeleteJobRequest struct {
 	// Required. The ID of the Google Cloud Platform project that the job
 	// belongs to.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. The Cloud Dataproc region in which to handle the request.
-	Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
 	// Required. The job ID.
-	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2762,8 +2762,7 @@ func (c *jobControllerClient) DeleteJob(ctx context.Context, in *DeleteJobReques
 	return out, nil
 }
 
-// Server API for JobController service
-
+// JobControllerServer is the server API for JobController service.
 type JobControllerServer interface {
 	// Submits a job to a cluster.
 	SubmitJob(context.Context, *SubmitJobRequest) (*Job, error)
diff --git a/googleapis/cloud/dataproc/v1beta2/operations.pb.go b/googleapis/cloud/dataproc/v1beta2/operations.pb.go
index 5e132d21ad2317648b696b40fa154fd6fa0a1002..18eef5f56ce1e7d0f1d7dedcaad5e2f4bb032f34 100644
--- a/googleapis/cloud/dataproc/v1beta2/operations.pb.go
+++ b/googleapis/cloud/dataproc/v1beta2/operations.pb.go
@@ -57,13 +57,13 @@ func (ClusterOperationStatus_State) EnumDescriptor() ([]byte, []int) {
 // The status of the operation.
 type ClusterOperationStatus struct {
 	// Output only. A message containing the operation state.
-	State ClusterOperationStatus_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.dataproc.v1beta2.ClusterOperationStatus_State" json:"state,omitempty"`
+	State ClusterOperationStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.ClusterOperationStatus_State" json:"state,omitempty"`
 	// Output only. A message containing the detailed operation state.
-	InnerState string `protobuf:"bytes,2,opt,name=inner_state,json=innerState" json:"inner_state,omitempty"`
+	InnerState string `protobuf:"bytes,2,opt,name=inner_state,json=innerState,proto3" json:"inner_state,omitempty"`
 	// Output only. A message containing any operation metadata details.
-	Details string `protobuf:"bytes,3,opt,name=details" json:"details,omitempty"`
+	Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"`
 	// Output only. The time this state was entered.
-	StateStartTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=state_start_time,json=stateStartTime" json:"state_start_time,omitempty"`
+	StateStartTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -124,21 +124,21 @@ func (m *ClusterOperationStatus) GetStateStartTime() *timestamp.Timestamp {
 // Metadata describing the operation.
 type ClusterOperationMetadata struct {
 	// Output only. Name of the cluster for the operation.
-	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Output only. Cluster UUID for the operation.
-	ClusterUuid string `protobuf:"bytes,8,opt,name=cluster_uuid,json=clusterUuid" json:"cluster_uuid,omitempty"`
+	ClusterUuid string `protobuf:"bytes,8,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
 	// Output only. Current operation status.
-	Status *ClusterOperationStatus `protobuf:"bytes,9,opt,name=status" json:"status,omitempty"`
+	Status *ClusterOperationStatus `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"`
 	// Output only. The previous operation status.
-	StatusHistory []*ClusterOperationStatus `protobuf:"bytes,10,rep,name=status_history,json=statusHistory" json:"status_history,omitempty"`
+	StatusHistory []*ClusterOperationStatus `protobuf:"bytes,10,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
 	// Output only. The operation type.
-	OperationType string `protobuf:"bytes,11,opt,name=operation_type,json=operationType" json:"operation_type,omitempty"`
+	OperationType string `protobuf:"bytes,11,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"`
 	// Output only. Short description of operation.
-	Description string `protobuf:"bytes,12,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"`
 	// Output only. Labels associated with the operation
-	Labels map[string]string `protobuf:"bytes,13,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,13,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output only. Errors encountered during operation execution.
-	Warnings             []string `protobuf:"bytes,14,rep,name=warnings" json:"warnings,omitempty"`
+	Warnings             []string `protobuf:"bytes,14,rep,name=warnings,proto3" json:"warnings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/dataproc/v1beta2/workflow_templates.pb.go b/googleapis/cloud/dataproc/v1beta2/workflow_templates.pb.go
index 3f2b815161be810be103a57e0ebb1cbe1ca36f8a..b345e58fc71f66f97f2a412f53bce3cfdcaa9651 100644
--- a/googleapis/cloud/dataproc/v1beta2/workflow_templates.pb.go
+++ b/googleapis/cloud/dataproc/v1beta2/workflow_templates.pb.go
@@ -111,11 +111,11 @@ type WorkflowTemplate struct {
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). Cannot begin or end with underscore
 	// or hyphen. Must consist of between 3 and 50 characters.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// Output only. The "resource name" of the template, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. Used to perform a consistent read-modify-write.
 	//
 	// This field should be left blank for a `CreateWorkflowTemplate` request. It
@@ -125,11 +125,11 @@ type WorkflowTemplate struct {
 	// the current template with the `version` field filled in with the
 	// current server version. The user updates other fields in the template,
 	// then returns it as part of the `UpdateWorkflowTemplate` request.
-	Version int32 `protobuf:"varint,3,opt,name=version" json:"version,omitempty"`
+	Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
 	// Output only. The time template was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time template was last updated.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// Optional. The labels to associate with this template. These labels
 	// will be propagated to all jobs and clusters created by the workflow
 	// instance.
@@ -142,11 +142,11 @@ type WorkflowTemplate struct {
 	// [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
 	//
 	// No more than 32 labels can be associated with a template.
-	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Required. WorkflowTemplate scheduling information.
-	Placement *WorkflowTemplatePlacement `protobuf:"bytes,7,opt,name=placement" json:"placement,omitempty"`
+	Placement *WorkflowTemplatePlacement `protobuf:"bytes,7,opt,name=placement,proto3" json:"placement,omitempty"`
 	// Required. The Directed Acyclic Graph of Jobs to submit.
-	Jobs                 []*OrderedJob `protobuf:"bytes,8,rep,name=jobs" json:"jobs,omitempty"`
+	Jobs                 []*OrderedJob `protobuf:"bytes,8,rep,name=jobs,proto3" json:"jobs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -277,10 +277,10 @@ type isWorkflowTemplatePlacement_Placement interface {
 }
 
 type WorkflowTemplatePlacement_ManagedCluster struct {
-	ManagedCluster *ManagedCluster `protobuf:"bytes,1,opt,name=managed_cluster,json=managedCluster,oneof"`
+	ManagedCluster *ManagedCluster `protobuf:"bytes,1,opt,name=managed_cluster,json=managedCluster,proto3,oneof"`
 }
 type WorkflowTemplatePlacement_ClusterSelector struct {
-	ClusterSelector *ClusterSelector `protobuf:"bytes,2,opt,name=cluster_selector,json=clusterSelector,oneof"`
+	ClusterSelector *ClusterSelector `protobuf:"bytes,2,opt,name=cluster_selector,json=clusterSelector,proto3,oneof"`
 }
 
 func (*WorkflowTemplatePlacement_ManagedCluster) isWorkflowTemplatePlacement_Placement()  {}
@@ -389,9 +389,9 @@ type ManagedCluster struct {
 	// The name must contain only lower-case letters (a-z), numbers (0-9),
 	// and hyphens (-). Must begin with a letter. Cannot begin or end with
 	// hyphen. Must consist of between 2 and 35 characters.
-	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Required. The cluster configuration.
-	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config" json:"config,omitempty"`
+	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
 	// Optional. The labels to associate with this cluster.
 	//
 	// Label keys must be between 1 and 63 characters long, and must conform to
@@ -402,7 +402,7 @@ type ManagedCluster struct {
 	// the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
 	//
 	// No more than 32 labels can be associated with a given cluster.
-	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -460,10 +460,10 @@ type ClusterSelector struct {
 	//
 	// If unspecified, the zone of the first cluster matching the selector
 	// is used.
-	Zone string `protobuf:"bytes,1,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,1,opt,name=zone,proto3" json:"zone,omitempty"`
 	// Required. The cluster labels. Cluster must have all labels
 	// to match.
-	ClusterLabels        map[string]string `protobuf:"bytes,2,rep,name=cluster_labels,json=clusterLabels" json:"cluster_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ClusterLabels        map[string]string `protobuf:"bytes,2,rep,name=cluster_labels,json=clusterLabels,proto3" json:"cluster_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -520,7 +520,7 @@ type OrderedJob struct {
 	// The id must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). Cannot begin or end with underscore
 	// or hyphen. Must consist of between 3 and 50 characters.
-	StepId string `protobuf:"bytes,1,opt,name=step_id,json=stepId" json:"step_id,omitempty"`
+	StepId string `protobuf:"bytes,1,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"`
 	// Required. The job definition.
 	//
 	// Types that are valid to be assigned to JobType:
@@ -541,12 +541,12 @@ type OrderedJob struct {
 	// the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
 	//
 	// No more than 32 labels can be associated with a given job.
-	Labels map[string]string `protobuf:"bytes,8,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. Job scheduling configuration.
-	Scheduling *JobScheduling `protobuf:"bytes,9,opt,name=scheduling" json:"scheduling,omitempty"`
+	Scheduling *JobScheduling `protobuf:"bytes,9,opt,name=scheduling,proto3" json:"scheduling,omitempty"`
 	// Optional. The optional list of prerequisite job step_ids.
 	// If not specified, the job will start at the beginning of workflow.
-	PrerequisiteStepIds  []string `protobuf:"bytes,10,rep,name=prerequisite_step_ids,json=prerequisiteStepIds" json:"prerequisite_step_ids,omitempty"`
+	PrerequisiteStepIds  []string `protobuf:"bytes,10,rep,name=prerequisite_step_ids,json=prerequisiteStepIds,proto3" json:"prerequisite_step_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -581,22 +581,22 @@ type isOrderedJob_JobType interface {
 }
 
 type OrderedJob_HadoopJob struct {
-	HadoopJob *HadoopJob `protobuf:"bytes,2,opt,name=hadoop_job,json=hadoopJob,oneof"`
+	HadoopJob *HadoopJob `protobuf:"bytes,2,opt,name=hadoop_job,json=hadoopJob,proto3,oneof"`
 }
 type OrderedJob_SparkJob struct {
-	SparkJob *SparkJob `protobuf:"bytes,3,opt,name=spark_job,json=sparkJob,oneof"`
+	SparkJob *SparkJob `protobuf:"bytes,3,opt,name=spark_job,json=sparkJob,proto3,oneof"`
 }
 type OrderedJob_PysparkJob struct {
-	PysparkJob *PySparkJob `protobuf:"bytes,4,opt,name=pyspark_job,json=pysparkJob,oneof"`
+	PysparkJob *PySparkJob `protobuf:"bytes,4,opt,name=pyspark_job,json=pysparkJob,proto3,oneof"`
 }
 type OrderedJob_HiveJob struct {
-	HiveJob *HiveJob `protobuf:"bytes,5,opt,name=hive_job,json=hiveJob,oneof"`
+	HiveJob *HiveJob `protobuf:"bytes,5,opt,name=hive_job,json=hiveJob,proto3,oneof"`
 }
 type OrderedJob_PigJob struct {
-	PigJob *PigJob `protobuf:"bytes,6,opt,name=pig_job,json=pigJob,oneof"`
+	PigJob *PigJob `protobuf:"bytes,6,opt,name=pig_job,json=pigJob,proto3,oneof"`
 }
 type OrderedJob_SparkSqlJob struct {
-	SparkSqlJob *SparkSqlJob `protobuf:"bytes,7,opt,name=spark_sql_job,json=sparkSqlJob,oneof"`
+	SparkSqlJob *SparkSqlJob `protobuf:"bytes,7,opt,name=spark_sql_job,json=sparkSqlJob,proto3,oneof"`
 }
 
 func (*OrderedJob_HadoopJob) isOrderedJob_JobType()   {}
@@ -836,22 +836,22 @@ func _OrderedJob_OneofSizer(msg proto.Message) (n int) {
 // A Cloud Dataproc workflow template resource.
 type WorkflowMetadata struct {
 	// Output only. The "resource name" of the template.
-	Template string `protobuf:"bytes,1,opt,name=template" json:"template,omitempty"`
+	Template string `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"`
 	// Output only. The version of template at the time of
 	// workflow instantiation.
-	Version int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
+	Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	// Output only. The create cluster operation metadata.
-	CreateCluster *ClusterOperation `protobuf:"bytes,3,opt,name=create_cluster,json=createCluster" json:"create_cluster,omitempty"`
+	CreateCluster *ClusterOperation `protobuf:"bytes,3,opt,name=create_cluster,json=createCluster,proto3" json:"create_cluster,omitempty"`
 	// Output only. The workflow graph.
-	Graph *WorkflowGraph `protobuf:"bytes,4,opt,name=graph" json:"graph,omitempty"`
+	Graph *WorkflowGraph `protobuf:"bytes,4,opt,name=graph,proto3" json:"graph,omitempty"`
 	// Output only. The delete cluster operation metadata.
-	DeleteCluster *ClusterOperation `protobuf:"bytes,5,opt,name=delete_cluster,json=deleteCluster" json:"delete_cluster,omitempty"`
+	DeleteCluster *ClusterOperation `protobuf:"bytes,5,opt,name=delete_cluster,json=deleteCluster,proto3" json:"delete_cluster,omitempty"`
 	// Output only. The workflow state.
-	State WorkflowMetadata_State `protobuf:"varint,6,opt,name=state,enum=google.cloud.dataproc.v1beta2.WorkflowMetadata_State" json:"state,omitempty"`
+	State WorkflowMetadata_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.WorkflowMetadata_State" json:"state,omitempty"`
 	// Output only. The name of the managed cluster.
-	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName" json:"cluster_name,omitempty"`
+	ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
 	// Map from parameter names to values that were used for those parameters.
-	Parameters           map[string]string `protobuf:"bytes,8,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Parameters           map[string]string `protobuf:"bytes,8,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -940,11 +940,11 @@ func (m *WorkflowMetadata) GetParameters() map[string]string {
 // The cluster operation triggered by a workflow.
 type ClusterOperation struct {
 	// Output only. The id of the cluster operation.
-	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// Output only. Error, if operation failed.
-	Error string `protobuf:"bytes,2,opt,name=error" json:"error,omitempty"`
+	Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
 	// Output only. Indicates the operation is done.
-	Done                 bool     `protobuf:"varint,3,opt,name=done" json:"done,omitempty"`
+	Done                 bool     `protobuf:"varint,3,opt,name=done,proto3" json:"done,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -998,7 +998,7 @@ func (m *ClusterOperation) GetDone() bool {
 // The workflow graph.
 type WorkflowGraph struct {
 	// Output only. The workflow nodes.
-	Nodes                []*WorkflowNode `protobuf:"bytes,1,rep,name=nodes" json:"nodes,omitempty"`
+	Nodes                []*WorkflowNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -1038,15 +1038,15 @@ func (m *WorkflowGraph) GetNodes() []*WorkflowNode {
 // The workflow node.
 type WorkflowNode struct {
 	// Output only. The name of the node.
-	StepId string `protobuf:"bytes,1,opt,name=step_id,json=stepId" json:"step_id,omitempty"`
+	StepId string `protobuf:"bytes,1,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"`
 	// Output only. Node's prerequisite nodes.
-	PrerequisiteStepIds []string `protobuf:"bytes,2,rep,name=prerequisite_step_ids,json=prerequisiteStepIds" json:"prerequisite_step_ids,omitempty"`
+	PrerequisiteStepIds []string `protobuf:"bytes,2,rep,name=prerequisite_step_ids,json=prerequisiteStepIds,proto3" json:"prerequisite_step_ids,omitempty"`
 	// Output only. The job id; populated after the node enters RUNNING state.
-	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	// Output only. The node state.
-	State WorkflowNode_NodeState `protobuf:"varint,5,opt,name=state,enum=google.cloud.dataproc.v1beta2.WorkflowNode_NodeState" json:"state,omitempty"`
+	State WorkflowNode_NodeState `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.WorkflowNode_NodeState" json:"state,omitempty"`
 	// Output only. The error detail.
-	Error                string   `protobuf:"bytes,6,opt,name=error" json:"error,omitempty"`
+	Error                string   `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1116,9 +1116,9 @@ type CreateWorkflowTemplateRequest struct {
 	// Required. The "resource name" of the region, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The Dataproc workflow template to create.
-	Template             *WorkflowTemplate `protobuf:"bytes,2,opt,name=template" json:"template,omitempty"`
+	Template             *WorkflowTemplate `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1167,12 +1167,12 @@ type GetWorkflowTemplateRequest struct {
 	// Required. The "resource name" of the workflow template, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The version of workflow template to retrieve. Only previously
 	// instatiated versions can be retrieved.
 	//
 	// If unspecified, retrieves the current version.
-	Version              int32    `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
+	Version              int32    `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1221,14 +1221,14 @@ type InstantiateWorkflowTemplateRequest struct {
 	// Required. The "resource name" of the workflow template, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The version of workflow template to instantiate. If specified,
 	// the workflow will be instantiated only if the current version of
 	// the workflow template has the supplied version.
 	//
 	// This option cannot be used to instantiate a previous version of
 	// workflow template.
-	Version int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
+	Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	// Optional. A tag that prevents multiple concurrent workflow
 	// instances with the same tag from running. This mitigates risk of
 	// concurrent instances started due to retries.
@@ -1238,7 +1238,7 @@ type InstantiateWorkflowTemplateRequest struct {
 	//
 	// The tag must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	InstanceId           string   `protobuf:"bytes,3,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId           string   `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1294,9 +1294,9 @@ type InstantiateInlineWorkflowTemplateRequest struct {
 	// Required. The "resource name" of the workflow template region, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The workflow template to instantiate.
-	Template *WorkflowTemplate `protobuf:"bytes,2,opt,name=template" json:"template,omitempty"`
+	Template *WorkflowTemplate `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"`
 	// Optional. A tag that prevents multiple concurrent workflow
 	// instances with the same tag from running. This mitigates risk of
 	// concurrent instances started due to retries.
@@ -1306,7 +1306,7 @@ type InstantiateInlineWorkflowTemplateRequest struct {
 	//
 	// The tag must contain only letters (a-z, A-Z), numbers (0-9),
 	// underscores (_), and hyphens (-). The maximum length is 40 characters.
-	InstanceId           string   `protobuf:"bytes,3,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId           string   `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1364,7 +1364,7 @@ type UpdateWorkflowTemplateRequest struct {
 	// Required. The updated workflow template.
 	//
 	// The `template.version` field must match the current version.
-	Template             *WorkflowTemplate `protobuf:"bytes,1,opt,name=template" json:"template,omitempty"`
+	Template             *WorkflowTemplate `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1406,12 +1406,12 @@ type ListWorkflowTemplatesRequest struct {
 	// Required. The "resource name" of the region, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of results to return in each response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The page token, returned by a previous call, to request the
 	// next page of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1465,11 +1465,11 @@ func (m *ListWorkflowTemplatesRequest) GetPageToken() string {
 // A response to a request to list workflow templates in a project.
 type ListWorkflowTemplatesResponse struct {
 	// Output only. WorkflowTemplates list.
-	Templates []*WorkflowTemplate `protobuf:"bytes,1,rep,name=templates" json:"templates,omitempty"`
+	Templates []*WorkflowTemplate `protobuf:"bytes,1,rep,name=templates,proto3" json:"templates,omitempty"`
 	// 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>ListWorkflowTemplatesRequest</code>.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1520,11 +1520,11 @@ type DeleteWorkflowTemplateRequest struct {
 	// Required. The "resource name" of the workflow template, as described
 	// in https://cloud.google.com/apis/design/resource_names of the form
 	// `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The version of workflow template to delete. If specified,
 	// will only delete the template if the current server version matches
 	// specified version.
-	Version              int32    `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
+	Version              int32    `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1736,8 +1736,7 @@ func (c *workflowTemplateServiceClient) DeleteWorkflowTemplate(ctx context.Conte
 	return out, nil
 }
 
-// Server API for WorkflowTemplateService service
-
+// WorkflowTemplateServiceServer is the server API for WorkflowTemplateService service.
 type WorkflowTemplateServiceServer interface {
 	// Creates new workflow template.
 	CreateWorkflowTemplate(context.Context, *CreateWorkflowTemplateRequest) (*WorkflowTemplate, error)
diff --git a/googleapis/cloud/dialogflow/v2/agent.pb.go b/googleapis/cloud/dialogflow/v2/agent.pb.go
index f3cf6cf99467862224461c79da9571941df48ea4..01dd774ed7dd96ee6122ba436c35e9c7b31c56af 100644
--- a/googleapis/cloud/dialogflow/v2/agent.pb.go
+++ b/googleapis/cloud/dialogflow/v2/agent.pb.go
@@ -64,32 +64,32 @@ func (Agent_MatchMode) EnumDescriptor() ([]byte, []int) {
 type Agent struct {
 	// Required. The project of this agent.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The name of this agent.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. The default language of the agent as a language tag. See
 	// [Language Support](https://dialogflow.com/docs/reference/language) for a
 	// list of the currently supported language codes.
 	// This field cannot be set by the `Update` method.
-	DefaultLanguageCode string `protobuf:"bytes,3,opt,name=default_language_code,json=defaultLanguageCode" json:"default_language_code,omitempty"`
+	DefaultLanguageCode string `protobuf:"bytes,3,opt,name=default_language_code,json=defaultLanguageCode,proto3" json:"default_language_code,omitempty"`
 	// Optional. The list of all languages supported by this agent (except for the
 	// `default_language_code`).
-	SupportedLanguageCodes []string `protobuf:"bytes,4,rep,name=supported_language_codes,json=supportedLanguageCodes" json:"supported_language_codes,omitempty"`
+	SupportedLanguageCodes []string `protobuf:"bytes,4,rep,name=supported_language_codes,json=supportedLanguageCodes,proto3" json:"supported_language_codes,omitempty"`
 	// Required. The time zone of this agent from the
 	// [time zone database](https://www.iana.org/time-zones), e.g.,
 	// America/New_York, Europe/Paris.
-	TimeZone string `protobuf:"bytes,5,opt,name=time_zone,json=timeZone" json:"time_zone,omitempty"`
+	TimeZone string `protobuf:"bytes,5,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
 	// Optional. The description of this agent.
 	// The maximum length is 500 characters. If exceeded, the request is rejected.
-	Description string `protobuf:"bytes,6,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The URI of the agent's avatar.
 	// Avatars are used throughout the Dialogflow console and in the self-hosted
 	// [Web Demo](https://dialogflow.com/docs/integrations/web-demo) integration.
-	AvatarUri string `protobuf:"bytes,7,opt,name=avatar_uri,json=avatarUri" json:"avatar_uri,omitempty"`
+	AvatarUri string `protobuf:"bytes,7,opt,name=avatar_uri,json=avatarUri,proto3" json:"avatar_uri,omitempty"`
 	// Optional. Determines whether this agent should log conversation queries.
-	EnableLogging bool `protobuf:"varint,8,opt,name=enable_logging,json=enableLogging" json:"enable_logging,omitempty"`
+	EnableLogging bool `protobuf:"varint,8,opt,name=enable_logging,json=enableLogging,proto3" json:"enable_logging,omitempty"`
 	// Optional. Determines how intents are detected from user queries.
-	MatchMode Agent_MatchMode `protobuf:"varint,9,opt,name=match_mode,json=matchMode,enum=google.cloud.dialogflow.v2.Agent_MatchMode" json:"match_mode,omitempty"`
+	MatchMode Agent_MatchMode `protobuf:"varint,9,opt,name=match_mode,json=matchMode,proto3,enum=google.cloud.dialogflow.v2.Agent_MatchMode" json:"match_mode,omitempty"`
 	// Optional. To filter out false positive results and still get variety in
 	// matched natural language inputs for your agent, you can tune the machine
 	// learning classification threshold. If the returned score value is less than
@@ -97,7 +97,7 @@ type Agent struct {
 	// are no fallback intents defined, no intent will be triggered. The score
 	// values range from 0.0 (completely uncertain) to 1.0 (completely certain).
 	// If set to 0.0, the default of 0.3 is used.
-	ClassificationThreshold float32  `protobuf:"fixed32,10,opt,name=classification_threshold,json=classificationThreshold" json:"classification_threshold,omitempty"`
+	ClassificationThreshold float32  `protobuf:"fixed32,10,opt,name=classification_threshold,json=classificationThreshold,proto3" json:"classification_threshold,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -201,7 +201,7 @@ func (m *Agent) GetClassificationThreshold() float32 {
 type GetAgentRequest struct {
 	// Required. The project that the agent to fetch is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -242,12 +242,12 @@ func (m *GetAgentRequest) GetParent() string {
 type SearchAgentsRequest struct {
 	// Required. The project to list agents from.
 	// Format: `projects/<Project ID or '-'>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -302,10 +302,10 @@ func (m *SearchAgentsRequest) GetPageToken() string {
 type SearchAgentsResponse struct {
 	// The list of agents. There will be a maximum number of items returned based
 	// on the page_size field in the request.
-	Agents []*Agent `protobuf:"bytes,1,rep,name=agents" json:"agents,omitempty"`
+	Agents []*Agent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -353,7 +353,7 @@ func (m *SearchAgentsResponse) GetNextPageToken() string {
 type TrainAgentRequest struct {
 	// Required. The project that the agent to train is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -394,11 +394,11 @@ func (m *TrainAgentRequest) GetParent() string {
 type ExportAgentRequest struct {
 	// Required. The project that the agent to export is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The Google Cloud Storage URI to export the agent to.
 	// Note: The URI must start with
 	// "gs://". If left unspecified, the serialized agent is returned inline.
-	AgentUri             string   `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri" json:"agent_uri,omitempty"`
+	AgentUri             string   `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3" json:"agent_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -484,7 +484,7 @@ type isExportAgentResponse_Agent interface {
 }
 
 type ExportAgentResponse_AgentUri struct {
-	AgentUri string `protobuf:"bytes,1,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,1,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type ExportAgentResponse_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,2,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -584,7 +584,7 @@ func _ExportAgentResponse_OneofSizer(msg proto.Message) (n int) {
 type ImportAgentRequest struct {
 	// Required. The project that the agent to import is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The agent to import.
 	//
 	// Types that are valid to be assigned to Agent:
@@ -625,7 +625,7 @@ type isImportAgentRequest_Agent interface {
 }
 
 type ImportAgentRequest_AgentUri struct {
-	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type ImportAgentRequest_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,3,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -732,7 +732,7 @@ func _ImportAgentRequest_OneofSizer(msg proto.Message) (n int) {
 type RestoreAgentRequest struct {
 	// Required. The project that the agent to restore is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The agent to restore.
 	//
 	// Types that are valid to be assigned to Agent:
@@ -773,7 +773,7 @@ type isRestoreAgentRequest_Agent interface {
 }
 
 type RestoreAgentRequest_AgentUri struct {
-	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type RestoreAgentRequest_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,3,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -1002,8 +1002,7 @@ func (c *agentsClient) RestoreAgent(ctx context.Context, in *RestoreAgentRequest
 	return out, nil
 }
 
-// Server API for Agents service
-
+// AgentsServer is the server API for Agents service.
 type AgentsServer interface {
 	// Retrieves the specified agent.
 	GetAgent(context.Context, *GetAgentRequest) (*Agent, error)
diff --git a/googleapis/cloud/dialogflow/v2/context.pb.go b/googleapis/cloud/dialogflow/v2/context.pb.go
index d25ba1108b16282bb73b4599a6ae7094469a0595..78ce2e75ffb585d8a2bb897660421156b99c7f1c 100644
--- a/googleapis/cloud/dialogflow/v2/context.pb.go
+++ b/googleapis/cloud/dialogflow/v2/context.pb.go
@@ -31,16 +31,16 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Context struct {
 	// Required. The unique identifier of the context. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The number of conversational query requests after which the
 	// context expires. If set to `0` (the default) the context expires
 	// immediately. Contexts expire automatically after 10 minutes even if there
 	// are no matching queries.
-	LifespanCount int32 `protobuf:"varint,2,opt,name=lifespan_count,json=lifespanCount" json:"lifespan_count,omitempty"`
+	LifespanCount int32 `protobuf:"varint,2,opt,name=lifespan_count,json=lifespanCount,proto3" json:"lifespan_count,omitempty"`
 	// Optional. The collection of parameters associated with this context.
 	// Refer to [this doc](https://dialogflow.com/docs/actions-and-parameters) for
 	// syntax.
-	Parameters           *_struct.Struct `protobuf:"bytes,3,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters           *_struct.Struct `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -95,12 +95,12 @@ func (m *Context) GetParameters() *_struct.Struct {
 type ListContextsRequest struct {
 	// Required. The session to list all contexts from.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -155,10 +155,10 @@ func (m *ListContextsRequest) GetPageToken() string {
 type ListContextsResponse struct {
 	// The list of contexts. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	Contexts []*Context `protobuf:"bytes,1,rep,name=contexts" json:"contexts,omitempty"`
+	Contexts []*Context `protobuf:"bytes,1,rep,name=contexts,proto3" json:"contexts,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -206,7 +206,7 @@ func (m *ListContextsResponse) GetNextPageToken() string {
 type GetContextRequest struct {
 	// Required. The name of the context. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -247,9 +247,9 @@ func (m *GetContextRequest) GetName() string {
 type CreateContextRequest struct {
 	// Required. The session to create a context for.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The context to create.
-	Context              *Context `protobuf:"bytes,2,opt,name=context" json:"context,omitempty"`
+	Context              *Context `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -296,9 +296,9 @@ func (m *CreateContextRequest) GetContext() *Context {
 // The request message for [Contexts.UpdateContext][google.cloud.dialogflow.v2.Contexts.UpdateContext].
 type UpdateContextRequest struct {
 	// Required. The context to update.
-	Context *Context `protobuf:"bytes,1,opt,name=context" json:"context,omitempty"`
+	Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -346,7 +346,7 @@ func (m *UpdateContextRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteContextRequest struct {
 	// Required. The name of the context to delete. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -387,7 +387,7 @@ func (m *DeleteContextRequest) GetName() string {
 type DeleteAllContextsRequest struct {
 	// Required. The name of the session to delete all contexts from. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -523,8 +523,7 @@ func (c *contextsClient) DeleteAllContexts(ctx context.Context, in *DeleteAllCon
 	return out, nil
 }
 
-// Server API for Contexts service
-
+// ContextsServer is the server API for Contexts service.
 type ContextsServer interface {
 	// Returns the list of all contexts in the specified session.
 	ListContexts(context.Context, *ListContextsRequest) (*ListContextsResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2/entity_type.pb.go b/googleapis/cloud/dialogflow/v2/entity_type.pb.go
index 0dd2950bc3d53d814dc93c1122c0c4dca5c20b4d..2f52867f41baf05c30fa054be14f6688008581a0 100644
--- a/googleapis/cloud/dialogflow/v2/entity_type.pb.go
+++ b/googleapis/cloud/dialogflow/v2/entity_type.pb.go
@@ -98,16 +98,16 @@ type EntityType struct {
 	// automatically.
 	// The unique identifier of the entity type. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of the entity.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. Indicates the kind of entity type.
-	Kind EntityType_Kind `protobuf:"varint,3,opt,name=kind,enum=google.cloud.dialogflow.v2.EntityType_Kind" json:"kind,omitempty"`
+	Kind EntityType_Kind `protobuf:"varint,3,opt,name=kind,proto3,enum=google.cloud.dialogflow.v2.EntityType_Kind" json:"kind,omitempty"`
 	// Optional. Indicates whether the entity type can be automatically
 	// expanded.
-	AutoExpansionMode EntityType_AutoExpansionMode `protobuf:"varint,4,opt,name=auto_expansion_mode,json=autoExpansionMode,enum=google.cloud.dialogflow.v2.EntityType_AutoExpansionMode" json:"auto_expansion_mode,omitempty"`
+	AutoExpansionMode EntityType_AutoExpansionMode `protobuf:"varint,4,opt,name=auto_expansion_mode,json=autoExpansionMode,proto3,enum=google.cloud.dialogflow.v2.EntityType_AutoExpansionMode" json:"auto_expansion_mode,omitempty"`
 	// Optional. The collection of entities associated with the entity type.
-	Entities             []*EntityType_Entity `protobuf:"bytes,6,rep,name=entities" json:"entities,omitempty"`
+	Entities             []*EntityType_Entity `protobuf:"bytes,6,rep,name=entities,proto3" json:"entities,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -180,10 +180,10 @@ type EntityType_Entity struct {
 	// For `KIND_LIST` entity types:
 	//   A string that can contain references to other entity types (with or
 	//   without aliases).
-	Value string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
 	// Required. A collection of synonyms. For `KIND_LIST` entity types this
 	// must contain exactly one synonym equal to `value`.
-	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms" json:"synonyms,omitempty"`
+	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms,proto3" json:"synonyms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -231,18 +231,18 @@ func (m *EntityType_Entity) GetSynonyms() []string {
 type ListEntityTypesRequest struct {
 	// Required. The agent to list all entity types from.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The language to list entity synonyms for. If not specified,
 	// the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -304,10 +304,10 @@ func (m *ListEntityTypesRequest) GetPageToken() string {
 type ListEntityTypesResponse struct {
 	// The list of agent entity types. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	EntityTypes []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -355,13 +355,13 @@ func (m *ListEntityTypesResponse) GetNextPageToken() string {
 type GetEntityTypeRequest struct {
 	// Required. The name of the entity type.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The language to retrieve entity synonyms for. If not specified,
 	// the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,15 +409,15 @@ func (m *GetEntityTypeRequest) GetLanguageCode() string {
 type CreateEntityTypeRequest struct {
 	// Required. The agent to create a entity type for.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The entity type to create.
-	EntityType *EntityType `protobuf:"bytes,2,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType *EntityType `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The language of entity synonyms defined in `entity_type`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -472,15 +472,15 @@ func (m *CreateEntityTypeRequest) GetLanguageCode() string {
 type UpdateEntityTypeRequest struct {
 	// Required. The entity type to update.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	EntityType *EntityType `protobuf:"bytes,1,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType *EntityType `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The language of entity synonyms defined in `entity_type`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -535,7 +535,7 @@ func (m *UpdateEntityTypeRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteEntityTypeRequest struct {
 	// Required. The name of the entity type to delete.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -576,7 +576,7 @@ func (m *DeleteEntityTypeRequest) GetName() string {
 type BatchUpdateEntityTypesRequest struct {
 	// Required. The name of the agent to update or create entity types in.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The source of the entity type batch.
 	//
 	// For each entity type in the batch:
@@ -592,9 +592,9 @@ type BatchUpdateEntityTypesRequest struct {
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -629,10 +629,10 @@ type isBatchUpdateEntityTypesRequest_EntityTypeBatch interface {
 }
 
 type BatchUpdateEntityTypesRequest_EntityTypeBatchUri struct {
-	EntityTypeBatchUri string `protobuf:"bytes,2,opt,name=entity_type_batch_uri,json=entityTypeBatchUri,oneof"`
+	EntityTypeBatchUri string `protobuf:"bytes,2,opt,name=entity_type_batch_uri,json=entityTypeBatchUri,proto3,oneof"`
 }
 type BatchUpdateEntityTypesRequest_EntityTypeBatchInline struct {
-	EntityTypeBatchInline *EntityTypeBatch `protobuf:"bytes,3,opt,name=entity_type_batch_inline,json=entityTypeBatchInline,oneof"`
+	EntityTypeBatchInline *EntityTypeBatch `protobuf:"bytes,3,opt,name=entity_type_batch_inline,json=entityTypeBatchInline,proto3,oneof"`
 }
 
 func (*BatchUpdateEntityTypesRequest_EntityTypeBatchUri) isBatchUpdateEntityTypesRequest_EntityTypeBatch() {
@@ -755,7 +755,7 @@ func _BatchUpdateEntityTypesRequest_OneofSizer(msg proto.Message) (n int) {
 // The response message for [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes].
 type BatchUpdateEntityTypesResponse struct {
 	// The collection of updated or created entity types.
-	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -796,10 +796,10 @@ func (m *BatchUpdateEntityTypesResponse) GetEntityTypes() []*EntityType {
 type BatchDeleteEntityTypesRequest struct {
 	// Required. The name of the agent to delete all entities types for. Format:
 	// `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The names entity types to delete. All names must point to the
 	// same agent as `parent`.
-	EntityTypeNames      []string `protobuf:"bytes,2,rep,name=entity_type_names,json=entityTypeNames" json:"entity_type_names,omitempty"`
+	EntityTypeNames      []string `protobuf:"bytes,2,rep,name=entity_type_names,json=entityTypeNames,proto3" json:"entity_type_names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -847,15 +847,15 @@ func (m *BatchDeleteEntityTypesRequest) GetEntityTypeNames() []string {
 type BatchCreateEntitiesRequest struct {
 	// Required. The name of the entity type to create entities in. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of entities to create.
-	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities" json:"entities,omitempty"`
+	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -910,17 +910,17 @@ func (m *BatchCreateEntitiesRequest) GetLanguageCode() string {
 type BatchUpdateEntitiesRequest struct {
 	// Required. The name of the entity type to update the entities in. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of new entities to replace the existing entities.
-	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities" json:"entities,omitempty"`
+	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -982,17 +982,17 @@ func (m *BatchUpdateEntitiesRequest) GetUpdateMask() *field_mask.FieldMask {
 type BatchDeleteEntitiesRequest struct {
 	// Required. The name of the entity type to delete entries for. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The canonical `values` of the entities to delete. Note that
 	// these are not fully-qualified names, i.e. they don't start with
 	// `projects/<Project ID>`.
-	EntityValues []string `protobuf:"bytes,2,rep,name=entity_values,json=entityValues" json:"entity_values,omitempty"`
+	EntityValues []string `protobuf:"bytes,2,rep,name=entity_values,json=entityValues,proto3" json:"entity_values,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1046,7 +1046,7 @@ func (m *BatchDeleteEntitiesRequest) GetLanguageCode() string {
 // This message is a wrapper around a collection of entity types.
 type EntityTypeBatch struct {
 	// A collection of entity types.
-	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1251,8 +1251,7 @@ func (c *entityTypesClient) BatchDeleteEntities(ctx context.Context, in *BatchDe
 	return out, nil
 }
 
-// Server API for EntityTypes service
-
+// EntityTypesServer is the server API for EntityTypes service.
 type EntityTypesServer interface {
 	// Returns the list of all entity types in the specified agent.
 	ListEntityTypes(context.Context, *ListEntityTypesRequest) (*ListEntityTypesResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2/intent.pb.go b/googleapis/cloud/dialogflow/v2/intent.pb.go
index 7be8bce61504017cea1171176f4ed15a0c289980..a53ab16c7ea7e51e5d8c7b62e4e599003bcd2040 100644
--- a/googleapis/cloud/dialogflow/v2/intent.pb.go
+++ b/googleapis/cloud/dialogflow/v2/intent.pb.go
@@ -241,63 +241,63 @@ type Intent struct {
 	// automatically.
 	// The unique identifier of this intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of this intent.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. Indicates whether webhooks are enabled for the intent.
-	WebhookState Intent_WebhookState `protobuf:"varint,6,opt,name=webhook_state,json=webhookState,enum=google.cloud.dialogflow.v2.Intent_WebhookState" json:"webhook_state,omitempty"`
+	WebhookState Intent_WebhookState `protobuf:"varint,6,opt,name=webhook_state,json=webhookState,proto3,enum=google.cloud.dialogflow.v2.Intent_WebhookState" json:"webhook_state,omitempty"`
 	// Optional. The priority of this intent. Higher numbers represent higher
 	// priorities. Zero or negative numbers mean that the intent is disabled.
-	Priority int32 `protobuf:"varint,3,opt,name=priority" json:"priority,omitempty"`
+	Priority int32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"`
 	// Optional. Indicates whether this is a fallback intent.
-	IsFallback bool `protobuf:"varint,4,opt,name=is_fallback,json=isFallback" json:"is_fallback,omitempty"`
+	IsFallback bool `protobuf:"varint,4,opt,name=is_fallback,json=isFallback,proto3" json:"is_fallback,omitempty"`
 	// Optional. Indicates whether Machine Learning is disabled for the intent.
 	// Note: If `ml_diabled` setting is set to true, then this intent is not
 	// taken into account during inference in `ML ONLY` match mode. Also,
 	// auto-markup in the UI is turned off.
-	MlDisabled bool `protobuf:"varint,19,opt,name=ml_disabled,json=mlDisabled" json:"ml_disabled,omitempty"`
+	MlDisabled bool `protobuf:"varint,19,opt,name=ml_disabled,json=mlDisabled,proto3" json:"ml_disabled,omitempty"`
 	// Optional. The list of context names required for this intent to be
 	// triggered.
 	// Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
-	InputContextNames []string `protobuf:"bytes,7,rep,name=input_context_names,json=inputContextNames" json:"input_context_names,omitempty"`
+	InputContextNames []string `protobuf:"bytes,7,rep,name=input_context_names,json=inputContextNames,proto3" json:"input_context_names,omitempty"`
 	// Optional. The collection of event names that trigger the intent.
 	// If the collection of input contexts is not empty, all of the contexts must
 	// be present in the active user session for an event to trigger this intent.
-	Events []string `protobuf:"bytes,8,rep,name=events" json:"events,omitempty"`
+	Events []string `protobuf:"bytes,8,rep,name=events,proto3" json:"events,omitempty"`
 	// Optional. The collection of examples/templates that the agent is
 	// trained on.
-	TrainingPhrases []*Intent_TrainingPhrase `protobuf:"bytes,9,rep,name=training_phrases,json=trainingPhrases" json:"training_phrases,omitempty"`
+	TrainingPhrases []*Intent_TrainingPhrase `protobuf:"bytes,9,rep,name=training_phrases,json=trainingPhrases,proto3" json:"training_phrases,omitempty"`
 	// Optional. The name of the action associated with the intent.
-	Action string `protobuf:"bytes,10,opt,name=action" json:"action,omitempty"`
+	Action string `protobuf:"bytes,10,opt,name=action,proto3" json:"action,omitempty"`
 	// Optional. The collection of contexts that are activated when the intent
 	// is matched. Context messages in this collection should not set the
 	// parameters field. Setting the `lifespan_count` to 0 will reset the context
 	// when the intent is matched.
 	// Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
-	OutputContexts []*Context `protobuf:"bytes,11,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,11,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// Optional. Indicates whether to delete all contexts in the current
 	// session when this intent is matched.
-	ResetContexts bool `protobuf:"varint,12,opt,name=reset_contexts,json=resetContexts" json:"reset_contexts,omitempty"`
+	ResetContexts bool `protobuf:"varint,12,opt,name=reset_contexts,json=resetContexts,proto3" json:"reset_contexts,omitempty"`
 	// Optional. The collection of parameters associated with the intent.
-	Parameters []*Intent_Parameter `protobuf:"bytes,13,rep,name=parameters" json:"parameters,omitempty"`
+	Parameters []*Intent_Parameter `protobuf:"bytes,13,rep,name=parameters,proto3" json:"parameters,omitempty"`
 	// Optional. The collection of rich messages corresponding to the
 	// `Response` field in the Dialogflow console.
-	Messages []*Intent_Message `protobuf:"bytes,14,rep,name=messages" json:"messages,omitempty"`
+	Messages []*Intent_Message `protobuf:"bytes,14,rep,name=messages,proto3" json:"messages,omitempty"`
 	// Optional. The list of platforms for which the first response will be
 	// taken from among the messages assigned to the DEFAULT_PLATFORM.
-	DefaultResponsePlatforms []Intent_Message_Platform `protobuf:"varint,15,rep,packed,name=default_response_platforms,json=defaultResponsePlatforms,enum=google.cloud.dialogflow.v2.Intent_Message_Platform" json:"default_response_platforms,omitempty"`
+	DefaultResponsePlatforms []Intent_Message_Platform `protobuf:"varint,15,rep,packed,name=default_response_platforms,json=defaultResponsePlatforms,proto3,enum=google.cloud.dialogflow.v2.Intent_Message_Platform" json:"default_response_platforms,omitempty"`
 	// The unique identifier of the root intent in the chain of followup intents.
 	// It identifies the correct followup intents chain for this intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	RootFollowupIntentName string `protobuf:"bytes,16,opt,name=root_followup_intent_name,json=rootFollowupIntentName" json:"root_followup_intent_name,omitempty"`
+	RootFollowupIntentName string `protobuf:"bytes,16,opt,name=root_followup_intent_name,json=rootFollowupIntentName,proto3" json:"root_followup_intent_name,omitempty"`
 	// The unique identifier of the parent intent in the chain of followup
 	// intents.
 	// It identifies the parent followup intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	ParentFollowupIntentName string `protobuf:"bytes,17,opt,name=parent_followup_intent_name,json=parentFollowupIntentName" json:"parent_followup_intent_name,omitempty"`
+	ParentFollowupIntentName string `protobuf:"bytes,17,opt,name=parent_followup_intent_name,json=parentFollowupIntentName,proto3" json:"parent_followup_intent_name,omitempty"`
 	// Optional. Collection of information about all followup intents that have
 	// name of this intent as a root_name.
-	FollowupIntentInfo   []*Intent_FollowupIntentInfo `protobuf:"bytes,18,rep,name=followup_intent_info,json=followupIntentInfo" json:"followup_intent_info,omitempty"`
+	FollowupIntentInfo   []*Intent_FollowupIntentInfo `protobuf:"bytes,18,rep,name=followup_intent_info,json=followupIntentInfo,proto3" json:"followup_intent_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -456,17 +456,17 @@ func (m *Intent) GetFollowupIntentInfo() []*Intent_FollowupIntentInfo {
 // Represents an example or template that the agent is trained on.
 type Intent_TrainingPhrase struct {
 	// Required. The unique identifier of this training phrase.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The type of the training phrase.
-	Type Intent_TrainingPhrase_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.dialogflow.v2.Intent_TrainingPhrase_Type" json:"type,omitempty"`
+	Type Intent_TrainingPhrase_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dialogflow.v2.Intent_TrainingPhrase_Type" json:"type,omitempty"`
 	// Required. The collection of training phrase parts (can be annotated).
 	// Fields: `entity_type`, `alias` and `user_defined` should be populated
 	// only for the annotated parts of the training phrase.
-	Parts []*Intent_TrainingPhrase_Part `protobuf:"bytes,3,rep,name=parts" json:"parts,omitempty"`
+	Parts []*Intent_TrainingPhrase_Part `protobuf:"bytes,3,rep,name=parts,proto3" json:"parts,omitempty"`
 	// Optional. Indicates how many times this example or template was added to
 	// the intent. Each time a developer adds an existing sample by editing an
 	// intent or training, this counter is increased.
-	TimesAddedCount      int32    `protobuf:"varint,4,opt,name=times_added_count,json=timesAddedCount" json:"times_added_count,omitempty"`
+	TimesAddedCount      int32    `protobuf:"varint,4,opt,name=times_added_count,json=timesAddedCount,proto3" json:"times_added_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -529,17 +529,17 @@ type Intent_TrainingPhrase_Part struct {
 	// Required. The text corresponding to the example or template,
 	// if there are no annotations. For
 	// annotated examples, it is the text for one of the example's parts.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Optional. The entity type name prefixed with `@`. This field is
 	// required for the annotated part of the text and applies only to
 	// examples.
-	EntityType string `protobuf:"bytes,2,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType string `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The parameter name for the value extracted from the
 	// annotated part of the example.
-	Alias string `protobuf:"bytes,3,opt,name=alias" json:"alias,omitempty"`
+	Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
 	// Optional. Indicates whether the text was manually annotated by the
 	// developer.
-	UserDefined          bool     `protobuf:"varint,4,opt,name=user_defined,json=userDefined" json:"user_defined,omitempty"`
+	UserDefined          bool     `protobuf:"varint,4,opt,name=user_defined,json=userDefined,proto3" json:"user_defined,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -600,34 +600,34 @@ func (m *Intent_TrainingPhrase_Part) GetUserDefined() bool {
 // Represents intent parameters.
 type Intent_Parameter struct {
 	// The unique identifier of this parameter.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of the parameter.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Optional. The definition of the parameter value. It can be:
 	// - a constant string,
 	// - a parameter value defined as `$parameter_name`,
 	// - an original parameter value defined as `$parameter_name.original`,
 	// - a parameter value from some context defined as
 	//   `#context_name.parameter_name`.
-	Value string `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 	// Optional. The default value to use when the `value` yields an empty
 	// result.
 	// Default values can be extracted from contexts by using the following
 	// syntax: `#context_name.parameter_name`.
-	DefaultValue string `protobuf:"bytes,4,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"`
+	DefaultValue string `protobuf:"bytes,4,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
 	// Optional. The name of the entity type, prefixed with `@`, that
 	// describes values of the parameter. If the parameter is
 	// required, this must be provided.
-	EntityTypeDisplayName string `protobuf:"bytes,5,opt,name=entity_type_display_name,json=entityTypeDisplayName" json:"entity_type_display_name,omitempty"`
+	EntityTypeDisplayName string `protobuf:"bytes,5,opt,name=entity_type_display_name,json=entityTypeDisplayName,proto3" json:"entity_type_display_name,omitempty"`
 	// Optional. Indicates whether the parameter is required. That is,
 	// whether the intent cannot be completed without collecting the parameter
 	// value.
-	Mandatory bool `protobuf:"varint,6,opt,name=mandatory" json:"mandatory,omitempty"`
+	Mandatory bool `protobuf:"varint,6,opt,name=mandatory,proto3" json:"mandatory,omitempty"`
 	// Optional. The collection of prompts that the agent can present to the
 	// user in order to collect value for the parameter.
-	Prompts []string `protobuf:"bytes,7,rep,name=prompts" json:"prompts,omitempty"`
+	Prompts []string `protobuf:"bytes,7,rep,name=prompts,proto3" json:"prompts,omitempty"`
 	// Optional. Indicates whether the parameter represents a list of values.
-	IsList               bool     `protobuf:"varint,8,opt,name=is_list,json=isList" json:"is_list,omitempty"`
+	IsList               bool     `protobuf:"varint,8,opt,name=is_list,json=isList,proto3" json:"is_list,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -731,7 +731,7 @@ type Intent_Message struct {
 	//	*Intent_Message_CarouselSelect_
 	Message isIntent_Message_Message `protobuf_oneof:"message"`
 	// Optional. The platform that this message is intended for.
-	Platform             Intent_Message_Platform `protobuf:"varint,6,opt,name=platform,enum=google.cloud.dialogflow.v2.Intent_Message_Platform" json:"platform,omitempty"`
+	Platform             Intent_Message_Platform `protobuf:"varint,6,opt,name=platform,proto3,enum=google.cloud.dialogflow.v2.Intent_Message_Platform" json:"platform,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -766,37 +766,37 @@ type isIntent_Message_Message interface {
 }
 
 type Intent_Message_Text_ struct {
-	Text *Intent_Message_Text `protobuf:"bytes,1,opt,name=text,oneof"`
+	Text *Intent_Message_Text `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
 }
 type Intent_Message_Image_ struct {
-	Image *Intent_Message_Image `protobuf:"bytes,2,opt,name=image,oneof"`
+	Image *Intent_Message_Image `protobuf:"bytes,2,opt,name=image,proto3,oneof"`
 }
 type Intent_Message_QuickReplies_ struct {
-	QuickReplies *Intent_Message_QuickReplies `protobuf:"bytes,3,opt,name=quick_replies,json=quickReplies,oneof"`
+	QuickReplies *Intent_Message_QuickReplies `protobuf:"bytes,3,opt,name=quick_replies,json=quickReplies,proto3,oneof"`
 }
 type Intent_Message_Card_ struct {
-	Card *Intent_Message_Card `protobuf:"bytes,4,opt,name=card,oneof"`
+	Card *Intent_Message_Card `protobuf:"bytes,4,opt,name=card,proto3,oneof"`
 }
 type Intent_Message_Payload struct {
-	Payload *_struct.Struct `protobuf:"bytes,5,opt,name=payload,oneof"`
+	Payload *_struct.Struct `protobuf:"bytes,5,opt,name=payload,proto3,oneof"`
 }
 type Intent_Message_SimpleResponses_ struct {
-	SimpleResponses *Intent_Message_SimpleResponses `protobuf:"bytes,7,opt,name=simple_responses,json=simpleResponses,oneof"`
+	SimpleResponses *Intent_Message_SimpleResponses `protobuf:"bytes,7,opt,name=simple_responses,json=simpleResponses,proto3,oneof"`
 }
 type Intent_Message_BasicCard_ struct {
-	BasicCard *Intent_Message_BasicCard `protobuf:"bytes,8,opt,name=basic_card,json=basicCard,oneof"`
+	BasicCard *Intent_Message_BasicCard `protobuf:"bytes,8,opt,name=basic_card,json=basicCard,proto3,oneof"`
 }
 type Intent_Message_Suggestions_ struct {
-	Suggestions *Intent_Message_Suggestions `protobuf:"bytes,9,opt,name=suggestions,oneof"`
+	Suggestions *Intent_Message_Suggestions `protobuf:"bytes,9,opt,name=suggestions,proto3,oneof"`
 }
 type Intent_Message_LinkOutSuggestion_ struct {
-	LinkOutSuggestion *Intent_Message_LinkOutSuggestion `protobuf:"bytes,10,opt,name=link_out_suggestion,json=linkOutSuggestion,oneof"`
+	LinkOutSuggestion *Intent_Message_LinkOutSuggestion `protobuf:"bytes,10,opt,name=link_out_suggestion,json=linkOutSuggestion,proto3,oneof"`
 }
 type Intent_Message_ListSelect_ struct {
-	ListSelect *Intent_Message_ListSelect `protobuf:"bytes,11,opt,name=list_select,json=listSelect,oneof"`
+	ListSelect *Intent_Message_ListSelect `protobuf:"bytes,11,opt,name=list_select,json=listSelect,proto3,oneof"`
 }
 type Intent_Message_CarouselSelect_ struct {
-	CarouselSelect *Intent_Message_CarouselSelect `protobuf:"bytes,12,opt,name=carousel_select,json=carouselSelect,oneof"`
+	CarouselSelect *Intent_Message_CarouselSelect `protobuf:"bytes,12,opt,name=carousel_select,json=carouselSelect,proto3,oneof"`
 }
 
 func (*Intent_Message_Text_) isIntent_Message_Message()              {}
@@ -1150,7 +1150,7 @@ func _Intent_Message_OneofSizer(msg proto.Message) (n int) {
 // The text response message.
 type Intent_Message_Text struct {
 	// Optional. The collection of the agent's responses.
-	Text                 []string `protobuf:"bytes,1,rep,name=text" json:"text,omitempty"`
+	Text                 []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1190,10 +1190,10 @@ func (m *Intent_Message_Text) GetText() []string {
 // The image response message.
 type Intent_Message_Image struct {
 	// Optional. The public URI to an image file.
-	ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. A text description of the image to be used for accessibility,
 	// e.g., screen readers.
-	AccessibilityText    string   `protobuf:"bytes,2,opt,name=accessibility_text,json=accessibilityText" json:"accessibility_text,omitempty"`
+	AccessibilityText    string   `protobuf:"bytes,2,opt,name=accessibility_text,json=accessibilityText,proto3" json:"accessibility_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1240,9 +1240,9 @@ func (m *Intent_Message_Image) GetAccessibilityText() string {
 // The quick replies response message.
 type Intent_Message_QuickReplies struct {
 	// Optional. The title of the collection of quick replies.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The collection of quick replies.
-	QuickReplies         []string `protobuf:"bytes,2,rep,name=quick_replies,json=quickReplies" json:"quick_replies,omitempty"`
+	QuickReplies         []string `protobuf:"bytes,2,rep,name=quick_replies,json=quickReplies,proto3" json:"quick_replies,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1289,13 +1289,13 @@ func (m *Intent_Message_QuickReplies) GetQuickReplies() []string {
 // The card response message.
 type Intent_Message_Card struct {
 	// Optional. The title of the card.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The subtitle of the card.
-	Subtitle string `protobuf:"bytes,2,opt,name=subtitle" json:"subtitle,omitempty"`
+	Subtitle string `protobuf:"bytes,2,opt,name=subtitle,proto3" json:"subtitle,omitempty"`
 	// Optional. The public URI to an image file for the card.
-	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. The collection of card buttons.
-	Buttons              []*Intent_Message_Card_Button `protobuf:"bytes,4,rep,name=buttons" json:"buttons,omitempty"`
+	Buttons              []*Intent_Message_Card_Button `protobuf:"bytes,4,rep,name=buttons,proto3" json:"buttons,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -1356,10 +1356,10 @@ func (m *Intent_Message_Card) GetButtons() []*Intent_Message_Card_Button {
 // Optional. Contains information about a button.
 type Intent_Message_Card_Button struct {
 	// Optional. The text to show on the button.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Optional. The text to send back to the Dialogflow API or a URI to
 	// open.
-	Postback             string   `protobuf:"bytes,2,opt,name=postback" json:"postback,omitempty"`
+	Postback             string   `protobuf:"bytes,2,opt,name=postback,proto3" json:"postback,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1407,13 +1407,13 @@ func (m *Intent_Message_Card_Button) GetPostback() string {
 type Intent_Message_SimpleResponse struct {
 	// One of text_to_speech or ssml must be provided. The plain text of the
 	// speech output. Mutually exclusive with ssml.
-	TextToSpeech string `protobuf:"bytes,1,opt,name=text_to_speech,json=textToSpeech" json:"text_to_speech,omitempty"`
+	TextToSpeech string `protobuf:"bytes,1,opt,name=text_to_speech,json=textToSpeech,proto3" json:"text_to_speech,omitempty"`
 	// One of text_to_speech or ssml must be provided. Structured spoken
 	// response to the user in the SSML format. Mutually exclusive with
 	// text_to_speech.
-	Ssml string `protobuf:"bytes,2,opt,name=ssml" json:"ssml,omitempty"`
+	Ssml string `protobuf:"bytes,2,opt,name=ssml,proto3" json:"ssml,omitempty"`
 	// Optional. The text to display.
-	DisplayText          string   `protobuf:"bytes,3,opt,name=display_text,json=displayText" json:"display_text,omitempty"`
+	DisplayText          string   `protobuf:"bytes,3,opt,name=display_text,json=displayText,proto3" json:"display_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1470,7 +1470,7 @@ func (m *Intent_Message_SimpleResponse) GetDisplayText() string {
 // `SimpleResponse`.
 type Intent_Message_SimpleResponses struct {
 	// Required. The list of simple responses.
-	SimpleResponses      []*Intent_Message_SimpleResponse `protobuf:"bytes,1,rep,name=simple_responses,json=simpleResponses" json:"simple_responses,omitempty"`
+	SimpleResponses      []*Intent_Message_SimpleResponse `protobuf:"bytes,1,rep,name=simple_responses,json=simpleResponses,proto3" json:"simple_responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
 	XXX_unrecognized     []byte                           `json:"-"`
 	XXX_sizecache        int32                            `json:"-"`
@@ -1510,15 +1510,15 @@ func (m *Intent_Message_SimpleResponses) GetSimpleResponses() []*Intent_Message_
 // The basic card message. Useful for displaying information.
 type Intent_Message_BasicCard struct {
 	// Optional. The title of the card.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The subtitle of the card.
-	Subtitle string `protobuf:"bytes,2,opt,name=subtitle" json:"subtitle,omitempty"`
+	Subtitle string `protobuf:"bytes,2,opt,name=subtitle,proto3" json:"subtitle,omitempty"`
 	// Required, unless image is present. The body text of the card.
-	FormattedText string `protobuf:"bytes,3,opt,name=formatted_text,json=formattedText" json:"formatted_text,omitempty"`
+	FormattedText string `protobuf:"bytes,3,opt,name=formatted_text,json=formattedText,proto3" json:"formatted_text,omitempty"`
 	// Optional. The image for the card.
-	Image *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	// Optional. The collection of card buttons.
-	Buttons              []*Intent_Message_BasicCard_Button `protobuf:"bytes,5,rep,name=buttons" json:"buttons,omitempty"`
+	Buttons              []*Intent_Message_BasicCard_Button `protobuf:"bytes,5,rep,name=buttons,proto3" json:"buttons,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
 	XXX_unrecognized     []byte                             `json:"-"`
 	XXX_sizecache        int32                              `json:"-"`
@@ -1586,9 +1586,9 @@ func (m *Intent_Message_BasicCard) GetButtons() []*Intent_Message_BasicCard_Butt
 // The button object that appears at the bottom of a card.
 type Intent_Message_BasicCard_Button struct {
 	// Required. The title of the button.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Required. Action to take when a user taps on the button.
-	OpenUriAction        *Intent_Message_BasicCard_Button_OpenUriAction `protobuf:"bytes,2,opt,name=open_uri_action,json=openUriAction" json:"open_uri_action,omitempty"`
+	OpenUriAction        *Intent_Message_BasicCard_Button_OpenUriAction `protobuf:"bytes,2,opt,name=open_uri_action,json=openUriAction,proto3" json:"open_uri_action,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
 	XXX_unrecognized     []byte                                         `json:"-"`
 	XXX_sizecache        int32                                          `json:"-"`
@@ -1635,7 +1635,7 @@ func (m *Intent_Message_BasicCard_Button) GetOpenUriAction() *Intent_Message_Bas
 // Opens the given URI.
 type Intent_Message_BasicCard_Button_OpenUriAction struct {
 	// Required. The HTTP or HTTPS scheme URI.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1680,7 +1680,7 @@ func (m *Intent_Message_BasicCard_Button_OpenUriAction) GetUri() string {
 // to the conversation.
 type Intent_Message_Suggestion struct {
 	// Required. The text shown the in the suggestion chip.
-	Title                string   `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title                string   `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1720,7 +1720,7 @@ func (m *Intent_Message_Suggestion) GetTitle() string {
 // The collection of suggestions.
 type Intent_Message_Suggestions struct {
 	// Required. The list of suggested replies.
-	Suggestions          []*Intent_Message_Suggestion `protobuf:"bytes,1,rep,name=suggestions" json:"suggestions,omitempty"`
+	Suggestions          []*Intent_Message_Suggestion `protobuf:"bytes,1,rep,name=suggestions,proto3" json:"suggestions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -1761,10 +1761,10 @@ func (m *Intent_Message_Suggestions) GetSuggestions() []*Intent_Message_Suggesti
 // or website associated with this agent.
 type Intent_Message_LinkOutSuggestion struct {
 	// Required. The name of the app or site this chip is linking to.
-	DestinationName string `protobuf:"bytes,1,opt,name=destination_name,json=destinationName" json:"destination_name,omitempty"`
+	DestinationName string `protobuf:"bytes,1,opt,name=destination_name,json=destinationName,proto3" json:"destination_name,omitempty"`
 	// Required. The URI of the app or site to open when the user taps the
 	// suggestion chip.
-	Uri                  string   `protobuf:"bytes,2,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1811,9 +1811,9 @@ func (m *Intent_Message_LinkOutSuggestion) GetUri() string {
 // The card for presenting a list of options to select from.
 type Intent_Message_ListSelect struct {
 	// Optional. The overall title of the list.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Required. List items.
-	Items                []*Intent_Message_ListSelect_Item `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
+	Items                []*Intent_Message_ListSelect_Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -1860,13 +1860,13 @@ func (m *Intent_Message_ListSelect) GetItems() []*Intent_Message_ListSelect_Item
 // An item in the list.
 type Intent_Message_ListSelect_Item struct {
 	// Required. Additional information about this option.
-	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"`
+	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
 	// Required. The title of the list item.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The main text describing the item.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The image to display.
-	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1927,7 +1927,7 @@ func (m *Intent_Message_ListSelect_Item) GetImage() *Intent_Message_Image {
 // The card for presenting a carousel of options to select from.
 type Intent_Message_CarouselSelect struct {
 	// Required. Carousel items.
-	Items                []*Intent_Message_CarouselSelect_Item `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
+	Items                []*Intent_Message_CarouselSelect_Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
 	XXX_unrecognized     []byte                                `json:"-"`
 	XXX_sizecache        int32                                 `json:"-"`
@@ -1967,13 +1967,13 @@ func (m *Intent_Message_CarouselSelect) GetItems() []*Intent_Message_CarouselSel
 // An item in the carousel.
 type Intent_Message_CarouselSelect_Item struct {
 	// Required. Additional info about the option item.
-	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"`
+	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
 	// Required. Title of the carousel item.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The body text of the card.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The image to display.
-	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2036,10 +2036,10 @@ func (m *Intent_Message_CarouselSelect_Item) GetImage() *Intent_Message_Image {
 type Intent_Message_SelectItemInfo struct {
 	// Required. A unique key that will be sent back to the agent if this
 	// response is given.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// Optional. A list of synonyms that can also be used to trigger this
 	// item in dialog.
-	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms" json:"synonyms,omitempty"`
+	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms,proto3" json:"synonyms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2087,10 +2087,10 @@ func (m *Intent_Message_SelectItemInfo) GetSynonyms() []string {
 type Intent_FollowupIntentInfo struct {
 	// The unique identifier of the followup intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	FollowupIntentName string `protobuf:"bytes,1,opt,name=followup_intent_name,json=followupIntentName" json:"followup_intent_name,omitempty"`
+	FollowupIntentName string `protobuf:"bytes,1,opt,name=followup_intent_name,json=followupIntentName,proto3" json:"followup_intent_name,omitempty"`
 	// The unique identifier of the followup intent parent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	ParentFollowupIntentName string   `protobuf:"bytes,2,opt,name=parent_followup_intent_name,json=parentFollowupIntentName" json:"parent_followup_intent_name,omitempty"`
+	ParentFollowupIntentName string   `protobuf:"bytes,2,opt,name=parent_followup_intent_name,json=parentFollowupIntentName,proto3" json:"parent_followup_intent_name,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -2138,20 +2138,20 @@ func (m *Intent_FollowupIntentInfo) GetParentFollowupIntentName() string {
 type ListIntentsRequest struct {
 	// Required. The agent to list all intents from.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The language to list training phrases, parameters and rich
 	// messages for. If not specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
+	IntentView IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2220,10 +2220,10 @@ func (m *ListIntentsRequest) GetPageToken() string {
 type ListIntentsResponse struct {
 	// The list of agent intents. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	Intents []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2271,15 +2271,15 @@ func (m *ListIntentsResponse) GetNextPageToken() string {
 type GetIntentRequest struct {
 	// Required. The name of the intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The language to retrieve training phrases, parameters and rich
 	// messages for. If not specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2334,17 +2334,17 @@ func (m *GetIntentRequest) GetIntentView() IntentView {
 type CreateIntentRequest struct {
 	// Required. The agent to create a intent for.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The intent to create.
-	Intent *Intent `protobuf:"bytes,2,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,2,opt,name=intent,proto3" json:"intent,omitempty"`
 	// Optional. The language of training phrases, parameters and rich messages
 	// defined in `intent`. If not specified, the agent's default language is
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2406,17 +2406,17 @@ func (m *CreateIntentRequest) GetIntentView() IntentView {
 type UpdateIntentRequest struct {
 	// Required. The intent to update.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Intent *Intent `protobuf:"bytes,1,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"`
 	// Optional. The language of training phrases, parameters and rich messages
 	// defined in `intent`. If not specified, the agent's default language is
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2478,7 +2478,7 @@ func (m *UpdateIntentRequest) GetIntentView() IntentView {
 type DeleteIntentRequest struct {
 	// Required. The name of the intent to delete.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2519,7 +2519,7 @@ func (m *DeleteIntentRequest) GetName() string {
 type BatchUpdateIntentsRequest struct {
 	// Required. The name of the agent to update or create intents in.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The source of the intent batch.
 	//
 	// Types that are valid to be assigned to IntentBatch:
@@ -2531,11 +2531,11 @@ type BatchUpdateIntentsRequest struct {
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,6,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,6,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2570,10 +2570,10 @@ type isBatchUpdateIntentsRequest_IntentBatch interface {
 }
 
 type BatchUpdateIntentsRequest_IntentBatchUri struct {
-	IntentBatchUri string `protobuf:"bytes,2,opt,name=intent_batch_uri,json=intentBatchUri,oneof"`
+	IntentBatchUri string `protobuf:"bytes,2,opt,name=intent_batch_uri,json=intentBatchUri,proto3,oneof"`
 }
 type BatchUpdateIntentsRequest_IntentBatchInline struct {
-	IntentBatchInline *IntentBatch `protobuf:"bytes,3,opt,name=intent_batch_inline,json=intentBatchInline,oneof"`
+	IntentBatchInline *IntentBatch `protobuf:"bytes,3,opt,name=intent_batch_inline,json=intentBatchInline,proto3,oneof"`
 }
 
 func (*BatchUpdateIntentsRequest_IntentBatchUri) isBatchUpdateIntentsRequest_IntentBatch()    {}
@@ -2701,7 +2701,7 @@ func _BatchUpdateIntentsRequest_OneofSizer(msg proto.Message) (n int) {
 // The response message for [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents].
 type BatchUpdateIntentsResponse struct {
 	// The collection of updated or created intents.
-	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2742,10 +2742,10 @@ func (m *BatchUpdateIntentsResponse) GetIntents() []*Intent {
 type BatchDeleteIntentsRequest struct {
 	// Required. The name of the agent to delete all entities types for. Format:
 	// `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of intents to delete. Only intent `name` must be
 	// filled in.
-	Intents              []*Intent `protobuf:"bytes,2,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,2,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2792,7 +2792,7 @@ func (m *BatchDeleteIntentsRequest) GetIntents() []*Intent {
 // This message is a wrapper around a collection of intents.
 type IntentBatch struct {
 	// A collection of intents.
-	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2973,8 +2973,7 @@ func (c *intentsClient) BatchDeleteIntents(ctx context.Context, in *BatchDeleteI
 	return out, nil
 }
 
-// Server API for Intents service
-
+// IntentsServer is the server API for Intents service.
 type IntentsServer interface {
 	// Returns the list of all intents in the specified agent.
 	ListIntents(context.Context, *ListIntentsRequest) (*ListIntentsResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2/session.pb.go b/googleapis/cloud/dialogflow/v2/session.pb.go
index f6fc5fef754aabb46c99f13ad225b5cbc1067eda..07e8e18a22b57918fa161f51aa22fafe063571f4 100644
--- a/googleapis/cloud/dialogflow/v2/session.pb.go
+++ b/googleapis/cloud/dialogflow/v2/session.pb.go
@@ -140,9 +140,9 @@ type DetectIntentRequest struct {
 	// caller to choose an appropriate session ID. It can be a random number or
 	// some type of user identifier (preferably hashed). The length of the session
 	// ID must not exceed 36 bytes.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Optional. The parameters of this query.
-	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams" json:"query_params,omitempty"`
+	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"`
 	// Required. The input specification. It can be set to:
 	//
 	// 1.  an audio config
@@ -151,7 +151,7 @@ type DetectIntentRequest struct {
 	// 2.  a conversational query in the form of text, or
 	//
 	// 3.  an event that specifies which intent to trigger.
-	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput" json:"query_input,omitempty"`
+	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"`
 	// Optional. The natural language speech audio to be processed. This field
 	// should be populated iff `query_input` is set to an input audio config.
 	// A single request can contain up to 1 minute of speech audio data.
@@ -217,12 +217,12 @@ func (m *DetectIntentRequest) GetInputAudio() []byte {
 type DetectIntentResponse struct {
 	// The unique identifier of the response. It can be used to
 	// locate a response in the training example set or for reporting issues.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The results of the conversational query or event processing.
-	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Specifies the status of the webhook request. `webhook_status`
 	// is never populated in webhook requests.
-	WebhookStatus        *status.Status `protobuf:"bytes,3,opt,name=webhook_status,json=webhookStatus" json:"webhook_status,omitempty"`
+	WebhookStatus        *status.Status `protobuf:"bytes,3,opt,name=webhook_status,json=webhookStatus,proto3" json:"webhook_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -279,22 +279,22 @@ type QueryParameters struct {
 	// [time zone database](https://www.iana.org/time-zones), e.g.,
 	// America/New_York, Europe/Paris. If not provided, the time zone specified in
 	// agent settings is used.
-	TimeZone string `protobuf:"bytes,1,opt,name=time_zone,json=timeZone" json:"time_zone,omitempty"`
+	TimeZone string `protobuf:"bytes,1,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
 	// Optional. The geo location of this conversational query.
-	GeoLocation *latlng.LatLng `protobuf:"bytes,2,opt,name=geo_location,json=geoLocation" json:"geo_location,omitempty"`
+	GeoLocation *latlng.LatLng `protobuf:"bytes,2,opt,name=geo_location,json=geoLocation,proto3" json:"geo_location,omitempty"`
 	// Optional. The collection of contexts to be activated before this query is
 	// executed.
-	Contexts []*Context `protobuf:"bytes,3,rep,name=contexts" json:"contexts,omitempty"`
+	Contexts []*Context `protobuf:"bytes,3,rep,name=contexts,proto3" json:"contexts,omitempty"`
 	// Optional. Specifies whether to delete all contexts in the current session
 	// before the new ones are activated.
-	ResetContexts bool `protobuf:"varint,4,opt,name=reset_contexts,json=resetContexts" json:"reset_contexts,omitempty"`
+	ResetContexts bool `protobuf:"varint,4,opt,name=reset_contexts,json=resetContexts,proto3" json:"reset_contexts,omitempty"`
 	// Optional. The collection of session entity types to replace or extend
 	// developer entities with for this query only. The entity synonyms apply
 	// to all languages.
-	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,5,rep,name=session_entity_types,json=sessionEntityTypes" json:"session_entity_types,omitempty"`
+	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,5,rep,name=session_entity_types,json=sessionEntityTypes,proto3" json:"session_entity_types,omitempty"`
 	// Optional. This field can be used to pass custom data into the webhook
 	// associated with the agent. Arbitrary JSON objects are supported.
-	Payload              *_struct.Struct `protobuf:"bytes,6,opt,name=payload" json:"payload,omitempty"`
+	Payload              *_struct.Struct `protobuf:"bytes,6,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -416,13 +416,13 @@ type isQueryInput_Input interface {
 }
 
 type QueryInput_AudioConfig struct {
-	AudioConfig *InputAudioConfig `protobuf:"bytes,1,opt,name=audio_config,json=audioConfig,oneof"`
+	AudioConfig *InputAudioConfig `protobuf:"bytes,1,opt,name=audio_config,json=audioConfig,proto3,oneof"`
 }
 type QueryInput_Text struct {
-	Text *TextInput `protobuf:"bytes,2,opt,name=text,oneof"`
+	Text *TextInput `protobuf:"bytes,2,opt,name=text,proto3,oneof"`
 }
 type QueryInput_Event struct {
-	Event *EventInput `protobuf:"bytes,3,opt,name=event,oneof"`
+	Event *EventInput `protobuf:"bytes,3,opt,name=event,proto3,oneof"`
 }
 
 func (*QueryInput_AudioConfig) isQueryInput_Input() {}
@@ -559,11 +559,11 @@ type QueryResult struct {
 	//   contains the speech recognition result. If speech recognizer produced
 	//   multiple alternatives, a particular one is picked.
 	// - If an event was provided as input, `query_text` is not set.
-	QueryText string `protobuf:"bytes,1,opt,name=query_text,json=queryText" json:"query_text,omitempty"`
+	QueryText string `protobuf:"bytes,1,opt,name=query_text,json=queryText,proto3" json:"query_text,omitempty"`
 	// The language that was triggered during intent detection.
 	// See [Language Support](https://dialogflow.com/docs/reference/language)
 	// for a list of the currently supported language codes.
-	LanguageCode string `protobuf:"bytes,15,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,15,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// The Speech recognition confidence between 0.0 and 1.0. A higher number
 	// indicates an estimated greater likelihood that the recognized words are
 	// correct. The default of 0.0 is a sentinel value indicating that confidence
@@ -573,42 +573,42 @@ type QueryResult struct {
 	// even set. In particular this field isn't set in Webhook calls and for
 	// StreamingDetectIntent since the streaming endpoint has separate confidence
 	// estimates per portion of the audio in StreamingRecognitionResult.
-	SpeechRecognitionConfidence float32 `protobuf:"fixed32,2,opt,name=speech_recognition_confidence,json=speechRecognitionConfidence" json:"speech_recognition_confidence,omitempty"`
+	SpeechRecognitionConfidence float32 `protobuf:"fixed32,2,opt,name=speech_recognition_confidence,json=speechRecognitionConfidence,proto3" json:"speech_recognition_confidence,omitempty"`
 	// The action name from the matched intent.
-	Action string `protobuf:"bytes,3,opt,name=action" json:"action,omitempty"`
+	Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"`
 	// The collection of extracted parameters.
-	Parameters *_struct.Struct `protobuf:"bytes,4,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters *_struct.Struct `protobuf:"bytes,4,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	// This field is set to:
 	// - `false` if the matched intent has required parameters and not all of
 	//    the required parameter values have been collected.
 	// - `true` if all required parameter values have been collected, or if the
 	//    matched intent doesn't contain any required parameters.
-	AllRequiredParamsPresent bool `protobuf:"varint,5,opt,name=all_required_params_present,json=allRequiredParamsPresent" json:"all_required_params_present,omitempty"`
+	AllRequiredParamsPresent bool `protobuf:"varint,5,opt,name=all_required_params_present,json=allRequiredParamsPresent,proto3" json:"all_required_params_present,omitempty"`
 	// The text to be pronounced to the user or shown on the screen.
-	FulfillmentText string `protobuf:"bytes,6,opt,name=fulfillment_text,json=fulfillmentText" json:"fulfillment_text,omitempty"`
+	FulfillmentText string `protobuf:"bytes,6,opt,name=fulfillment_text,json=fulfillmentText,proto3" json:"fulfillment_text,omitempty"`
 	// The collection of rich messages to present to the user.
-	FulfillmentMessages []*Intent_Message `protobuf:"bytes,7,rep,name=fulfillment_messages,json=fulfillmentMessages" json:"fulfillment_messages,omitempty"`
+	FulfillmentMessages []*Intent_Message `protobuf:"bytes,7,rep,name=fulfillment_messages,json=fulfillmentMessages,proto3" json:"fulfillment_messages,omitempty"`
 	// If the query was fulfilled by a webhook call, this field is set to the
 	// value of the `source` field returned in the webhook response.
-	WebhookSource string `protobuf:"bytes,8,opt,name=webhook_source,json=webhookSource" json:"webhook_source,omitempty"`
+	WebhookSource string `protobuf:"bytes,8,opt,name=webhook_source,json=webhookSource,proto3" json:"webhook_source,omitempty"`
 	// If the query was fulfilled by a webhook call, this field is set to the
 	// value of the `payload` field returned in the webhook response.
-	WebhookPayload *_struct.Struct `protobuf:"bytes,9,opt,name=webhook_payload,json=webhookPayload" json:"webhook_payload,omitempty"`
+	WebhookPayload *_struct.Struct `protobuf:"bytes,9,opt,name=webhook_payload,json=webhookPayload,proto3" json:"webhook_payload,omitempty"`
 	// The collection of output contexts. If applicable,
 	// `output_contexts.parameters` contains entries with name
 	// `<parameter name>.original` containing the original parameter values
 	// before the query.
-	OutputContexts []*Context `protobuf:"bytes,10,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,10,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// The intent that matched the conversational query. Some, not
 	// all fields are filled in this message, including but not limited to:
 	// `name`, `display_name` and `webhook_state`.
-	Intent *Intent `protobuf:"bytes,11,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,11,opt,name=intent,proto3" json:"intent,omitempty"`
 	// The intent detection confidence. Values range from 0.0
 	// (completely uncertain) to 1.0 (completely certain).
-	IntentDetectionConfidence float32 `protobuf:"fixed32,12,opt,name=intent_detection_confidence,json=intentDetectionConfidence" json:"intent_detection_confidence,omitempty"`
+	IntentDetectionConfidence float32 `protobuf:"fixed32,12,opt,name=intent_detection_confidence,json=intentDetectionConfidence,proto3" json:"intent_detection_confidence,omitempty"`
 	// The free-form diagnostic info. For example, this field
 	// could contain webhook call latency.
-	DiagnosticInfo       *_struct.Struct `protobuf:"bytes,14,opt,name=diagnostic_info,json=diagnosticInfo" json:"diagnostic_info,omitempty"`
+	DiagnosticInfo       *_struct.Struct `protobuf:"bytes,14,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -754,9 +754,9 @@ type StreamingDetectIntentRequest struct {
 	// caller to choose an appropriate <Session ID>. It can be a random number or
 	// some type of user identifier (preferably hashed). The length of the session
 	// ID must not exceed 36 characters.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Optional. The parameters of this query.
-	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams" json:"query_params,omitempty"`
+	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"`
 	// Required. The input specification. It can be set to:
 	//
 	// 1.  an audio config which instructs the speech recognizer how to process
@@ -765,7 +765,7 @@ type StreamingDetectIntentRequest struct {
 	// 2.  a conversational query in the form of text, or
 	//
 	// 3.  an event that specifies which intent to trigger.
-	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput" json:"query_input,omitempty"`
+	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"`
 	// Optional. If `false` (default), recognition does not cease until the
 	// client closes the stream.
 	// If `true`, the recognizer will detect a single spoken utterance in input
@@ -774,7 +774,7 @@ type StreamingDetectIntentRequest struct {
 	// client should close the stream and start a new request with a new stream as
 	// needed.
 	// This setting is ignored when `query_input` is a piece of text or an event.
-	SingleUtterance bool `protobuf:"varint,4,opt,name=single_utterance,json=singleUtterance" json:"single_utterance,omitempty"`
+	SingleUtterance bool `protobuf:"varint,4,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"`
 	// Optional. The input audio content to be recognized. Must be sent if
 	// `query_input` was set to a streaming input audio config. The complete audio
 	// over all streaming messages must not exceed 1 minute.
@@ -858,13 +858,13 @@ func (m *StreamingDetectIntentRequest) GetInputAudio() []byte {
 type StreamingDetectIntentResponse struct {
 	// The unique identifier of the response. It can be used to
 	// locate a response in the training example set or for reporting issues.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The result of speech recognition.
-	RecognitionResult *StreamingRecognitionResult `protobuf:"bytes,2,opt,name=recognition_result,json=recognitionResult" json:"recognition_result,omitempty"`
+	RecognitionResult *StreamingRecognitionResult `protobuf:"bytes,2,opt,name=recognition_result,json=recognitionResult,proto3" json:"recognition_result,omitempty"`
 	// The result of the conversational query or event processing.
-	QueryResult *QueryResult `protobuf:"bytes,3,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,3,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Specifies the status of the webhook request.
-	WebhookStatus        *status.Status `protobuf:"bytes,4,opt,name=webhook_status,json=webhookStatus" json:"webhook_status,omitempty"`
+	WebhookStatus        *status.Status `protobuf:"bytes,4,opt,name=webhook_status,json=webhookStatus,proto3" json:"webhook_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -957,16 +957,16 @@ func (m *StreamingDetectIntentResponse) GetWebhookStatus() *status.Status {
 // *  for `MESSAGE_TYPE_END_OF_SINGLE_UTTERANCE`: only `event_type`.
 type StreamingRecognitionResult struct {
 	// Type of the result message.
-	MessageType StreamingRecognitionResult_MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,enum=google.cloud.dialogflow.v2.StreamingRecognitionResult_MessageType" json:"message_type,omitempty"`
+	MessageType StreamingRecognitionResult_MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3,enum=google.cloud.dialogflow.v2.StreamingRecognitionResult_MessageType" json:"message_type,omitempty"`
 	// Transcript text representing the words that the user spoke.
 	// Populated if and only if `event_type` = `RECOGNITION_EVENT_TRANSCRIPT`.
-	Transcript string `protobuf:"bytes,2,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,2,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// The default of 0.0 is a sentinel value indicating `confidence` was not set.
 	// If `false`, the `StreamingRecognitionResult` represents an
 	// interim result that may change. If `true`, the recognizer will not return
 	// any further hypotheses about this piece of the audio. May only be populated
 	// for `event_type` = `RECOGNITION_EVENT_TRANSCRIPT`.
-	IsFinal bool `protobuf:"varint,3,opt,name=is_final,json=isFinal" json:"is_final,omitempty"`
+	IsFinal bool `protobuf:"varint,3,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
 	// The Speech confidence between 0.0 and 1.0 for the current portion of audio.
 	// A higher number indicates an estimated greater likelihood that the
 	// recognized words are correct. The default of 0.0 is a sentinel value
@@ -974,7 +974,7 @@ type StreamingRecognitionResult struct {
 	//
 	// This field is typically only provided if `is_final` is true and you should
 	// not rely on it being accurate or even set.
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1035,22 +1035,22 @@ func (m *StreamingRecognitionResult) GetConfidence() float32 {
 // Instructs the speech recognizer how to process the audio content.
 type InputAudioConfig struct {
 	// Required. Audio encoding of the audio content to process.
-	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,enum=google.cloud.dialogflow.v2.AudioEncoding" json:"audio_encoding,omitempty"`
+	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,proto3,enum=google.cloud.dialogflow.v2.AudioEncoding" json:"audio_encoding,omitempty"`
 	// Required. Sample rate (in Hertz) of the audio content sent in the query.
 	// Refer to [Cloud Speech API documentation](/speech/docs/basics) for more
 	// details.
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// Required. The language of the supplied audio. Dialogflow does not do
 	// translations. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The collection of phrase hints which are used to boost accuracy
 	// of speech recognition.
 	// Refer to [Cloud Speech API documentation](/speech/docs/basics#phrase-hints)
 	// for more details.
-	PhraseHints          []string `protobuf:"bytes,4,rep,name=phrase_hints,json=phraseHints" json:"phrase_hints,omitempty"`
+	PhraseHints          []string `protobuf:"bytes,4,rep,name=phrase_hints,json=phraseHints,proto3" json:"phrase_hints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1112,12 +1112,12 @@ func (m *InputAudioConfig) GetPhraseHints() []string {
 type TextInput struct {
 	// Required. The UTF-8 encoded natural language text to be processed.
 	// Text length must not exceed 256 bytes.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Required. The language of this conversational query. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1168,14 +1168,14 @@ func (m *TextInput) GetLanguageCode() string {
 // `“Hello #welcome_event.name! What can I do for you today?”`.
 type EventInput struct {
 	// Required. The unique identifier of the event.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The collection of parameters associated with the event.
-	Parameters *_struct.Struct `protobuf:"bytes,2,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters *_struct.Struct `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	// Required. The language of this query. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1313,8 +1313,7 @@ func (x *sessionsStreamingDetectIntentClient) Recv() (*StreamingDetectIntentResp
 	return m, nil
 }
 
-// Server API for Sessions service
-
+// SessionsServer is the server API for Sessions service.
 type SessionsServer interface {
 	// Processes a natural language query and returns structured, actionable data
 	// as a result. This method is not idempotent, because it may cause contexts
diff --git a/googleapis/cloud/dialogflow/v2/session_entity_type.pb.go b/googleapis/cloud/dialogflow/v2/session_entity_type.pb.go
index 275b0c442cf1be5d19195cb22f493d546d7f29a7..5aaac80a5977321f8cd1f2c394ba3e02287cf1ef 100644
--- a/googleapis/cloud/dialogflow/v2/session_entity_type.pb.go
+++ b/googleapis/cloud/dialogflow/v2/session_entity_type.pb.go
@@ -73,13 +73,13 @@ type SessionEntityType struct {
 	// Required. The unique identifier of this session entity type. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
 	// Display Name>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. Indicates whether the additional data should override or
 	// supplement the developer entity type definition.
-	EntityOverrideMode SessionEntityType_EntityOverrideMode `protobuf:"varint,2,opt,name=entity_override_mode,json=entityOverrideMode,enum=google.cloud.dialogflow.v2.SessionEntityType_EntityOverrideMode" json:"entity_override_mode,omitempty"`
+	EntityOverrideMode SessionEntityType_EntityOverrideMode `protobuf:"varint,2,opt,name=entity_override_mode,json=entityOverrideMode,proto3,enum=google.cloud.dialogflow.v2.SessionEntityType_EntityOverrideMode" json:"entity_override_mode,omitempty"`
 	// Required. The collection of entities associated with this session entity
 	// type.
-	Entities             []*EntityType_Entity `protobuf:"bytes,3,rep,name=entities" json:"entities,omitempty"`
+	Entities             []*EntityType_Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -134,12 +134,12 @@ func (m *SessionEntityType) GetEntities() []*EntityType_Entity {
 type ListSessionEntityTypesRequest struct {
 	// Required. The session to list all session entity types from.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -194,10 +194,10 @@ func (m *ListSessionEntityTypesRequest) GetPageToken() string {
 type ListSessionEntityTypesResponse struct {
 	// The list of session entity types. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,1,rep,name=session_entity_types,json=sessionEntityTypes" json:"session_entity_types,omitempty"`
+	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,1,rep,name=session_entity_types,json=sessionEntityTypes,proto3" json:"session_entity_types,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -246,7 +246,7 @@ type GetSessionEntityTypeRequest struct {
 	// Required. The name of the session entity type. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
 	// Display Name>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -287,9 +287,9 @@ func (m *GetSessionEntityTypeRequest) GetName() string {
 type CreateSessionEntityTypeRequest struct {
 	// Required. The session to create a session entity type for.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The session entity type to create.
-	SessionEntityType    *SessionEntityType `protobuf:"bytes,2,opt,name=session_entity_type,json=sessionEntityType" json:"session_entity_type,omitempty"`
+	SessionEntityType    *SessionEntityType `protobuf:"bytes,2,opt,name=session_entity_type,json=sessionEntityType,proto3" json:"session_entity_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -338,9 +338,9 @@ type UpdateSessionEntityTypeRequest struct {
 	// Required. The entity type to update. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
 	// Display Name>`.
-	SessionEntityType *SessionEntityType `protobuf:"bytes,1,opt,name=session_entity_type,json=sessionEntityType" json:"session_entity_type,omitempty"`
+	SessionEntityType *SessionEntityType `protobuf:"bytes,1,opt,name=session_entity_type,json=sessionEntityType,proto3" json:"session_entity_type,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -389,7 +389,7 @@ type DeleteSessionEntityTypeRequest struct {
 	// Required. The name of the entity type to delete. Format:
 	// `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity Type
 	// Display Name>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -514,8 +514,7 @@ func (c *sessionEntityTypesClient) DeleteSessionEntityType(ctx context.Context,
 	return out, nil
 }
 
-// Server API for SessionEntityTypes service
-
+// SessionEntityTypesServer is the server API for SessionEntityTypes service.
 type SessionEntityTypesServer interface {
 	// Returns the list of all session entity types in the specified session.
 	ListSessionEntityTypes(context.Context, *ListSessionEntityTypesRequest) (*ListSessionEntityTypesResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2/webhook.pb.go b/googleapis/cloud/dialogflow/v2/webhook.pb.go
index b72969859ecadf4a771a021b2b4f9735b9ba393f..275fe40db2cc1aec6b7c59a2a40e013eec668d1c 100644
--- a/googleapis/cloud/dialogflow/v2/webhook.pb.go
+++ b/googleapis/cloud/dialogflow/v2/webhook.pb.go
@@ -25,16 +25,16 @@ type WebhookRequest struct {
 	// The unique identifier of detectIntent request session.
 	// Can be used to identify end-user inside webhook implementation.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Session string `protobuf:"bytes,4,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,4,opt,name=session,proto3" json:"session,omitempty"`
 	// The unique identifier of the response. Contains the same value as
 	// `[Streaming]DetectIntentResponse.response_id`.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The result of the conversational query or event processing. Contains the
 	// same value as `[Streaming]DetectIntentResponse.query_result`.
-	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Optional. The contents of the original request that was passed to
 	// `[Streaming]DetectIntent` call.
-	OriginalDetectIntentRequest *OriginalDetectIntentRequest `protobuf:"bytes,3,opt,name=original_detect_intent_request,json=originalDetectIntentRequest" json:"original_detect_intent_request,omitempty"`
+	OriginalDetectIntentRequest *OriginalDetectIntentRequest `protobuf:"bytes,3,opt,name=original_detect_intent_request,json=originalDetectIntentRequest,proto3" json:"original_detect_intent_request,omitempty"`
 	XXX_NoUnkeyedLiteral        struct{}                     `json:"-"`
 	XXX_unrecognized            []byte                       `json:"-"`
 	XXX_sizecache               int32                        `json:"-"`
@@ -96,12 +96,12 @@ func (m *WebhookRequest) GetOriginalDetectIntentRequest() *OriginalDetectIntentR
 type WebhookResponse struct {
 	// Optional. The text to be shown on the screen. This value is passed directly
 	// to `QueryResult.fulfillment_text`.
-	FulfillmentText string `protobuf:"bytes,1,opt,name=fulfillment_text,json=fulfillmentText" json:"fulfillment_text,omitempty"`
+	FulfillmentText string `protobuf:"bytes,1,opt,name=fulfillment_text,json=fulfillmentText,proto3" json:"fulfillment_text,omitempty"`
 	// Optional. The collection of rich messages to present to the user. This
 	// value is passed directly to `QueryResult.fulfillment_messages`.
-	FulfillmentMessages []*Intent_Message `protobuf:"bytes,2,rep,name=fulfillment_messages,json=fulfillmentMessages" json:"fulfillment_messages,omitempty"`
+	FulfillmentMessages []*Intent_Message `protobuf:"bytes,2,rep,name=fulfillment_messages,json=fulfillmentMessages,proto3" json:"fulfillment_messages,omitempty"`
 	// Optional. This value is passed directly to `QueryResult.webhook_source`.
-	Source string `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"`
+	Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
 	// Optional. This value is passed directly to `QueryResult.webhook_payload`.
 	// See the related `fulfillment_messages[i].payload field`, which may be used
 	// as an alternative to this field.
@@ -125,13 +125,13 @@ type WebhookResponse struct {
 	//     }
 	//   }
 	// }</pre>
-	Payload *_struct.Struct `protobuf:"bytes,4,opt,name=payload" json:"payload,omitempty"`
+	Payload *_struct.Struct `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
 	// Optional. The collection of output contexts. This value is passed directly
 	// to `QueryResult.output_contexts`.
-	OutputContexts []*Context `protobuf:"bytes,5,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,5,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// Optional. Makes the platform immediately invoke another `DetectIntent` call
 	// internally with the specified event as input.
-	FollowupEventInput   *EventInput `protobuf:"bytes,6,opt,name=followup_event_input,json=followupEventInput" json:"followup_event_input,omitempty"`
+	FollowupEventInput   *EventInput `protobuf:"bytes,6,opt,name=followup_event_input,json=followupEventInput,proto3" json:"followup_event_input,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -208,10 +208,10 @@ func (m *WebhookResponse) GetFollowupEventInput() *EventInput {
 type OriginalDetectIntentRequest struct {
 	// The source of this request, e.g., `google`, `facebook`, `slack`. It is set
 	// by Dialogflow-owned servers.
-	Source string `protobuf:"bytes,1,opt,name=source" json:"source,omitempty"`
+	Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
 	// Optional. This field is set to the value of `QueryParameters.payload` field
 	// passed in the request.
-	Payload              *_struct.Struct `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"`
+	Payload              *_struct.Struct `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
diff --git a/googleapis/cloud/dialogflow/v2beta1/agent.pb.go b/googleapis/cloud/dialogflow/v2beta1/agent.pb.go
index d5573bda1a6171a65f7d947753d6bddac527095d..d9ca3970a66c464a9dbbe1d66db5ebd4584ae87a 100644
--- a/googleapis/cloud/dialogflow/v2beta1/agent.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/agent.pb.go
@@ -64,32 +64,32 @@ func (Agent_MatchMode) EnumDescriptor() ([]byte, []int) {
 type Agent struct {
 	// Required. The project of this agent.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The name of this agent.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. The default language of the agent as a language tag. See
 	// [Language Support](https://dialogflow.com/docs/reference/language) for a
 	// list of the currently supported language codes.
 	// This field cannot be set by the `Update` method.
-	DefaultLanguageCode string `protobuf:"bytes,3,opt,name=default_language_code,json=defaultLanguageCode" json:"default_language_code,omitempty"`
+	DefaultLanguageCode string `protobuf:"bytes,3,opt,name=default_language_code,json=defaultLanguageCode,proto3" json:"default_language_code,omitempty"`
 	// Optional. The list of all languages supported by this agent (except for the
 	// `default_language_code`).
-	SupportedLanguageCodes []string `protobuf:"bytes,4,rep,name=supported_language_codes,json=supportedLanguageCodes" json:"supported_language_codes,omitempty"`
+	SupportedLanguageCodes []string `protobuf:"bytes,4,rep,name=supported_language_codes,json=supportedLanguageCodes,proto3" json:"supported_language_codes,omitempty"`
 	// Required. The time zone of this agent from the
 	// [time zone database](https://www.iana.org/time-zones), e.g.,
 	// America/New_York, Europe/Paris.
-	TimeZone string `protobuf:"bytes,5,opt,name=time_zone,json=timeZone" json:"time_zone,omitempty"`
+	TimeZone string `protobuf:"bytes,5,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
 	// Optional. The description of this agent.
 	// The maximum length is 500 characters. If exceeded, the request is rejected.
-	Description string `protobuf:"bytes,6,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The URI of the agent's avatar.
 	// Avatars are used throughout the Dialogflow console and in the self-hosted
 	// [Web Demo](https://dialogflow.com/docs/integrations/web-demo) integration.
-	AvatarUri string `protobuf:"bytes,7,opt,name=avatar_uri,json=avatarUri" json:"avatar_uri,omitempty"`
+	AvatarUri string `protobuf:"bytes,7,opt,name=avatar_uri,json=avatarUri,proto3" json:"avatar_uri,omitempty"`
 	// Optional. Determines whether this agent should log conversation queries.
-	EnableLogging bool `protobuf:"varint,8,opt,name=enable_logging,json=enableLogging" json:"enable_logging,omitempty"`
+	EnableLogging bool `protobuf:"varint,8,opt,name=enable_logging,json=enableLogging,proto3" json:"enable_logging,omitempty"`
 	// Optional. Determines how intents are detected from user queries.
-	MatchMode Agent_MatchMode `protobuf:"varint,9,opt,name=match_mode,json=matchMode,enum=google.cloud.dialogflow.v2beta1.Agent_MatchMode" json:"match_mode,omitempty"`
+	MatchMode Agent_MatchMode `protobuf:"varint,9,opt,name=match_mode,json=matchMode,proto3,enum=google.cloud.dialogflow.v2beta1.Agent_MatchMode" json:"match_mode,omitempty"`
 	// Optional. To filter out false positive results and still get variety in
 	// matched natural language inputs for your agent, you can tune the machine
 	// learning classification threshold. If the returned score value is less than
@@ -97,7 +97,7 @@ type Agent struct {
 	// are no fallback intents defined, no intent will be triggered. The score
 	// values range from 0.0 (completely uncertain) to 1.0 (completely certain).
 	// If set to 0.0, the default of 0.3 is used.
-	ClassificationThreshold float32  `protobuf:"fixed32,10,opt,name=classification_threshold,json=classificationThreshold" json:"classification_threshold,omitempty"`
+	ClassificationThreshold float32  `protobuf:"fixed32,10,opt,name=classification_threshold,json=classificationThreshold,proto3" json:"classification_threshold,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -201,7 +201,7 @@ func (m *Agent) GetClassificationThreshold() float32 {
 type GetAgentRequest struct {
 	// Required. The project that the agent to fetch is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -242,12 +242,12 @@ func (m *GetAgentRequest) GetParent() string {
 type SearchAgentsRequest struct {
 	// Required. The project to list agents from.
 	// Format: `projects/<Project ID or '-'>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -302,10 +302,10 @@ func (m *SearchAgentsRequest) GetPageToken() string {
 type SearchAgentsResponse struct {
 	// The list of agents. There will be a maximum number of items returned based
 	// on the page_size field in the request.
-	Agents []*Agent `protobuf:"bytes,1,rep,name=agents" json:"agents,omitempty"`
+	Agents []*Agent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -353,7 +353,7 @@ func (m *SearchAgentsResponse) GetNextPageToken() string {
 type TrainAgentRequest struct {
 	// Required. The project that the agent to train is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -394,11 +394,11 @@ func (m *TrainAgentRequest) GetParent() string {
 type ExportAgentRequest struct {
 	// Required. The project that the agent to export is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The Google Cloud Storage URI to export the agent to.
 	// Note: The URI must start with
 	// "gs://". If left unspecified, the serialized agent is returned inline.
-	AgentUri             string   `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri" json:"agent_uri,omitempty"`
+	AgentUri             string   `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3" json:"agent_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -484,7 +484,7 @@ type isExportAgentResponse_Agent interface {
 }
 
 type ExportAgentResponse_AgentUri struct {
-	AgentUri string `protobuf:"bytes,1,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,1,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type ExportAgentResponse_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,2,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -584,7 +584,7 @@ func _ExportAgentResponse_OneofSizer(msg proto.Message) (n int) {
 type ImportAgentRequest struct {
 	// Required. The project that the agent to import is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The agent to import.
 	//
 	// Types that are valid to be assigned to Agent:
@@ -625,7 +625,7 @@ type isImportAgentRequest_Agent interface {
 }
 
 type ImportAgentRequest_AgentUri struct {
-	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type ImportAgentRequest_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,3,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -732,7 +732,7 @@ func _ImportAgentRequest_OneofSizer(msg proto.Message) (n int) {
 type RestoreAgentRequest struct {
 	// Required. The project that the agent to restore is associated with.
 	// Format: `projects/<Project ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The agent to restore.
 	//
 	// Types that are valid to be assigned to Agent:
@@ -773,7 +773,7 @@ type isRestoreAgentRequest_Agent interface {
 }
 
 type RestoreAgentRequest_AgentUri struct {
-	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,oneof"`
+	AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3,oneof"`
 }
 type RestoreAgentRequest_AgentContent struct {
 	AgentContent []byte `protobuf:"bytes,3,opt,name=agent_content,json=agentContent,proto3,oneof"`
@@ -1006,8 +1006,7 @@ func (c *agentsClient) RestoreAgent(ctx context.Context, in *RestoreAgentRequest
 	return out, nil
 }
 
-// Server API for Agents service
-
+// AgentsServer is the server API for Agents service.
 type AgentsServer interface {
 	// Retrieves the specified agent.
 	GetAgent(context.Context, *GetAgentRequest) (*Agent, error)
diff --git a/googleapis/cloud/dialogflow/v2beta1/context.pb.go b/googleapis/cloud/dialogflow/v2beta1/context.pb.go
index 0b88be6c0f36f79dba9f83c556340072c6c1b46c..a6535b0f94860ba7ab998d15617c295b1c622973 100644
--- a/googleapis/cloud/dialogflow/v2beta1/context.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/context.pb.go
@@ -38,16 +38,16 @@ type Context struct {
 	// always converted to lowercase. If <Environment ID> is not specified, we
 	// assume default 'draft' environment. If <User ID> is not specified, we
 	// assume default '-' user.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The number of conversational query requests after which the
 	// context expires. If set to `0` (the default) the context expires
 	// immediately. Contexts expire automatically after 10 minutes even if there
 	// are no matching queries.
-	LifespanCount int32 `protobuf:"varint,2,opt,name=lifespan_count,json=lifespanCount" json:"lifespan_count,omitempty"`
+	LifespanCount int32 `protobuf:"varint,2,opt,name=lifespan_count,json=lifespanCount,proto3" json:"lifespan_count,omitempty"`
 	// Optional. The collection of parameters associated with this context.
 	// Refer to [this doc](https://dialogflow.com/docs/actions-and-parameters) for
 	// syntax.
-	Parameters           *_struct.Struct `protobuf:"bytes,3,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters           *_struct.Struct `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -107,12 +107,12 @@ type ListContextsRequest struct {
 	// construction and will be available soon. If <Environment ID> is not
 	// specified, we assume default 'draft' environment. If <User ID> is not
 	// specified, we assume default '-' user.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -167,10 +167,10 @@ func (m *ListContextsRequest) GetPageToken() string {
 type ListContextsResponse struct {
 	// The list of contexts. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	Contexts []*Context `protobuf:"bytes,1,rep,name=contexts" json:"contexts,omitempty"`
+	Contexts []*Context `protobuf:"bytes,1,rep,name=contexts,proto3" json:"contexts,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -223,7 +223,7 @@ type GetContextRequest struct {
 	// users are under construction and will be available soon. If <Environment
 	// ID> is not specified, we assume default 'draft' environment. If <User ID>
 	// is not specified, we assume default '-' user.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -269,9 +269,9 @@ type CreateContextRequest struct {
 	// construction and will be available soon. If <Environment ID> is not
 	// specified, we assume default 'draft' environment. If <User ID> is not
 	// specified, we assume default '-' user.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The context to create.
-	Context              *Context `protobuf:"bytes,2,opt,name=context" json:"context,omitempty"`
+	Context              *Context `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -318,9 +318,9 @@ func (m *CreateContextRequest) GetContext() *Context {
 // The request message for [Contexts.UpdateContext][google.cloud.dialogflow.v2beta1.Contexts.UpdateContext].
 type UpdateContextRequest struct {
 	// Required. The context to update.
-	Context *Context `protobuf:"bytes,1,opt,name=context" json:"context,omitempty"`
+	Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -374,7 +374,7 @@ type DeleteContextRequest struct {
 	// ID> is not specified, we assume default 'draft' environment. If <User ID>
 	// is not specified, we assume default
 	// '-' user.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -420,7 +420,7 @@ type DeleteAllContextsRequest struct {
 	// available soon. If <Environment ID> is not specified we assume default
 	// 'draft' environment. If <User ID> is not specified, we assume default
 	// '-' user.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -556,8 +556,7 @@ func (c *contextsClient) DeleteAllContexts(ctx context.Context, in *DeleteAllCon
 	return out, nil
 }
 
-// Server API for Contexts service
-
+// ContextsServer is the server API for Contexts service.
 type ContextsServer interface {
 	// Returns the list of all contexts in the specified session.
 	ListContexts(context.Context, *ListContextsRequest) (*ListContextsResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2beta1/entity_type.pb.go b/googleapis/cloud/dialogflow/v2beta1/entity_type.pb.go
index 82d09bfa0722d549b62558cd9914b31bc1d1df6b..d417e88e660029d2ce015e5b31d7b635e9d26627 100644
--- a/googleapis/cloud/dialogflow/v2beta1/entity_type.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/entity_type.pb.go
@@ -98,16 +98,16 @@ type EntityType struct {
 	// automatically.
 	// The unique identifier of the entity type. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of the entity.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. Indicates the kind of entity type.
-	Kind EntityType_Kind `protobuf:"varint,3,opt,name=kind,enum=google.cloud.dialogflow.v2beta1.EntityType_Kind" json:"kind,omitempty"`
+	Kind EntityType_Kind `protobuf:"varint,3,opt,name=kind,proto3,enum=google.cloud.dialogflow.v2beta1.EntityType_Kind" json:"kind,omitempty"`
 	// Optional. Indicates whether the entity type can be automatically
 	// expanded.
-	AutoExpansionMode EntityType_AutoExpansionMode `protobuf:"varint,4,opt,name=auto_expansion_mode,json=autoExpansionMode,enum=google.cloud.dialogflow.v2beta1.EntityType_AutoExpansionMode" json:"auto_expansion_mode,omitempty"`
+	AutoExpansionMode EntityType_AutoExpansionMode `protobuf:"varint,4,opt,name=auto_expansion_mode,json=autoExpansionMode,proto3,enum=google.cloud.dialogflow.v2beta1.EntityType_AutoExpansionMode" json:"auto_expansion_mode,omitempty"`
 	// Optional. The collection of entities associated with the entity type.
-	Entities             []*EntityType_Entity `protobuf:"bytes,6,rep,name=entities" json:"entities,omitempty"`
+	Entities             []*EntityType_Entity `protobuf:"bytes,6,rep,name=entities,proto3" json:"entities,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -180,10 +180,10 @@ type EntityType_Entity struct {
 	// For `KIND_LIST` entity types:
 	//   A string that can contain references to other entity types (with or
 	//   without aliases).
-	Value string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
 	// Required. A collection of synonyms. For `KIND_LIST` entity types this
 	// must contain exactly one synonym equal to `value`.
-	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms" json:"synonyms,omitempty"`
+	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms,proto3" json:"synonyms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -231,18 +231,18 @@ func (m *EntityType_Entity) GetSynonyms() []string {
 type ListEntityTypesRequest struct {
 	// Required. The agent to list all entity types from.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The language to list entity synonyms for. If not specified,
 	// the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -304,10 +304,10 @@ func (m *ListEntityTypesRequest) GetPageToken() string {
 type ListEntityTypesResponse struct {
 	// The list of agent entity types. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	EntityTypes []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -355,13 +355,13 @@ func (m *ListEntityTypesResponse) GetNextPageToken() string {
 type GetEntityTypeRequest struct {
 	// Required. The name of the entity type.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The language to retrieve entity synonyms for. If not specified,
 	// the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,15 +409,15 @@ func (m *GetEntityTypeRequest) GetLanguageCode() string {
 type CreateEntityTypeRequest struct {
 	// Required. The agent to create a entity type for.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The entity type to create.
-	EntityType *EntityType `protobuf:"bytes,2,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType *EntityType `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The language of entity synonyms defined in `entity_type`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -472,15 +472,15 @@ func (m *CreateEntityTypeRequest) GetLanguageCode() string {
 type UpdateEntityTypeRequest struct {
 	// Required. The entity type to update.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	EntityType *EntityType `protobuf:"bytes,1,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType *EntityType `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The language of entity synonyms defined in `entity_type`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -535,7 +535,7 @@ func (m *UpdateEntityTypeRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteEntityTypeRequest struct {
 	// Required. The name of the entity type to delete.
 	// Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -576,7 +576,7 @@ func (m *DeleteEntityTypeRequest) GetName() string {
 type BatchUpdateEntityTypesRequest struct {
 	// Required. The name of the agent to update or create entity types in.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The source of the entity type batch.
 	//
 	// For each entity type in the batch:
@@ -592,9 +592,9 @@ type BatchUpdateEntityTypesRequest struct {
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -629,10 +629,10 @@ type isBatchUpdateEntityTypesRequest_EntityTypeBatch interface {
 }
 
 type BatchUpdateEntityTypesRequest_EntityTypeBatchUri struct {
-	EntityTypeBatchUri string `protobuf:"bytes,2,opt,name=entity_type_batch_uri,json=entityTypeBatchUri,oneof"`
+	EntityTypeBatchUri string `protobuf:"bytes,2,opt,name=entity_type_batch_uri,json=entityTypeBatchUri,proto3,oneof"`
 }
 type BatchUpdateEntityTypesRequest_EntityTypeBatchInline struct {
-	EntityTypeBatchInline *EntityTypeBatch `protobuf:"bytes,3,opt,name=entity_type_batch_inline,json=entityTypeBatchInline,oneof"`
+	EntityTypeBatchInline *EntityTypeBatch `protobuf:"bytes,3,opt,name=entity_type_batch_inline,json=entityTypeBatchInline,proto3,oneof"`
 }
 
 func (*BatchUpdateEntityTypesRequest_EntityTypeBatchUri) isBatchUpdateEntityTypesRequest_EntityTypeBatch() {
@@ -755,7 +755,7 @@ func _BatchUpdateEntityTypesRequest_OneofSizer(msg proto.Message) (n int) {
 // The response message for [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2beta1.EntityTypes.BatchUpdateEntityTypes].
 type BatchUpdateEntityTypesResponse struct {
 	// The collection of updated or created entity types.
-	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -796,10 +796,10 @@ func (m *BatchUpdateEntityTypesResponse) GetEntityTypes() []*EntityType {
 type BatchDeleteEntityTypesRequest struct {
 	// Required. The name of the agent to delete all entities types for. Format:
 	// `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The names entity types to delete. All names must point to the
 	// same agent as `parent`.
-	EntityTypeNames      []string `protobuf:"bytes,2,rep,name=entity_type_names,json=entityTypeNames" json:"entity_type_names,omitempty"`
+	EntityTypeNames      []string `protobuf:"bytes,2,rep,name=entity_type_names,json=entityTypeNames,proto3" json:"entity_type_names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -847,15 +847,15 @@ func (m *BatchDeleteEntityTypesRequest) GetEntityTypeNames() []string {
 type BatchCreateEntitiesRequest struct {
 	// Required. The name of the entity type to create entities in. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of entities to create.
-	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities" json:"entities,omitempty"`
+	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -910,17 +910,17 @@ func (m *BatchCreateEntitiesRequest) GetLanguageCode() string {
 type BatchUpdateEntitiesRequest struct {
 	// Required. The name of the entity type to update the entities in. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of new entities to replace the existing entities.
-	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities" json:"entities,omitempty"`
+	Entities []*EntityType_Entity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -982,17 +982,17 @@ func (m *BatchUpdateEntitiesRequest) GetUpdateMask() *field_mask.FieldMask {
 type BatchDeleteEntitiesRequest struct {
 	// Required. The name of the entity type to delete entries for. Format:
 	// `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The canonical `values` of the entities to delete. Note that
 	// these are not fully-qualified names, i.e. they don't start with
 	// `projects/<Project ID>`.
-	EntityValues []string `protobuf:"bytes,2,rep,name=entity_values,json=entityValues" json:"entity_values,omitempty"`
+	EntityValues []string `protobuf:"bytes,2,rep,name=entity_values,json=entityValues,proto3" json:"entity_values,omitempty"`
 	// Optional. The language of entity synonyms defined in `entities`. If not
 	// specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1046,7 +1046,7 @@ func (m *BatchDeleteEntitiesRequest) GetLanguageCode() string {
 // This message is a wrapper around a collection of entity types.
 type EntityTypeBatch struct {
 	// A collection of entity types.
-	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes" json:"entity_types,omitempty"`
+	EntityTypes          []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1251,8 +1251,7 @@ func (c *entityTypesClient) BatchDeleteEntities(ctx context.Context, in *BatchDe
 	return out, nil
 }
 
-// Server API for EntityTypes service
-
+// EntityTypesServer is the server API for EntityTypes service.
 type EntityTypesServer interface {
 	// Returns the list of all entity types in the specified agent.
 	ListEntityTypes(context.Context, *ListEntityTypesRequest) (*ListEntityTypesResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2beta1/intent.pb.go b/googleapis/cloud/dialogflow/v2beta1/intent.pb.go
index 28fd678aee311e7552ee2dd2a457921ebf749e01..be7484a05ebe47a7f184db2799b17aea726486c9 100644
--- a/googleapis/cloud/dialogflow/v2beta1/intent.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/intent.pb.go
@@ -241,16 +241,16 @@ type Intent struct {
 	// automatically.
 	// The unique identifier of this intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of this intent.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. Indicates whether webhooks are enabled for the intent.
-	WebhookState Intent_WebhookState `protobuf:"varint,6,opt,name=webhook_state,json=webhookState,enum=google.cloud.dialogflow.v2beta1.Intent_WebhookState" json:"webhook_state,omitempty"`
+	WebhookState Intent_WebhookState `protobuf:"varint,6,opt,name=webhook_state,json=webhookState,proto3,enum=google.cloud.dialogflow.v2beta1.Intent_WebhookState" json:"webhook_state,omitempty"`
 	// Optional. The priority of this intent. Higher numbers represent higher
 	// priorities. Zero or negative numbers mean that the intent is disabled.
-	Priority int32 `protobuf:"varint,3,opt,name=priority" json:"priority,omitempty"`
+	Priority int32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"`
 	// Optional. Indicates whether this is a fallback intent.
-	IsFallback bool `protobuf:"varint,4,opt,name=is_fallback,json=isFallback" json:"is_fallback,omitempty"`
+	IsFallback bool `protobuf:"varint,4,opt,name=is_fallback,json=isFallback,proto3" json:"is_fallback,omitempty"`
 	// Optional. Indicates whether Machine Learning is enabled for the intent.
 	// Note: If `ml_enabled` setting is set to false, then this intent is not
 	// taken into account during inference in `ML ONLY` match mode. Also,
@@ -262,54 +262,54 @@ type Intent struct {
 	//   ml_enabled = false / ml_disabled = true.
 	// - After April 15th, 2018 the default is:
 	//   ml_enabled = true / ml_disabled = false.
-	MlEnabled bool `protobuf:"varint,5,opt,name=ml_enabled,json=mlEnabled" json:"ml_enabled,omitempty"`
+	MlEnabled bool `protobuf:"varint,5,opt,name=ml_enabled,json=mlEnabled,proto3" json:"ml_enabled,omitempty"`
 	// Optional. Indicates whether Machine Learning is disabled for the intent.
 	// Note: If `ml_disabled` setting is set to true, then this intent is not
 	// taken into account during inference in `ML ONLY` match mode. Also,
 	// auto-markup in the UI is turned off.
-	MlDisabled bool `protobuf:"varint,19,opt,name=ml_disabled,json=mlDisabled" json:"ml_disabled,omitempty"`
+	MlDisabled bool `protobuf:"varint,19,opt,name=ml_disabled,json=mlDisabled,proto3" json:"ml_disabled,omitempty"`
 	// Optional. The list of context names required for this intent to be
 	// triggered.
 	// Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
-	InputContextNames []string `protobuf:"bytes,7,rep,name=input_context_names,json=inputContextNames" json:"input_context_names,omitempty"`
+	InputContextNames []string `protobuf:"bytes,7,rep,name=input_context_names,json=inputContextNames,proto3" json:"input_context_names,omitempty"`
 	// Optional. The collection of event names that trigger the intent.
 	// If the collection of input contexts is not empty, all of the contexts must
 	// be present in the active user session for an event to trigger this intent.
-	Events []string `protobuf:"bytes,8,rep,name=events" json:"events,omitempty"`
+	Events []string `protobuf:"bytes,8,rep,name=events,proto3" json:"events,omitempty"`
 	// Optional. The collection of examples/templates that the agent is
 	// trained on.
-	TrainingPhrases []*Intent_TrainingPhrase `protobuf:"bytes,9,rep,name=training_phrases,json=trainingPhrases" json:"training_phrases,omitempty"`
+	TrainingPhrases []*Intent_TrainingPhrase `protobuf:"bytes,9,rep,name=training_phrases,json=trainingPhrases,proto3" json:"training_phrases,omitempty"`
 	// Optional. The name of the action associated with the intent.
-	Action string `protobuf:"bytes,10,opt,name=action" json:"action,omitempty"`
+	Action string `protobuf:"bytes,10,opt,name=action,proto3" json:"action,omitempty"`
 	// Optional. The collection of contexts that are activated when the intent
 	// is matched. Context messages in this collection should not set the
 	// parameters field. Setting the `lifespan_count` to 0 will reset the context
 	// when the intent is matched.
 	// Format: `projects/<Project ID>/agent/sessions/-/contexts/<Context ID>`.
-	OutputContexts []*Context `protobuf:"bytes,11,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,11,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// Optional. Indicates whether to delete all contexts in the current
 	// session when this intent is matched.
-	ResetContexts bool `protobuf:"varint,12,opt,name=reset_contexts,json=resetContexts" json:"reset_contexts,omitempty"`
+	ResetContexts bool `protobuf:"varint,12,opt,name=reset_contexts,json=resetContexts,proto3" json:"reset_contexts,omitempty"`
 	// Optional. The collection of parameters associated with the intent.
-	Parameters []*Intent_Parameter `protobuf:"bytes,13,rep,name=parameters" json:"parameters,omitempty"`
+	Parameters []*Intent_Parameter `protobuf:"bytes,13,rep,name=parameters,proto3" json:"parameters,omitempty"`
 	// Optional. The collection of rich messages corresponding to the
 	// `Response` field in the Dialogflow console.
-	Messages []*Intent_Message `protobuf:"bytes,14,rep,name=messages" json:"messages,omitempty"`
+	Messages []*Intent_Message `protobuf:"bytes,14,rep,name=messages,proto3" json:"messages,omitempty"`
 	// Optional. The list of platforms for which the first response will be
 	// taken from among the messages assigned to the DEFAULT_PLATFORM.
-	DefaultResponsePlatforms []Intent_Message_Platform `protobuf:"varint,15,rep,packed,name=default_response_platforms,json=defaultResponsePlatforms,enum=google.cloud.dialogflow.v2beta1.Intent_Message_Platform" json:"default_response_platforms,omitempty"`
+	DefaultResponsePlatforms []Intent_Message_Platform `protobuf:"varint,15,rep,packed,name=default_response_platforms,json=defaultResponsePlatforms,proto3,enum=google.cloud.dialogflow.v2beta1.Intent_Message_Platform" json:"default_response_platforms,omitempty"`
 	// The unique identifier of the root intent in the chain of followup intents.
 	// It identifies the correct followup intents chain for this intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	RootFollowupIntentName string `protobuf:"bytes,16,opt,name=root_followup_intent_name,json=rootFollowupIntentName" json:"root_followup_intent_name,omitempty"`
+	RootFollowupIntentName string `protobuf:"bytes,16,opt,name=root_followup_intent_name,json=rootFollowupIntentName,proto3" json:"root_followup_intent_name,omitempty"`
 	// The unique identifier of the parent intent in the chain of followup
 	// intents.
 	// It identifies the parent followup intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	ParentFollowupIntentName string `protobuf:"bytes,17,opt,name=parent_followup_intent_name,json=parentFollowupIntentName" json:"parent_followup_intent_name,omitempty"`
+	ParentFollowupIntentName string `protobuf:"bytes,17,opt,name=parent_followup_intent_name,json=parentFollowupIntentName,proto3" json:"parent_followup_intent_name,omitempty"`
 	// Optional. Collection of information about all followup intents that have
 	// name of this intent as a root_name.
-	FollowupIntentInfo   []*Intent_FollowupIntentInfo `protobuf:"bytes,18,rep,name=followup_intent_info,json=followupIntentInfo" json:"followup_intent_info,omitempty"`
+	FollowupIntentInfo   []*Intent_FollowupIntentInfo `protobuf:"bytes,18,rep,name=followup_intent_info,json=followupIntentInfo,proto3" json:"followup_intent_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -475,17 +475,17 @@ func (m *Intent) GetFollowupIntentInfo() []*Intent_FollowupIntentInfo {
 // Represents an example or template that the agent is trained on.
 type Intent_TrainingPhrase struct {
 	// Required. The unique identifier of this training phrase.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The type of the training phrase.
-	Type Intent_TrainingPhrase_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.dialogflow.v2beta1.Intent_TrainingPhrase_Type" json:"type,omitempty"`
+	Type Intent_TrainingPhrase_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dialogflow.v2beta1.Intent_TrainingPhrase_Type" json:"type,omitempty"`
 	// Required. The collection of training phrase parts (can be annotated).
 	// Fields: `entity_type`, `alias` and `user_defined` should be populated
 	// only for the annotated parts of the training phrase.
-	Parts []*Intent_TrainingPhrase_Part `protobuf:"bytes,3,rep,name=parts" json:"parts,omitempty"`
+	Parts []*Intent_TrainingPhrase_Part `protobuf:"bytes,3,rep,name=parts,proto3" json:"parts,omitempty"`
 	// Optional. Indicates how many times this example or template was added to
 	// the intent. Each time a developer adds an existing sample by editing an
 	// intent or training, this counter is increased.
-	TimesAddedCount      int32    `protobuf:"varint,4,opt,name=times_added_count,json=timesAddedCount" json:"times_added_count,omitempty"`
+	TimesAddedCount      int32    `protobuf:"varint,4,opt,name=times_added_count,json=timesAddedCount,proto3" json:"times_added_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -548,17 +548,17 @@ type Intent_TrainingPhrase_Part struct {
 	// Required. The text corresponding to the example or template,
 	// if there are no annotations. For
 	// annotated examples, it is the text for one of the example's parts.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Optional. The entity type name prefixed with `@`. This field is
 	// required for the annotated part of the text and applies only to
 	// examples.
-	EntityType string `protobuf:"bytes,2,opt,name=entity_type,json=entityType" json:"entity_type,omitempty"`
+	EntityType string `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"`
 	// Optional. The parameter name for the value extracted from the
 	// annotated part of the example.
-	Alias string `protobuf:"bytes,3,opt,name=alias" json:"alias,omitempty"`
+	Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
 	// Optional. Indicates whether the text was manually annotated by the
 	// developer.
-	UserDefined          bool     `protobuf:"varint,4,opt,name=user_defined,json=userDefined" json:"user_defined,omitempty"`
+	UserDefined          bool     `protobuf:"varint,4,opt,name=user_defined,json=userDefined,proto3" json:"user_defined,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -619,34 +619,34 @@ func (m *Intent_TrainingPhrase_Part) GetUserDefined() bool {
 // Represents intent parameters.
 type Intent_Parameter struct {
 	// The unique identifier of this parameter.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of the parameter.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Optional. The definition of the parameter value. It can be:
 	// - a constant string,
 	// - a parameter value defined as `$parameter_name`,
 	// - an original parameter value defined as `$parameter_name.original`,
 	// - a parameter value from some context defined as
 	//   `#context_name.parameter_name`.
-	Value string `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 	// Optional. The default value to use when the `value` yields an empty
 	// result.
 	// Default values can be extracted from contexts by using the following
 	// syntax: `#context_name.parameter_name`.
-	DefaultValue string `protobuf:"bytes,4,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"`
+	DefaultValue string `protobuf:"bytes,4,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
 	// Optional. The name of the entity type, prefixed with `@`, that
 	// describes values of the parameter. If the parameter is
 	// required, this must be provided.
-	EntityTypeDisplayName string `protobuf:"bytes,5,opt,name=entity_type_display_name,json=entityTypeDisplayName" json:"entity_type_display_name,omitempty"`
+	EntityTypeDisplayName string `protobuf:"bytes,5,opt,name=entity_type_display_name,json=entityTypeDisplayName,proto3" json:"entity_type_display_name,omitempty"`
 	// Optional. Indicates whether the parameter is required. That is,
 	// whether the intent cannot be completed without collecting the parameter
 	// value.
-	Mandatory bool `protobuf:"varint,6,opt,name=mandatory" json:"mandatory,omitempty"`
+	Mandatory bool `protobuf:"varint,6,opt,name=mandatory,proto3" json:"mandatory,omitempty"`
 	// Optional. The collection of prompts that the agent can present to the
 	// user in order to collect value for the parameter.
-	Prompts []string `protobuf:"bytes,7,rep,name=prompts" json:"prompts,omitempty"`
+	Prompts []string `protobuf:"bytes,7,rep,name=prompts,proto3" json:"prompts,omitempty"`
 	// Optional. Indicates whether the parameter represents a list of values.
-	IsList               bool     `protobuf:"varint,8,opt,name=is_list,json=isList" json:"is_list,omitempty"`
+	IsList               bool     `protobuf:"varint,8,opt,name=is_list,json=isList,proto3" json:"is_list,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -750,7 +750,7 @@ type Intent_Message struct {
 	//	*Intent_Message_CarouselSelect_
 	Message isIntent_Message_Message `protobuf_oneof:"message"`
 	// Optional. The platform that this message is intended for.
-	Platform             Intent_Message_Platform `protobuf:"varint,6,opt,name=platform,enum=google.cloud.dialogflow.v2beta1.Intent_Message_Platform" json:"platform,omitempty"`
+	Platform             Intent_Message_Platform `protobuf:"varint,6,opt,name=platform,proto3,enum=google.cloud.dialogflow.v2beta1.Intent_Message_Platform" json:"platform,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -785,37 +785,37 @@ type isIntent_Message_Message interface {
 }
 
 type Intent_Message_Text_ struct {
-	Text *Intent_Message_Text `protobuf:"bytes,1,opt,name=text,oneof"`
+	Text *Intent_Message_Text `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
 }
 type Intent_Message_Image_ struct {
-	Image *Intent_Message_Image `protobuf:"bytes,2,opt,name=image,oneof"`
+	Image *Intent_Message_Image `protobuf:"bytes,2,opt,name=image,proto3,oneof"`
 }
 type Intent_Message_QuickReplies_ struct {
-	QuickReplies *Intent_Message_QuickReplies `protobuf:"bytes,3,opt,name=quick_replies,json=quickReplies,oneof"`
+	QuickReplies *Intent_Message_QuickReplies `protobuf:"bytes,3,opt,name=quick_replies,json=quickReplies,proto3,oneof"`
 }
 type Intent_Message_Card_ struct {
-	Card *Intent_Message_Card `protobuf:"bytes,4,opt,name=card,oneof"`
+	Card *Intent_Message_Card `protobuf:"bytes,4,opt,name=card,proto3,oneof"`
 }
 type Intent_Message_Payload struct {
-	Payload *_struct.Struct `protobuf:"bytes,5,opt,name=payload,oneof"`
+	Payload *_struct.Struct `protobuf:"bytes,5,opt,name=payload,proto3,oneof"`
 }
 type Intent_Message_SimpleResponses_ struct {
-	SimpleResponses *Intent_Message_SimpleResponses `protobuf:"bytes,7,opt,name=simple_responses,json=simpleResponses,oneof"`
+	SimpleResponses *Intent_Message_SimpleResponses `protobuf:"bytes,7,opt,name=simple_responses,json=simpleResponses,proto3,oneof"`
 }
 type Intent_Message_BasicCard_ struct {
-	BasicCard *Intent_Message_BasicCard `protobuf:"bytes,8,opt,name=basic_card,json=basicCard,oneof"`
+	BasicCard *Intent_Message_BasicCard `protobuf:"bytes,8,opt,name=basic_card,json=basicCard,proto3,oneof"`
 }
 type Intent_Message_Suggestions_ struct {
-	Suggestions *Intent_Message_Suggestions `protobuf:"bytes,9,opt,name=suggestions,oneof"`
+	Suggestions *Intent_Message_Suggestions `protobuf:"bytes,9,opt,name=suggestions,proto3,oneof"`
 }
 type Intent_Message_LinkOutSuggestion_ struct {
-	LinkOutSuggestion *Intent_Message_LinkOutSuggestion `protobuf:"bytes,10,opt,name=link_out_suggestion,json=linkOutSuggestion,oneof"`
+	LinkOutSuggestion *Intent_Message_LinkOutSuggestion `protobuf:"bytes,10,opt,name=link_out_suggestion,json=linkOutSuggestion,proto3,oneof"`
 }
 type Intent_Message_ListSelect_ struct {
-	ListSelect *Intent_Message_ListSelect `protobuf:"bytes,11,opt,name=list_select,json=listSelect,oneof"`
+	ListSelect *Intent_Message_ListSelect `protobuf:"bytes,11,opt,name=list_select,json=listSelect,proto3,oneof"`
 }
 type Intent_Message_CarouselSelect_ struct {
-	CarouselSelect *Intent_Message_CarouselSelect `protobuf:"bytes,12,opt,name=carousel_select,json=carouselSelect,oneof"`
+	CarouselSelect *Intent_Message_CarouselSelect `protobuf:"bytes,12,opt,name=carousel_select,json=carouselSelect,proto3,oneof"`
 }
 
 func (*Intent_Message_Text_) isIntent_Message_Message()              {}
@@ -1169,7 +1169,7 @@ func _Intent_Message_OneofSizer(msg proto.Message) (n int) {
 // The text response message.
 type Intent_Message_Text struct {
 	// Optional. The collection of the agent's responses.
-	Text                 []string `protobuf:"bytes,1,rep,name=text" json:"text,omitempty"`
+	Text                 []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1209,10 +1209,10 @@ func (m *Intent_Message_Text) GetText() []string {
 // The image response message.
 type Intent_Message_Image struct {
 	// Optional. The public URI to an image file.
-	ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. A text description of the image to be used for accessibility,
 	// e.g., screen readers.
-	AccessibilityText    string   `protobuf:"bytes,2,opt,name=accessibility_text,json=accessibilityText" json:"accessibility_text,omitempty"`
+	AccessibilityText    string   `protobuf:"bytes,2,opt,name=accessibility_text,json=accessibilityText,proto3" json:"accessibility_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1259,9 +1259,9 @@ func (m *Intent_Message_Image) GetAccessibilityText() string {
 // The quick replies response message.
 type Intent_Message_QuickReplies struct {
 	// Optional. The title of the collection of quick replies.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The collection of quick replies.
-	QuickReplies         []string `protobuf:"bytes,2,rep,name=quick_replies,json=quickReplies" json:"quick_replies,omitempty"`
+	QuickReplies         []string `protobuf:"bytes,2,rep,name=quick_replies,json=quickReplies,proto3" json:"quick_replies,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1308,13 +1308,13 @@ func (m *Intent_Message_QuickReplies) GetQuickReplies() []string {
 // The card response message.
 type Intent_Message_Card struct {
 	// Optional. The title of the card.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The subtitle of the card.
-	Subtitle string `protobuf:"bytes,2,opt,name=subtitle" json:"subtitle,omitempty"`
+	Subtitle string `protobuf:"bytes,2,opt,name=subtitle,proto3" json:"subtitle,omitempty"`
 	// Optional. The public URI to an image file for the card.
-	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	// Optional. The collection of card buttons.
-	Buttons              []*Intent_Message_Card_Button `protobuf:"bytes,4,rep,name=buttons" json:"buttons,omitempty"`
+	Buttons              []*Intent_Message_Card_Button `protobuf:"bytes,4,rep,name=buttons,proto3" json:"buttons,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -1375,10 +1375,10 @@ func (m *Intent_Message_Card) GetButtons() []*Intent_Message_Card_Button {
 // Optional. Contains information about a button.
 type Intent_Message_Card_Button struct {
 	// Optional. The text to show on the button.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Optional. The text to send back to the Dialogflow API or a URI to
 	// open.
-	Postback             string   `protobuf:"bytes,2,opt,name=postback" json:"postback,omitempty"`
+	Postback             string   `protobuf:"bytes,2,opt,name=postback,proto3" json:"postback,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1426,13 +1426,13 @@ func (m *Intent_Message_Card_Button) GetPostback() string {
 type Intent_Message_SimpleResponse struct {
 	// One of text_to_speech or ssml must be provided. The plain text of the
 	// speech output. Mutually exclusive with ssml.
-	TextToSpeech string `protobuf:"bytes,1,opt,name=text_to_speech,json=textToSpeech" json:"text_to_speech,omitempty"`
+	TextToSpeech string `protobuf:"bytes,1,opt,name=text_to_speech,json=textToSpeech,proto3" json:"text_to_speech,omitempty"`
 	// One of text_to_speech or ssml must be provided. Structured spoken
 	// response to the user in the SSML format. Mutually exclusive with
 	// text_to_speech.
-	Ssml string `protobuf:"bytes,2,opt,name=ssml" json:"ssml,omitempty"`
+	Ssml string `protobuf:"bytes,2,opt,name=ssml,proto3" json:"ssml,omitempty"`
 	// Optional. The text to display.
-	DisplayText          string   `protobuf:"bytes,3,opt,name=display_text,json=displayText" json:"display_text,omitempty"`
+	DisplayText          string   `protobuf:"bytes,3,opt,name=display_text,json=displayText,proto3" json:"display_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1489,7 +1489,7 @@ func (m *Intent_Message_SimpleResponse) GetDisplayText() string {
 // `SimpleResponse`.
 type Intent_Message_SimpleResponses struct {
 	// Required. The list of simple responses.
-	SimpleResponses      []*Intent_Message_SimpleResponse `protobuf:"bytes,1,rep,name=simple_responses,json=simpleResponses" json:"simple_responses,omitempty"`
+	SimpleResponses      []*Intent_Message_SimpleResponse `protobuf:"bytes,1,rep,name=simple_responses,json=simpleResponses,proto3" json:"simple_responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
 	XXX_unrecognized     []byte                           `json:"-"`
 	XXX_sizecache        int32                            `json:"-"`
@@ -1529,15 +1529,15 @@ func (m *Intent_Message_SimpleResponses) GetSimpleResponses() []*Intent_Message_
 // The basic card message. Useful for displaying information.
 type Intent_Message_BasicCard struct {
 	// Optional. The title of the card.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The subtitle of the card.
-	Subtitle string `protobuf:"bytes,2,opt,name=subtitle" json:"subtitle,omitempty"`
+	Subtitle string `protobuf:"bytes,2,opt,name=subtitle,proto3" json:"subtitle,omitempty"`
 	// Required, unless image is present. The body text of the card.
-	FormattedText string `protobuf:"bytes,3,opt,name=formatted_text,json=formattedText" json:"formatted_text,omitempty"`
+	FormattedText string `protobuf:"bytes,3,opt,name=formatted_text,json=formattedText,proto3" json:"formatted_text,omitempty"`
 	// Optional. The image for the card.
-	Image *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	// Optional. The collection of card buttons.
-	Buttons              []*Intent_Message_BasicCard_Button `protobuf:"bytes,5,rep,name=buttons" json:"buttons,omitempty"`
+	Buttons              []*Intent_Message_BasicCard_Button `protobuf:"bytes,5,rep,name=buttons,proto3" json:"buttons,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
 	XXX_unrecognized     []byte                             `json:"-"`
 	XXX_sizecache        int32                              `json:"-"`
@@ -1605,9 +1605,9 @@ func (m *Intent_Message_BasicCard) GetButtons() []*Intent_Message_BasicCard_Butt
 // The button object that appears at the bottom of a card.
 type Intent_Message_BasicCard_Button struct {
 	// Required. The title of the button.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Required. Action to take when a user taps on the button.
-	OpenUriAction        *Intent_Message_BasicCard_Button_OpenUriAction `protobuf:"bytes,2,opt,name=open_uri_action,json=openUriAction" json:"open_uri_action,omitempty"`
+	OpenUriAction        *Intent_Message_BasicCard_Button_OpenUriAction `protobuf:"bytes,2,opt,name=open_uri_action,json=openUriAction,proto3" json:"open_uri_action,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
 	XXX_unrecognized     []byte                                         `json:"-"`
 	XXX_sizecache        int32                                          `json:"-"`
@@ -1654,7 +1654,7 @@ func (m *Intent_Message_BasicCard_Button) GetOpenUriAction() *Intent_Message_Bas
 // Opens the given URI.
 type Intent_Message_BasicCard_Button_OpenUriAction struct {
 	// Required. The HTTP or HTTPS scheme URI.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1699,7 +1699,7 @@ func (m *Intent_Message_BasicCard_Button_OpenUriAction) GetUri() string {
 // to the conversation.
 type Intent_Message_Suggestion struct {
 	// Required. The text shown the in the suggestion chip.
-	Title                string   `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title                string   `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1739,7 +1739,7 @@ func (m *Intent_Message_Suggestion) GetTitle() string {
 // The collection of suggestions.
 type Intent_Message_Suggestions struct {
 	// Required. The list of suggested replies.
-	Suggestions          []*Intent_Message_Suggestion `protobuf:"bytes,1,rep,name=suggestions" json:"suggestions,omitempty"`
+	Suggestions          []*Intent_Message_Suggestion `protobuf:"bytes,1,rep,name=suggestions,proto3" json:"suggestions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -1780,10 +1780,10 @@ func (m *Intent_Message_Suggestions) GetSuggestions() []*Intent_Message_Suggesti
 // or website associated with this agent.
 type Intent_Message_LinkOutSuggestion struct {
 	// Required. The name of the app or site this chip is linking to.
-	DestinationName string `protobuf:"bytes,1,opt,name=destination_name,json=destinationName" json:"destination_name,omitempty"`
+	DestinationName string `protobuf:"bytes,1,opt,name=destination_name,json=destinationName,proto3" json:"destination_name,omitempty"`
 	// Required. The URI of the app or site to open when the user taps the
 	// suggestion chip.
-	Uri                  string   `protobuf:"bytes,2,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1830,9 +1830,9 @@ func (m *Intent_Message_LinkOutSuggestion) GetUri() string {
 // The card for presenting a list of options to select from.
 type Intent_Message_ListSelect struct {
 	// Optional. The overall title of the list.
-	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
 	// Required. List items.
-	Items                []*Intent_Message_ListSelect_Item `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
+	Items                []*Intent_Message_ListSelect_Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -1879,13 +1879,13 @@ func (m *Intent_Message_ListSelect) GetItems() []*Intent_Message_ListSelect_Item
 // An item in the list.
 type Intent_Message_ListSelect_Item struct {
 	// Required. Additional information about this option.
-	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"`
+	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
 	// Required. The title of the list item.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The main text describing the item.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The image to display.
-	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1946,7 +1946,7 @@ func (m *Intent_Message_ListSelect_Item) GetImage() *Intent_Message_Image {
 // The card for presenting a carousel of options to select from.
 type Intent_Message_CarouselSelect struct {
 	// Required. Carousel items.
-	Items                []*Intent_Message_CarouselSelect_Item `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
+	Items                []*Intent_Message_CarouselSelect_Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
 	XXX_unrecognized     []byte                                `json:"-"`
 	XXX_sizecache        int32                                 `json:"-"`
@@ -1986,13 +1986,13 @@ func (m *Intent_Message_CarouselSelect) GetItems() []*Intent_Message_CarouselSel
 // An item in the carousel.
 type Intent_Message_CarouselSelect_Item struct {
 	// Required. Additional info about the option item.
-	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"`
+	Info *Intent_Message_SelectItemInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
 	// Required. Title of the carousel item.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional. The body text of the card.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Optional. The image to display.
-	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image" json:"image,omitempty"`
+	Image                *Intent_Message_Image `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2055,10 +2055,10 @@ func (m *Intent_Message_CarouselSelect_Item) GetImage() *Intent_Message_Image {
 type Intent_Message_SelectItemInfo struct {
 	// Required. A unique key that will be sent back to the agent if this
 	// response is given.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// Optional. A list of synonyms that can also be used to trigger this
 	// item in dialog.
-	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms" json:"synonyms,omitempty"`
+	Synonyms             []string `protobuf:"bytes,2,rep,name=synonyms,proto3" json:"synonyms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2106,10 +2106,10 @@ func (m *Intent_Message_SelectItemInfo) GetSynonyms() []string {
 type Intent_FollowupIntentInfo struct {
 	// The unique identifier of the followup intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	FollowupIntentName string `protobuf:"bytes,1,opt,name=followup_intent_name,json=followupIntentName" json:"followup_intent_name,omitempty"`
+	FollowupIntentName string `protobuf:"bytes,1,opt,name=followup_intent_name,json=followupIntentName,proto3" json:"followup_intent_name,omitempty"`
 	// The unique identifier of the followup intent parent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	ParentFollowupIntentName string   `protobuf:"bytes,2,opt,name=parent_followup_intent_name,json=parentFollowupIntentName" json:"parent_followup_intent_name,omitempty"`
+	ParentFollowupIntentName string   `protobuf:"bytes,2,opt,name=parent_followup_intent_name,json=parentFollowupIntentName,proto3" json:"parent_followup_intent_name,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -2157,20 +2157,20 @@ func (m *Intent_FollowupIntentInfo) GetParentFollowupIntentName() string {
 type ListIntentsRequest struct {
 	// Required. The agent to list all intents from.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The language to list training phrases, parameters and rich
 	// messages for. If not specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
+	IntentView IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2239,10 +2239,10 @@ func (m *ListIntentsRequest) GetPageToken() string {
 type ListIntentsResponse struct {
 	// The list of agent intents. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	Intents []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2290,15 +2290,15 @@ func (m *ListIntentsResponse) GetNextPageToken() string {
 type GetIntentRequest struct {
 	// Required. The name of the intent.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The language to retrieve training phrases, parameters and rich
 	// messages for. If not specified, the agent's default language is used.
 	// [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,3,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2353,17 +2353,17 @@ func (m *GetIntentRequest) GetIntentView() IntentView {
 type CreateIntentRequest struct {
 	// Required. The agent to create a intent for.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The intent to create.
-	Intent *Intent `protobuf:"bytes,2,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,2,opt,name=intent,proto3" json:"intent,omitempty"`
 	// Optional. The language of training phrases, parameters and rich messages
 	// defined in `intent`. If not specified, the agent's default language is
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2425,17 +2425,17 @@ func (m *CreateIntentRequest) GetIntentView() IntentView {
 type UpdateIntentRequest struct {
 	// Required. The intent to update.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Intent *Intent `protobuf:"bytes,1,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"`
 	// Optional. The language of training phrases, parameters and rich messages
 	// defined in `intent`. If not specified, the agent's default language is
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,4,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2497,7 +2497,7 @@ func (m *UpdateIntentRequest) GetIntentView() IntentView {
 type DeleteIntentRequest struct {
 	// Required. The name of the intent to delete.
 	// Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2538,7 +2538,7 @@ func (m *DeleteIntentRequest) GetName() string {
 type BatchUpdateIntentsRequest struct {
 	// Required. The name of the agent to update or create intents in.
 	// Format: `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The source of the intent batch.
 	//
 	// Types that are valid to be assigned to IntentBatch:
@@ -2550,11 +2550,11 @@ type BatchUpdateIntentsRequest struct {
 	// used. [More than a dozen
 	// languages](https://dialogflow.com/docs/reference/language) are supported.
 	// Note: languages must be enabled in the agent, before they can be used.
-	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Optional. The resource view to apply to the returned intent.
-	IntentView           IntentView `protobuf:"varint,6,opt,name=intent_view,json=intentView,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
+	IntentView           IntentView `protobuf:"varint,6,opt,name=intent_view,json=intentView,proto3,enum=google.cloud.dialogflow.v2beta1.IntentView" json:"intent_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2589,10 +2589,10 @@ type isBatchUpdateIntentsRequest_IntentBatch interface {
 }
 
 type BatchUpdateIntentsRequest_IntentBatchUri struct {
-	IntentBatchUri string `protobuf:"bytes,2,opt,name=intent_batch_uri,json=intentBatchUri,oneof"`
+	IntentBatchUri string `protobuf:"bytes,2,opt,name=intent_batch_uri,json=intentBatchUri,proto3,oneof"`
 }
 type BatchUpdateIntentsRequest_IntentBatchInline struct {
-	IntentBatchInline *IntentBatch `protobuf:"bytes,3,opt,name=intent_batch_inline,json=intentBatchInline,oneof"`
+	IntentBatchInline *IntentBatch `protobuf:"bytes,3,opt,name=intent_batch_inline,json=intentBatchInline,proto3,oneof"`
 }
 
 func (*BatchUpdateIntentsRequest_IntentBatchUri) isBatchUpdateIntentsRequest_IntentBatch()    {}
@@ -2720,7 +2720,7 @@ func _BatchUpdateIntentsRequest_OneofSizer(msg proto.Message) (n int) {
 // The response message for [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2beta1.Intents.BatchUpdateIntents].
 type BatchUpdateIntentsResponse struct {
 	// The collection of updated or created intents.
-	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2761,10 +2761,10 @@ func (m *BatchUpdateIntentsResponse) GetIntents() []*Intent {
 type BatchDeleteIntentsRequest struct {
 	// Required. The name of the agent to delete all entities types for. Format:
 	// `projects/<Project ID>/agent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The collection of intents to delete. Only intent `name` must be
 	// filled in.
-	Intents              []*Intent `protobuf:"bytes,2,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,2,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2811,7 +2811,7 @@ func (m *BatchDeleteIntentsRequest) GetIntents() []*Intent {
 // This message is a wrapper around a collection of intents.
 type IntentBatch struct {
 	// A collection of intents.
-	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents" json:"intents,omitempty"`
+	Intents              []*Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2992,8 +2992,7 @@ func (c *intentsClient) BatchDeleteIntents(ctx context.Context, in *BatchDeleteI
 	return out, nil
 }
 
-// Server API for Intents service
-
+// IntentsServer is the server API for Intents service.
 type IntentsServer interface {
 	// Returns the list of all intents in the specified agent.
 	ListIntents(context.Context, *ListIntentsRequest) (*ListIntentsResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2beta1/session.pb.go b/googleapis/cloud/dialogflow/v2beta1/session.pb.go
index 02937e3c1f57063bdcd8c30e1fdcae0536e5cd1b..bbc870bfd9e41e936af9cba7fdb4c65815b56946 100644
--- a/googleapis/cloud/dialogflow/v2beta1/session.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/session.pb.go
@@ -145,9 +145,9 @@ type DetectIntentRequest struct {
 	// appropriate <Session ID>. and <User Id>. They can be a random numbers or
 	// some type of user and session identifiers (preferably hashed). The length
 	// of the <Session ID> and <User ID> must not exceed 36 characters.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Optional. The parameters of this query.
-	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams" json:"query_params,omitempty"`
+	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"`
 	// Required. The input specification. It can be set to:
 	//
 	// 1.  an audio config
@@ -156,7 +156,7 @@ type DetectIntentRequest struct {
 	// 2.  a conversational query in the form of text, or
 	//
 	// 3.  an event that specifies which intent to trigger.
-	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput" json:"query_input,omitempty"`
+	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"`
 	// Optional. The natural language speech audio to be processed. This field
 	// should be populated iff `query_input` is set to an input audio config.
 	// A single request can contain up to 1 minute of speech audio data.
@@ -222,12 +222,12 @@ func (m *DetectIntentRequest) GetInputAudio() []byte {
 type DetectIntentResponse struct {
 	// The unique identifier of the response. It can be used to
 	// locate a response in the training example set or for reporting issues.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The results of the conversational query or event processing.
-	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Specifies the status of the webhook request. `webhook_status`
 	// is never populated in webhook requests.
-	WebhookStatus        *status.Status `protobuf:"bytes,3,opt,name=webhook_status,json=webhookStatus" json:"webhook_status,omitempty"`
+	WebhookStatus        *status.Status `protobuf:"bytes,3,opt,name=webhook_status,json=webhookStatus,proto3" json:"webhook_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -284,22 +284,22 @@ type QueryParameters struct {
 	// [time zone database](https://www.iana.org/time-zones), e.g.,
 	// America/New_York, Europe/Paris. If not provided, the time zone specified in
 	// agent settings is used.
-	TimeZone string `protobuf:"bytes,1,opt,name=time_zone,json=timeZone" json:"time_zone,omitempty"`
+	TimeZone string `protobuf:"bytes,1,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
 	// Optional. The geo location of this conversational query.
-	GeoLocation *latlng.LatLng `protobuf:"bytes,2,opt,name=geo_location,json=geoLocation" json:"geo_location,omitempty"`
+	GeoLocation *latlng.LatLng `protobuf:"bytes,2,opt,name=geo_location,json=geoLocation,proto3" json:"geo_location,omitempty"`
 	// Optional. The collection of contexts to be activated before this query is
 	// executed.
-	Contexts []*Context `protobuf:"bytes,3,rep,name=contexts" json:"contexts,omitempty"`
+	Contexts []*Context `protobuf:"bytes,3,rep,name=contexts,proto3" json:"contexts,omitempty"`
 	// Optional. Specifies whether to delete all contexts in the current session
 	// before the new ones are activated.
-	ResetContexts bool `protobuf:"varint,4,opt,name=reset_contexts,json=resetContexts" json:"reset_contexts,omitempty"`
+	ResetContexts bool `protobuf:"varint,4,opt,name=reset_contexts,json=resetContexts,proto3" json:"reset_contexts,omitempty"`
 	// Optional. The collection of session entity types to replace or extend
 	// developer entities with for this query only. The entity synonyms apply
 	// to all languages.
-	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,5,rep,name=session_entity_types,json=sessionEntityTypes" json:"session_entity_types,omitempty"`
+	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,5,rep,name=session_entity_types,json=sessionEntityTypes,proto3" json:"session_entity_types,omitempty"`
 	// Optional. This field can be used to pass custom data into the webhook
 	// associated with the agent. Arbitrary JSON objects are supported.
-	Payload              *_struct.Struct `protobuf:"bytes,6,opt,name=payload" json:"payload,omitempty"`
+	Payload              *_struct.Struct `protobuf:"bytes,6,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -421,13 +421,13 @@ type isQueryInput_Input interface {
 }
 
 type QueryInput_AudioConfig struct {
-	AudioConfig *InputAudioConfig `protobuf:"bytes,1,opt,name=audio_config,json=audioConfig,oneof"`
+	AudioConfig *InputAudioConfig `protobuf:"bytes,1,opt,name=audio_config,json=audioConfig,proto3,oneof"`
 }
 type QueryInput_Text struct {
-	Text *TextInput `protobuf:"bytes,2,opt,name=text,oneof"`
+	Text *TextInput `protobuf:"bytes,2,opt,name=text,proto3,oneof"`
 }
 type QueryInput_Event struct {
-	Event *EventInput `protobuf:"bytes,3,opt,name=event,oneof"`
+	Event *EventInput `protobuf:"bytes,3,opt,name=event,proto3,oneof"`
 }
 
 func (*QueryInput_AudioConfig) isQueryInput_Input() {}
@@ -564,11 +564,11 @@ type QueryResult struct {
 	//   contains the speech recognition result. If speech recognizer produced
 	//   multiple alternatives, a particular one is picked.
 	// - If an event was provided as input, `query_text` is not set.
-	QueryText string `protobuf:"bytes,1,opt,name=query_text,json=queryText" json:"query_text,omitempty"`
+	QueryText string `protobuf:"bytes,1,opt,name=query_text,json=queryText,proto3" json:"query_text,omitempty"`
 	// The language that was triggered during intent detection.
 	// See [Language Support](https://dialogflow.com/docs/reference/language)
 	// for a list of the currently supported language codes.
-	LanguageCode string `protobuf:"bytes,15,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,15,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// The Speech recognition confidence between 0.0 and 1.0. A higher number
 	// indicates an estimated greater likelihood that the recognized words are
 	// correct. The default of 0.0 is a sentinel value indicating that confidence
@@ -578,42 +578,42 @@ type QueryResult struct {
 	// even set. In particular this field isn't set in Webhook calls and for
 	// StreamingDetectIntent since the streaming endpoint has separate confidence
 	// estimates per portion of the audio in StreamingRecognitionResult.
-	SpeechRecognitionConfidence float32 `protobuf:"fixed32,2,opt,name=speech_recognition_confidence,json=speechRecognitionConfidence" json:"speech_recognition_confidence,omitempty"`
+	SpeechRecognitionConfidence float32 `protobuf:"fixed32,2,opt,name=speech_recognition_confidence,json=speechRecognitionConfidence,proto3" json:"speech_recognition_confidence,omitempty"`
 	// The action name from the matched intent.
-	Action string `protobuf:"bytes,3,opt,name=action" json:"action,omitempty"`
+	Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"`
 	// The collection of extracted parameters.
-	Parameters *_struct.Struct `protobuf:"bytes,4,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters *_struct.Struct `protobuf:"bytes,4,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	// This field is set to:
 	// - `false` if the matched intent has required parameters and not all of
 	//    the required parameter values have been collected.
 	// - `true` if all required parameter values have been collected, or if the
 	//    matched intent doesn't contain any required parameters.
-	AllRequiredParamsPresent bool `protobuf:"varint,5,opt,name=all_required_params_present,json=allRequiredParamsPresent" json:"all_required_params_present,omitempty"`
+	AllRequiredParamsPresent bool `protobuf:"varint,5,opt,name=all_required_params_present,json=allRequiredParamsPresent,proto3" json:"all_required_params_present,omitempty"`
 	// The text to be pronounced to the user or shown on the screen.
-	FulfillmentText string `protobuf:"bytes,6,opt,name=fulfillment_text,json=fulfillmentText" json:"fulfillment_text,omitempty"`
+	FulfillmentText string `protobuf:"bytes,6,opt,name=fulfillment_text,json=fulfillmentText,proto3" json:"fulfillment_text,omitempty"`
 	// The collection of rich messages to present to the user.
-	FulfillmentMessages []*Intent_Message `protobuf:"bytes,7,rep,name=fulfillment_messages,json=fulfillmentMessages" json:"fulfillment_messages,omitempty"`
+	FulfillmentMessages []*Intent_Message `protobuf:"bytes,7,rep,name=fulfillment_messages,json=fulfillmentMessages,proto3" json:"fulfillment_messages,omitempty"`
 	// If the query was fulfilled by a webhook call, this field is set to the
 	// value of the `source` field returned in the webhook response.
-	WebhookSource string `protobuf:"bytes,8,opt,name=webhook_source,json=webhookSource" json:"webhook_source,omitempty"`
+	WebhookSource string `protobuf:"bytes,8,opt,name=webhook_source,json=webhookSource,proto3" json:"webhook_source,omitempty"`
 	// If the query was fulfilled by a webhook call, this field is set to the
 	// value of the `payload` field returned in the webhook response.
-	WebhookPayload *_struct.Struct `protobuf:"bytes,9,opt,name=webhook_payload,json=webhookPayload" json:"webhook_payload,omitempty"`
+	WebhookPayload *_struct.Struct `protobuf:"bytes,9,opt,name=webhook_payload,json=webhookPayload,proto3" json:"webhook_payload,omitempty"`
 	// The collection of output contexts. If applicable,
 	// `output_contexts.parameters` contains entries with name
 	// `<parameter name>.original` containing the original parameter values
 	// before the query.
-	OutputContexts []*Context `protobuf:"bytes,10,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,10,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// The intent that matched the conversational query. Some, not
 	// all fields are filled in this message, including but not limited to:
 	// `name`, `display_name` and `webhook_state`.
-	Intent *Intent `protobuf:"bytes,11,opt,name=intent" json:"intent,omitempty"`
+	Intent *Intent `protobuf:"bytes,11,opt,name=intent,proto3" json:"intent,omitempty"`
 	// The intent detection confidence. Values range from 0.0
 	// (completely uncertain) to 1.0 (completely certain).
-	IntentDetectionConfidence float32 `protobuf:"fixed32,12,opt,name=intent_detection_confidence,json=intentDetectionConfidence" json:"intent_detection_confidence,omitempty"`
+	IntentDetectionConfidence float32 `protobuf:"fixed32,12,opt,name=intent_detection_confidence,json=intentDetectionConfidence,proto3" json:"intent_detection_confidence,omitempty"`
 	// The free-form diagnostic info. For example, this field
 	// could contain webhook call latency.
-	DiagnosticInfo       *_struct.Struct `protobuf:"bytes,14,opt,name=diagnostic_info,json=diagnosticInfo" json:"diagnostic_info,omitempty"`
+	DiagnosticInfo       *_struct.Struct `protobuf:"bytes,14,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -764,9 +764,9 @@ type StreamingDetectIntentRequest struct {
 	// appropriate <Session ID>. and <User Id>. They can be a random numbers or
 	// some type of user and session identifiers (preferably hashed). The length
 	// of the <Session ID> and <User ID> must not exceed 36 characters.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Optional. The parameters of this query.
-	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams" json:"query_params,omitempty"`
+	QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"`
 	// Required. The input specification. It can be set to:
 	//
 	// 1.  an audio config which instructs the speech recognizer how to process
@@ -775,7 +775,7 @@ type StreamingDetectIntentRequest struct {
 	// 2.  a conversational query in the form of text, or
 	//
 	// 3.  an event that specifies which intent to trigger.
-	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput" json:"query_input,omitempty"`
+	QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"`
 	// Optional. If `false` (default), recognition does not cease until the
 	// client closes the stream.
 	// If `true`, the recognizer will detect a single spoken utterance in input
@@ -784,7 +784,7 @@ type StreamingDetectIntentRequest struct {
 	// client should close the stream and start a new request with a new stream as
 	// needed.
 	// This setting is ignored when `query_input` is a piece of text or an event.
-	SingleUtterance bool `protobuf:"varint,4,opt,name=single_utterance,json=singleUtterance" json:"single_utterance,omitempty"`
+	SingleUtterance bool `protobuf:"varint,4,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"`
 	// Optional. The input audio content to be recognized. Must be sent if
 	// `query_input` was set to a streaming input audio config. The complete audio
 	// over all streaming messages must not exceed 1 minute.
@@ -868,13 +868,13 @@ func (m *StreamingDetectIntentRequest) GetInputAudio() []byte {
 type StreamingDetectIntentResponse struct {
 	// The unique identifier of the response. It can be used to
 	// locate a response in the training example set or for reporting issues.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The result of speech recognition.
-	RecognitionResult *StreamingRecognitionResult `protobuf:"bytes,2,opt,name=recognition_result,json=recognitionResult" json:"recognition_result,omitempty"`
+	RecognitionResult *StreamingRecognitionResult `protobuf:"bytes,2,opt,name=recognition_result,json=recognitionResult,proto3" json:"recognition_result,omitempty"`
 	// The result of the conversational query or event processing.
-	QueryResult *QueryResult `protobuf:"bytes,3,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,3,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Specifies the status of the webhook request.
-	WebhookStatus        *status.Status `protobuf:"bytes,4,opt,name=webhook_status,json=webhookStatus" json:"webhook_status,omitempty"`
+	WebhookStatus        *status.Status `protobuf:"bytes,4,opt,name=webhook_status,json=webhookStatus,proto3" json:"webhook_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -967,16 +967,16 @@ func (m *StreamingDetectIntentResponse) GetWebhookStatus() *status.Status {
 // *  for `MESSAGE_TYPE_END_OF_SINGLE_UTTERANCE`: only `event_type`.
 type StreamingRecognitionResult struct {
 	// Type of the result message.
-	MessageType StreamingRecognitionResult_MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,enum=google.cloud.dialogflow.v2beta1.StreamingRecognitionResult_MessageType" json:"message_type,omitempty"`
+	MessageType StreamingRecognitionResult_MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3,enum=google.cloud.dialogflow.v2beta1.StreamingRecognitionResult_MessageType" json:"message_type,omitempty"`
 	// Transcript text representing the words that the user spoke.
 	// Populated if and only if `event_type` = `RECOGNITION_EVENT_TRANSCRIPT`.
-	Transcript string `protobuf:"bytes,2,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,2,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// The default of 0.0 is a sentinel value indicating `confidence` was not set.
 	// If `false`, the `StreamingRecognitionResult` represents an
 	// interim result that may change. If `true`, the recognizer will not return
 	// any further hypotheses about this piece of the audio. May only be populated
 	// for `event_type` = `RECOGNITION_EVENT_TRANSCRIPT`.
-	IsFinal bool `protobuf:"varint,3,opt,name=is_final,json=isFinal" json:"is_final,omitempty"`
+	IsFinal bool `protobuf:"varint,3,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
 	// The Speech confidence between 0.0 and 1.0 for the current portion of audio.
 	// A higher number indicates an estimated greater likelihood that the
 	// recognized words are correct. The default of 0.0 is a sentinel value
@@ -984,7 +984,7 @@ type StreamingRecognitionResult struct {
 	//
 	// This field is typically only provided if `is_final` is true and you should
 	// not rely on it being accurate or even set.
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1045,22 +1045,22 @@ func (m *StreamingRecognitionResult) GetConfidence() float32 {
 // Instructs the speech recognizer how to process the audio content.
 type InputAudioConfig struct {
 	// Required. Audio encoding of the audio content to process.
-	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,enum=google.cloud.dialogflow.v2beta1.AudioEncoding" json:"audio_encoding,omitempty"`
+	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,proto3,enum=google.cloud.dialogflow.v2beta1.AudioEncoding" json:"audio_encoding,omitempty"`
 	// Required. Sample rate (in Hertz) of the audio content sent in the query.
 	// Refer to [Cloud Speech API documentation](/speech/docs/basics) for more
 	// details.
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// Required. The language of the supplied audio. Dialogflow does not do
 	// translations. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. The collection of phrase hints which are used to boost accuracy
 	// of speech recognition.
 	// Refer to [Cloud Speech API documentation](/speech/docs/basics#phrase-hints)
 	// for more details.
-	PhraseHints          []string `protobuf:"bytes,4,rep,name=phrase_hints,json=phraseHints" json:"phrase_hints,omitempty"`
+	PhraseHints          []string `protobuf:"bytes,4,rep,name=phrase_hints,json=phraseHints,proto3" json:"phrase_hints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1122,12 +1122,12 @@ func (m *InputAudioConfig) GetPhraseHints() []string {
 type TextInput struct {
 	// Required. The UTF-8 encoded natural language text to be processed.
 	// Text length must not exceed 256 bytes.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Required. The language of this conversational query. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1178,14 +1178,14 @@ func (m *TextInput) GetLanguageCode() string {
 // `“Hello #welcome_event.name! What can I do for you today?”`.
 type EventInput struct {
 	// Required. The unique identifier of the event.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The collection of parameters associated with the event.
-	Parameters *_struct.Struct `protobuf:"bytes,2,opt,name=parameters" json:"parameters,omitempty"`
+	Parameters *_struct.Struct `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"`
 	// Required. The language of this query. See [Language
 	// Support](https://dialogflow.com/docs/languages) for a list of the
 	// currently supported language codes. Note that queries in the same session
 	// do not necessarily need to specify the same language.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1323,8 +1323,7 @@ func (x *sessionsStreamingDetectIntentClient) Recv() (*StreamingDetectIntentResp
 	return m, nil
 }
 
-// Server API for Sessions service
-
+// SessionsServer is the server API for Sessions service.
 type SessionsServer interface {
 	// Processes a natural language query and returns structured, actionable data
 	// as a result. This method is not idempotent, because it may cause contexts
diff --git a/googleapis/cloud/dialogflow/v2beta1/session_entity_type.pb.go b/googleapis/cloud/dialogflow/v2beta1/session_entity_type.pb.go
index 38681eb53c423b9434167b402728c94238d37020..8e4857281042f59851209b49f095de00e84cb40c 100644
--- a/googleapis/cloud/dialogflow/v2beta1/session_entity_type.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/session_entity_type.pb.go
@@ -79,13 +79,13 @@ type SessionEntityType struct {
 	// Note: Environments and users are under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. Indicates whether the additional data should override or
 	// supplement the developer entity type definition.
-	EntityOverrideMode SessionEntityType_EntityOverrideMode `protobuf:"varint,2,opt,name=entity_override_mode,json=entityOverrideMode,enum=google.cloud.dialogflow.v2beta1.SessionEntityType_EntityOverrideMode" json:"entity_override_mode,omitempty"`
+	EntityOverrideMode SessionEntityType_EntityOverrideMode `protobuf:"varint,2,opt,name=entity_override_mode,json=entityOverrideMode,proto3,enum=google.cloud.dialogflow.v2beta1.SessionEntityType_EntityOverrideMode" json:"entity_override_mode,omitempty"`
 	// Required. The collection of entities associated with this session entity
 	// type.
-	Entities             []*EntityType_Entity `protobuf:"bytes,3,rep,name=entities" json:"entities,omitempty"`
+	Entities             []*EntityType_Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -145,12 +145,12 @@ type ListSessionEntityTypesRequest struct {
 	// Note: Environments and users are under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. The maximum number of items to return in a single page. By
 	// default 100 and at most 1000.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional. The next_page_token value returned from a previous list request.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -205,10 +205,10 @@ func (m *ListSessionEntityTypesRequest) GetPageToken() string {
 type ListSessionEntityTypesResponse struct {
 	// The list of session entity types. There will be a maximum number of items
 	// returned based on the page_size field in the request.
-	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,1,rep,name=session_entity_types,json=sessionEntityTypes" json:"session_entity_types,omitempty"`
+	SessionEntityTypes []*SessionEntityType `protobuf:"bytes,1,rep,name=session_entity_types,json=sessionEntityTypes,proto3" json:"session_entity_types,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,7 +262,7 @@ type GetSessionEntityTypeRequest struct {
 	// Note: Environments and users re under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -308,9 +308,9 @@ type CreateSessionEntityTypeRequest struct {
 	// Note: Environments and users are under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The session entity type to create.
-	SessionEntityType    *SessionEntityType `protobuf:"bytes,2,opt,name=session_entity_type,json=sessionEntityType" json:"session_entity_type,omitempty"`
+	SessionEntityType    *SessionEntityType `protobuf:"bytes,2,opt,name=session_entity_type,json=sessionEntityType,proto3" json:"session_entity_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -364,9 +364,9 @@ type UpdateSessionEntityTypeRequest struct {
 	// Note: Environments and users are under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	SessionEntityType *SessionEntityType `protobuf:"bytes,1,opt,name=session_entity_type,json=sessionEntityType" json:"session_entity_type,omitempty"`
+	SessionEntityType *SessionEntityType `protobuf:"bytes,1,opt,name=session_entity_type,json=sessionEntityType,proto3" json:"session_entity_type,omitempty"`
 	// Optional. The mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -420,7 +420,7 @@ type DeleteSessionEntityTypeRequest struct {
 	// Note: Environments and users are under construction and will be available
 	// soon. If <Environment ID> is not specified, we assume default 'draft'
 	// environment. If <User ID> is not specified, we assume default '-' user.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -545,8 +545,7 @@ func (c *sessionEntityTypesClient) DeleteSessionEntityType(ctx context.Context,
 	return out, nil
 }
 
-// Server API for SessionEntityTypes service
-
+// SessionEntityTypesServer is the server API for SessionEntityTypes service.
 type SessionEntityTypesServer interface {
 	// Returns the list of all session entity types in the specified session.
 	ListSessionEntityTypes(context.Context, *ListSessionEntityTypesRequest) (*ListSessionEntityTypesResponse, error)
diff --git a/googleapis/cloud/dialogflow/v2beta1/webhook.pb.go b/googleapis/cloud/dialogflow/v2beta1/webhook.pb.go
index 75ff09c517825a40d477354df4d956650f3d8870..dfd7c5d9b736770c56b2cbefb701a4850cd2fdd0 100644
--- a/googleapis/cloud/dialogflow/v2beta1/webhook.pb.go
+++ b/googleapis/cloud/dialogflow/v2beta1/webhook.pb.go
@@ -25,16 +25,16 @@ type WebhookRequest struct {
 	// The unique identifier of detectIntent request session.
 	// Can be used to identify end-user inside webhook implementation.
 	// Format: `projects/<Project ID>/agent/sessions/<Session ID>`.
-	Session string `protobuf:"bytes,4,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,4,opt,name=session,proto3" json:"session,omitempty"`
 	// The unique identifier of the response. Contains the same value as
 	// `[Streaming]DetectIntentResponse.response_id`.
-	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId" json:"response_id,omitempty"`
+	ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"`
 	// The result of the conversational query or event processing. Contains the
 	// same value as `[Streaming]DetectIntentResponse.query_result`.
-	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult" json:"query_result,omitempty"`
+	QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"`
 	// Optional. The contents of the original request that was passed to
 	// `[Streaming]DetectIntent` call.
-	OriginalDetectIntentRequest *OriginalDetectIntentRequest `protobuf:"bytes,3,opt,name=original_detect_intent_request,json=originalDetectIntentRequest" json:"original_detect_intent_request,omitempty"`
+	OriginalDetectIntentRequest *OriginalDetectIntentRequest `protobuf:"bytes,3,opt,name=original_detect_intent_request,json=originalDetectIntentRequest,proto3" json:"original_detect_intent_request,omitempty"`
 	XXX_NoUnkeyedLiteral        struct{}                     `json:"-"`
 	XXX_unrecognized            []byte                       `json:"-"`
 	XXX_sizecache               int32                        `json:"-"`
@@ -96,12 +96,12 @@ func (m *WebhookRequest) GetOriginalDetectIntentRequest() *OriginalDetectIntentR
 type WebhookResponse struct {
 	// Optional. The text to be shown on the screen. This value is passed directly
 	// to `QueryResult.fulfillment_text`.
-	FulfillmentText string `protobuf:"bytes,1,opt,name=fulfillment_text,json=fulfillmentText" json:"fulfillment_text,omitempty"`
+	FulfillmentText string `protobuf:"bytes,1,opt,name=fulfillment_text,json=fulfillmentText,proto3" json:"fulfillment_text,omitempty"`
 	// Optional. The collection of rich messages to present to the user. This
 	// value is passed directly to `QueryResult.fulfillment_messages`.
-	FulfillmentMessages []*Intent_Message `protobuf:"bytes,2,rep,name=fulfillment_messages,json=fulfillmentMessages" json:"fulfillment_messages,omitempty"`
+	FulfillmentMessages []*Intent_Message `protobuf:"bytes,2,rep,name=fulfillment_messages,json=fulfillmentMessages,proto3" json:"fulfillment_messages,omitempty"`
 	// Optional. This value is passed directly to `QueryResult.webhook_source`.
-	Source string `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"`
+	Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
 	// Optional. This value is passed directly to `QueryResult.webhook_payload`.
 	// See the related `fulfillment_messages[i].payload field`, which may be used
 	// as an alternative to this field.
@@ -125,13 +125,13 @@ type WebhookResponse struct {
 	//     }
 	//   }
 	// }</pre>
-	Payload *_struct.Struct `protobuf:"bytes,4,opt,name=payload" json:"payload,omitempty"`
+	Payload *_struct.Struct `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
 	// Optional. The collection of output contexts. This value is passed directly
 	// to `QueryResult.output_contexts`.
-	OutputContexts []*Context `protobuf:"bytes,5,rep,name=output_contexts,json=outputContexts" json:"output_contexts,omitempty"`
+	OutputContexts []*Context `protobuf:"bytes,5,rep,name=output_contexts,json=outputContexts,proto3" json:"output_contexts,omitempty"`
 	// Optional. Makes the platform immediately invoke another `DetectIntent` call
 	// internally with the specified event as input.
-	FollowupEventInput   *EventInput `protobuf:"bytes,6,opt,name=followup_event_input,json=followupEventInput" json:"followup_event_input,omitempty"`
+	FollowupEventInput   *EventInput `protobuf:"bytes,6,opt,name=followup_event_input,json=followupEventInput,proto3" json:"followup_event_input,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -208,10 +208,10 @@ func (m *WebhookResponse) GetFollowupEventInput() *EventInput {
 type OriginalDetectIntentRequest struct {
 	// The source of this request, e.g., `google`, `facebook`, `slack`. It is set
 	// by Dialogflow-owned servers.
-	Source string `protobuf:"bytes,1,opt,name=source" json:"source,omitempty"`
+	Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
 	// Optional. This field is set to the value of `QueryParameters.payload` field
 	// passed in the request.
-	Payload              *_struct.Struct `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"`
+	Payload              *_struct.Struct `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
diff --git a/googleapis/cloud/functions/v1beta2/functions.pb.go b/googleapis/cloud/functions/v1beta2/functions.pb.go
index fb596e38580a2546949956b05dbc68933ddcea3b..90e79f9409b7c48a78bd32b00c93b0c29fbdd422 100644
--- a/googleapis/cloud/functions/v1beta2/functions.pb.go
+++ b/googleapis/cloud/functions/v1beta2/functions.pb.go
@@ -72,7 +72,7 @@ func (CloudFunctionStatus) EnumDescriptor() ([]byte, []int) {
 type CloudFunction struct {
 	// A user-defined name of the function. Function names must be unique
 	// globally and match pattern `projects/*/locations/*/functions/*`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The location of the function source code.
 	//
 	// Types that are valid to be assigned to SourceCode:
@@ -86,29 +86,29 @@ type CloudFunction struct {
 	//	*CloudFunction_EventTrigger
 	Trigger isCloudFunction_Trigger `protobuf_oneof:"trigger"`
 	// Output only. Status of the function deployment.
-	Status CloudFunctionStatus `protobuf:"varint,7,opt,name=status,enum=google.cloud.functions.v1beta2.CloudFunctionStatus" json:"status,omitempty"`
+	Status CloudFunctionStatus `protobuf:"varint,7,opt,name=status,proto3,enum=google.cloud.functions.v1beta2.CloudFunctionStatus" json:"status,omitempty"`
 	// Output only. Name of the most recent operation modifying the function. If
 	// the function status is `DEPLOYING` or `DELETING`, then it points to the
 	// active operation.
-	LatestOperation string `protobuf:"bytes,8,opt,name=latest_operation,json=latestOperation" json:"latest_operation,omitempty"`
+	LatestOperation string `protobuf:"bytes,8,opt,name=latest_operation,json=latestOperation,proto3" json:"latest_operation,omitempty"`
 	// The name of the function (as defined in source code) that will be
 	// executed. Defaults to the resource name suffix, if not specified. For
 	// backward compatibility, if function with given name is not found, then the
 	// system will try to use function named "function".
 	// For Node.js this is name of a function exported by the module specified
 	// in `source_location`.
-	EntryPoint string `protobuf:"bytes,9,opt,name=entry_point,json=entryPoint" json:"entry_point,omitempty"`
+	EntryPoint string `protobuf:"bytes,9,opt,name=entry_point,json=entryPoint,proto3" json:"entry_point,omitempty"`
 	// The function execution timeout. Execution is considered failed and
 	// can be terminated if the function is not completed at the end of the
 	// timeout period. Defaults to 60 seconds.
-	Timeout *duration.Duration `protobuf:"bytes,10,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,10,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// The amount of memory in MB available for a function.
 	// Defaults to 256MB.
-	AvailableMemoryMb int32 `protobuf:"varint,11,opt,name=available_memory_mb,json=availableMemoryMb" json:"available_memory_mb,omitempty"`
+	AvailableMemoryMb int32 `protobuf:"varint,11,opt,name=available_memory_mb,json=availableMemoryMb,proto3" json:"available_memory_mb,omitempty"`
 	// Output only. The service account of the function.
-	ServiceAccount string `protobuf:"bytes,13,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,13,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// Output only. The last update timestamp of a Cloud Function.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,15,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,15,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -146,16 +146,16 @@ type isCloudFunction_Trigger interface {
 }
 
 type CloudFunction_SourceArchiveUrl struct {
-	SourceArchiveUrl string `protobuf:"bytes,14,opt,name=source_archive_url,json=sourceArchiveUrl,oneof"`
+	SourceArchiveUrl string `protobuf:"bytes,14,opt,name=source_archive_url,json=sourceArchiveUrl,proto3,oneof"`
 }
 type CloudFunction_SourceRepository struct {
-	SourceRepository *SourceRepository `protobuf:"bytes,3,opt,name=source_repository,json=sourceRepository,oneof"`
+	SourceRepository *SourceRepository `protobuf:"bytes,3,opt,name=source_repository,json=sourceRepository,proto3,oneof"`
 }
 type CloudFunction_HttpsTrigger struct {
-	HttpsTrigger *HTTPSTrigger `protobuf:"bytes,6,opt,name=https_trigger,json=httpsTrigger,oneof"`
+	HttpsTrigger *HTTPSTrigger `protobuf:"bytes,6,opt,name=https_trigger,json=httpsTrigger,proto3,oneof"`
 }
 type CloudFunction_EventTrigger struct {
-	EventTrigger *EventTrigger `protobuf:"bytes,12,opt,name=event_trigger,json=eventTrigger,oneof"`
+	EventTrigger *EventTrigger `protobuf:"bytes,12,opt,name=event_trigger,json=eventTrigger,proto3,oneof"`
 }
 
 func (*CloudFunction_SourceArchiveUrl) isCloudFunction_SourceCode() {}
@@ -383,7 +383,7 @@ func _CloudFunction_OneofSizer(msg proto.Message) (n int) {
 // Describes HTTPSTrigger, could be used to connect web hooks to function.
 type HTTPSTrigger struct {
 	// Output only. The deployed url for the function.
-	Url                  string   `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url                  string   `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -433,13 +433,13 @@ type EventTrigger struct {
 	//
 	//      Handle a write to the Firebase Realtime Database
 	//      `providers/firebase.database/eventTypes/data.write`
-	EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType" json:"event_type,omitempty"`
+	EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
 	// Which instance of the source's service should send events. E.g. for Pub/Sub
 	// this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
 	// Storage this would be a bucket at `projects/*/buckets/*`. For any source
 	// that only supports one instance per-project, this should be the name of the
 	// project (`projects/*`)
-	Resource             string   `protobuf:"bytes,2,opt,name=resource" json:"resource,omitempty"`
+	Resource             string   `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -488,12 +488,12 @@ type SourceRepository struct {
 	// URL to the hosted repository where the function is defined. Only paths in
 	// https://source.developers.google.com domain are supported. The path should
 	// contain the name of the repository.
-	RepositoryUrl string `protobuf:"bytes,1,opt,name=repository_url,json=repositoryUrl" json:"repository_url,omitempty"`
+	RepositoryUrl string `protobuf:"bytes,1,opt,name=repository_url,json=repositoryUrl,proto3" json:"repository_url,omitempty"`
 	// The path within the repository where the function is defined. The path
 	// should point to the directory where Cloud Functions files are located. Use
 	// "/" if the function is defined directly in the root directory of a
 	// repository.
-	SourcePath string `protobuf:"bytes,2,opt,name=source_path,json=sourcePath" json:"source_path,omitempty"`
+	SourcePath string `protobuf:"bytes,2,opt,name=source_path,json=sourcePath,proto3" json:"source_path,omitempty"`
 	// The version of a function. Defaults to the latest version of the master
 	// branch.
 	//
@@ -507,7 +507,7 @@ type SourceRepository struct {
 	// branch, it will be the revision id of the latest change on this branch at
 	// that time. If user deployed from revision then this value will be always
 	// equal to the revision specified by the user.
-	DeployedRevision     string   `protobuf:"bytes,6,opt,name=deployed_revision,json=deployedRevision" json:"deployed_revision,omitempty"`
+	DeployedRevision     string   `protobuf:"bytes,6,opt,name=deployed_revision,json=deployedRevision,proto3" json:"deployed_revision,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -542,13 +542,13 @@ type isSourceRepository_Version interface {
 }
 
 type SourceRepository_Branch struct {
-	Branch string `protobuf:"bytes,3,opt,name=branch,oneof"`
+	Branch string `protobuf:"bytes,3,opt,name=branch,proto3,oneof"`
 }
 type SourceRepository_Tag struct {
-	Tag string `protobuf:"bytes,4,opt,name=tag,oneof"`
+	Tag string `protobuf:"bytes,4,opt,name=tag,proto3,oneof"`
 }
 type SourceRepository_Revision struct {
-	Revision string `protobuf:"bytes,5,opt,name=revision,oneof"`
+	Revision string `protobuf:"bytes,5,opt,name=revision,proto3,oneof"`
 }
 
 func (*SourceRepository_Branch) isSourceRepository_Version()   {}
@@ -689,9 +689,9 @@ func _SourceRepository_OneofSizer(msg proto.Message) (n int) {
 type CreateFunctionRequest struct {
 	// The project and location in which the function should be created, specified
 	// in the format `projects/*/locations/*`
-	Location string `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
 	// Function to be created.
-	Function             *CloudFunction `protobuf:"bytes,2,opt,name=function" json:"function,omitempty"`
+	Function             *CloudFunction `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -738,9 +738,9 @@ func (m *CreateFunctionRequest) GetFunction() *CloudFunction {
 // Request for the `UpdateFunction` method.
 type UpdateFunctionRequest struct {
 	// The name of the function to be updated.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// New version of the function.
-	Function             *CloudFunction `protobuf:"bytes,2,opt,name=function" json:"function,omitempty"`
+	Function             *CloudFunction `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -787,7 +787,7 @@ func (m *UpdateFunctionRequest) GetFunction() *CloudFunction {
 // Request for the `GetFunction` method.
 type GetFunctionRequest struct {
 	// The name of the function which details should be obtained.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -830,14 +830,14 @@ type ListFunctionsRequest struct {
 	// specified in the format `projects/*/locations/*`
 	// If you want to list functions in all locations, use "-" in place of a
 	// location.
-	Location string `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
 	// Maximum number of functions to return per call.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last
 	// `ListFunctionsResponse`; indicates that
 	// this is a continuation of a prior `ListFunctions` call, and that the
 	// system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -891,12 +891,12 @@ func (m *ListFunctionsRequest) GetPageToken() string {
 // Response for the `ListFunctions` method.
 type ListFunctionsResponse struct {
 	// The functions that match the request.
-	Functions []*CloudFunction `protobuf:"bytes,1,rep,name=functions" json:"functions,omitempty"`
+	Functions []*CloudFunction `protobuf:"bytes,1,rep,name=functions,proto3" json:"functions,omitempty"`
 	// If not empty, indicates that there may be more functions that match
 	// the request; this value should be passed in a new
 	// [google.cloud.functions.v1beta2.ListFunctionsRequest][]
 	// to get more functions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -943,7 +943,7 @@ func (m *ListFunctionsResponse) GetNextPageToken() string {
 // Request for the `DeleteFunction` method.
 type DeleteFunctionRequest struct {
 	// The name of the function which should be deleted.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -983,9 +983,9 @@ func (m *DeleteFunctionRequest) GetName() string {
 // Request for the `CallFunction` method.
 type CallFunctionRequest struct {
 	// The name of the function to be called.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Input to be passed to the function.
-	Data                 string   `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
+	Data                 string   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1032,13 +1032,13 @@ func (m *CallFunctionRequest) GetData() string {
 // Response of `CallFunction` method.
 type CallFunctionResponse struct {
 	// Execution id of function invocation.
-	ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId" json:"execution_id,omitempty"`
+	ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"`
 	// Result populated for successful execution of synchronous function. Will
 	// not be populated if function does not return a result through context.
-	Result string `protobuf:"bytes,2,opt,name=result" json:"result,omitempty"`
+	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
 	// Either system or user-function generated error. Set if execution
 	// was not successful.
-	Error                string   `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
+	Error                string   `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1198,8 +1198,7 @@ func (c *cloudFunctionsServiceClient) CallFunction(ctx context.Context, in *Call
 	return out, nil
 }
 
-// Server API for CloudFunctionsService service
-
+// CloudFunctionsServiceServer is the server API for CloudFunctionsService service.
 type CloudFunctionsServiceServer interface {
 	// Returns a list of functions that belong to the requested project.
 	ListFunctions(context.Context, *ListFunctionsRequest) (*ListFunctionsResponse, error)
diff --git a/googleapis/cloud/functions/v1beta2/operations.pb.go b/googleapis/cloud/functions/v1beta2/operations.pb.go
index 5cf56d40abeb23aa13a09e289754c8e7fdd4bb9f..56990f47bedde5bf05abf9ab3e674d07a3b18777 100644
--- a/googleapis/cloud/functions/v1beta2/operations.pb.go
+++ b/googleapis/cloud/functions/v1beta2/operations.pb.go
@@ -58,11 +58,11 @@ func (OperationType) EnumDescriptor() ([]byte, []int) {
 type OperationMetadataV1Beta2 struct {
 	// Target of the operation - for example
 	// projects/project-1/locations/region-1/functions/function-1
-	Target string `protobuf:"bytes,1,opt,name=target" json:"target,omitempty"`
+	Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
 	// Type of operation.
-	Type OperationType `protobuf:"varint,2,opt,name=type,enum=google.cloud.functions.v1beta2.OperationType" json:"type,omitempty"`
+	Type OperationType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.functions.v1beta2.OperationType" json:"type,omitempty"`
 	// The original request that started the operation.
-	Request              *any.Any `protobuf:"bytes,3,opt,name=request" json:"request,omitempty"`
+	Request              *any.Any `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/iot/v1/device_manager.pb.go b/googleapis/cloud/iot/v1/device_manager.pb.go
index 70ee97bac41657492391927c0d54d88a4c63b91d..58891f700c8976473924ec4238477d94e4d83b37 100644
--- a/googleapis/cloud/iot/v1/device_manager.pb.go
+++ b/googleapis/cloud/iot/v1/device_manager.pb.go
@@ -33,11 +33,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type CreateDeviceRegistryRequest struct {
 	// The project and cloud region where this device registry must be created.
 	// For example, `projects/example-project/locations/us-central1`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The device registry. The field `name` must be empty. The server will
 	// generate that field from the device registry `id` provided and the
 	// `parent` field.
-	DeviceRegistry       *DeviceRegistry `protobuf:"bytes,2,opt,name=device_registry,json=deviceRegistry" json:"device_registry,omitempty"`
+	DeviceRegistry       *DeviceRegistry `protobuf:"bytes,2,opt,name=device_registry,json=deviceRegistry,proto3" json:"device_registry,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -85,7 +85,7 @@ func (m *CreateDeviceRegistryRequest) GetDeviceRegistry() *DeviceRegistry {
 type GetDeviceRegistryRequest struct {
 	// The name of the device registry. For example,
 	// `projects/example-project/locations/us-central1/registries/my-registry`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -126,7 +126,7 @@ func (m *GetDeviceRegistryRequest) GetName() string {
 type DeleteDeviceRegistryRequest struct {
 	// The name of the device registry. For example,
 	// `projects/example-project/locations/us-central1/registries/my-registry`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -168,13 +168,13 @@ type UpdateDeviceRegistryRequest struct {
 	// The new values for the device registry. The `id` field must be empty, and
 	// the `name` field must indicate the path of the resource. For example,
 	// `projects/example-project/locations/us-central1/registries/my-registry`.
-	DeviceRegistry *DeviceRegistry `protobuf:"bytes,1,opt,name=device_registry,json=deviceRegistry" json:"device_registry,omitempty"`
+	DeviceRegistry *DeviceRegistry `protobuf:"bytes,1,opt,name=device_registry,json=deviceRegistry,proto3" json:"device_registry,omitempty"`
 	// Only updates the `device_registry` fields indicated by this mask.
 	// The field mask must not be empty, and it must not contain fields that
 	// are immutable or only set by the server.
 	// Mutable top-level fields: `event_notification_config`, `http_config`,
 	// `mqtt_config`, and `state_notification_config`.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -222,16 +222,16 @@ func (m *UpdateDeviceRegistryRequest) GetUpdateMask() *field_mask.FieldMask {
 type ListDeviceRegistriesRequest struct {
 	// The project and cloud region path. For example,
 	// `projects/example-project/locations/us-central1`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of registries to return in the response. If this value
 	// is zero, the service will select a default size. A call may return fewer
 	// objects than requested, but if there is a non-empty `page_token`, it
 	// indicates that more entries are available.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListDeviceRegistriesResponse`; indicates
 	// that this is a continuation of a prior `ListDeviceRegistries` call, and
 	// that the system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -285,11 +285,11 @@ func (m *ListDeviceRegistriesRequest) GetPageToken() string {
 // Response for `ListDeviceRegistries`.
 type ListDeviceRegistriesResponse struct {
 	// The registries that matched the query.
-	DeviceRegistries []*DeviceRegistry `protobuf:"bytes,1,rep,name=device_registries,json=deviceRegistries" json:"device_registries,omitempty"`
+	DeviceRegistries []*DeviceRegistry `protobuf:"bytes,1,rep,name=device_registries,json=deviceRegistries,proto3" json:"device_registries,omitempty"`
 	// If not empty, indicates that there may be more registries that match the
 	// request; this value should be passed in a new
 	// `ListDeviceRegistriesRequest`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -338,11 +338,11 @@ type CreateDeviceRequest struct {
 	// The name of the device registry where this device should be created.
 	// For example,
 	// `projects/example-project/locations/us-central1/registries/my-registry`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The device registration details. The field `name` must be empty. The server
 	// will generate that field from the device registry `id` provided and the
 	// `parent` field.
-	Device               *Device  `protobuf:"bytes,2,opt,name=device" json:"device,omitempty"`
+	Device               *Device  `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -391,10 +391,10 @@ type GetDeviceRequest struct {
 	// The name of the device. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The fields of the `Device` resource to be returned in the response. If the
 	// field mask is unset or empty, all fields are returned.
-	FieldMask            *field_mask.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask" json:"field_mask,omitempty"`
+	FieldMask            *field_mask.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -444,12 +444,12 @@ type UpdateDeviceRequest struct {
 	// be empty, and the field `name` must specify the name path. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0`or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Device *Device `protobuf:"bytes,2,opt,name=device" json:"device,omitempty"`
+	Device *Device `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
 	// Only updates the `device` fields indicated by this mask.
 	// The field mask must not be empty, and it must not contain fields that
 	// are immutable or only set by the server.
 	// Mutable top-level fields: `credentials`, `blocked`, and `metadata`
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -498,7 +498,7 @@ type DeleteDeviceRequest struct {
 	// The name of the device. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -539,27 +539,27 @@ func (m *DeleteDeviceRequest) GetName() string {
 type ListDevicesRequest struct {
 	// The device registry path. Required. For example,
 	// `projects/my-project/locations/us-central1/registries/my-registry`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// A list of device numerical ids. If empty, it will ignore this field. This
 	// field cannot hold more than 10,000 entries.
-	DeviceNumIds []uint64 `protobuf:"varint,2,rep,packed,name=device_num_ids,json=deviceNumIds" json:"device_num_ids,omitempty"`
+	DeviceNumIds []uint64 `protobuf:"varint,2,rep,packed,name=device_num_ids,json=deviceNumIds,proto3" json:"device_num_ids,omitempty"`
 	// A list of device string identifiers. If empty, it will ignore this field.
 	// For example, `['device0', 'device12']`. This field cannot hold more than
 	// 10,000 entries.
-	DeviceIds []string `protobuf:"bytes,3,rep,name=device_ids,json=deviceIds" json:"device_ids,omitempty"`
+	DeviceIds []string `protobuf:"bytes,3,rep,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"`
 	// The fields of the `Device` resource to be returned in the response. The
 	// fields `id`, and `num_id` are always returned by default, along with any
 	// other fields specified.
-	FieldMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=field_mask,json=fieldMask" json:"field_mask,omitempty"`
+	FieldMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
 	// The maximum number of devices to return in the response. If this value
 	// is zero, the service will select a default size. A call may return fewer
 	// objects than requested, but if there is a non-empty `page_token`, it
 	// indicates that more entries are available.
-	PageSize int32 `protobuf:"varint,100,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,100,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListDevicesResponse`; indicates
 	// that this is a continuation of a prior `ListDevices` call, and
 	// that the system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,101,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,101,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -634,10 +634,10 @@ func (m *ListDevicesRequest) GetPageToken() string {
 // Response for `ListDevices`.
 type ListDevicesResponse struct {
 	// The devices that match the request.
-	Devices []*Device `protobuf:"bytes,1,rep,name=devices" json:"devices,omitempty"`
+	Devices []*Device `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"`
 	// If not empty, indicates that there may be more devices that match the
 	// request; this value should be passed in a new `ListDevicesRequest`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -686,13 +686,13 @@ type ModifyCloudToDeviceConfigRequest struct {
 	// The name of the device. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The version number to update. If this value is zero, it will not check the
 	// version number of the server and will always update the current version;
 	// otherwise, this update will fail if the version number found on the server
 	// does not match this version number. This is used to support multiple
 	// simultaneous updates without losing data.
-	VersionToUpdate int64 `protobuf:"varint,2,opt,name=version_to_update,json=versionToUpdate" json:"version_to_update,omitempty"`
+	VersionToUpdate int64 `protobuf:"varint,2,opt,name=version_to_update,json=versionToUpdate,proto3" json:"version_to_update,omitempty"`
 	// The configuration data for the device.
 	BinaryData           []byte   `protobuf:"bytes,3,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -750,11 +750,11 @@ type ListDeviceConfigVersionsRequest struct {
 	// The name of the device. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The number of versions to list. Versions are listed in decreasing order of
 	// the version number. The maximum number of versions retained is 10. If this
 	// value is zero, it will return all the versions available.
-	NumVersions          int32    `protobuf:"varint,2,opt,name=num_versions,json=numVersions" json:"num_versions,omitempty"`
+	NumVersions          int32    `protobuf:"varint,2,opt,name=num_versions,json=numVersions,proto3" json:"num_versions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -802,7 +802,7 @@ func (m *ListDeviceConfigVersionsRequest) GetNumVersions() int32 {
 type ListDeviceConfigVersionsResponse struct {
 	// The device configuration for the last few versions. Versions are listed
 	// in decreasing order, starting from the most recent one.
-	DeviceConfigs        []*DeviceConfig `protobuf:"bytes,1,rep,name=device_configs,json=deviceConfigs" json:"device_configs,omitempty"`
+	DeviceConfigs        []*DeviceConfig `protobuf:"bytes,1,rep,name=device_configs,json=deviceConfigs,proto3" json:"device_configs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -844,11 +844,11 @@ type ListDeviceStatesRequest struct {
 	// The name of the device. For example,
 	// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
 	// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The number of states to list. States are listed in descending order of
 	// update time. The maximum number of states retained is 10. If this
 	// value is zero, it will return all the states available.
-	NumStates            int32    `protobuf:"varint,2,opt,name=num_states,json=numStates" json:"num_states,omitempty"`
+	NumStates            int32    `protobuf:"varint,2,opt,name=num_states,json=numStates,proto3" json:"num_states,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -896,7 +896,7 @@ func (m *ListDeviceStatesRequest) GetNumStates() int32 {
 type ListDeviceStatesResponse struct {
 	// The last few device states. States are listed in descending order of server
 	// update time, starting from the most recent one.
-	DeviceStates         []*DeviceState `protobuf:"bytes,1,rep,name=device_states,json=deviceStates" json:"device_states,omitempty"`
+	DeviceStates         []*DeviceState `protobuf:"bytes,1,rep,name=device_states,json=deviceStates,proto3" json:"device_states,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1160,8 +1160,7 @@ func (c *deviceManagerClient) TestIamPermissions(ctx context.Context, in *v1.Tes
 	return out, nil
 }
 
-// Server API for DeviceManager service
-
+// DeviceManagerServer is the server API for DeviceManager service.
 type DeviceManagerServer interface {
 	// Creates a device registry that contains devices.
 	CreateDeviceRegistry(context.Context, *CreateDeviceRegistryRequest) (*DeviceRegistry, error)
diff --git a/googleapis/cloud/iot/v1/resources.pb.go b/googleapis/cloud/iot/v1/resources.pb.go
index e7ff06bfb8885f5fe528b1ea2b8983b3324242ae..ee440bb859ac06689c050b28a4ffb15adeefb682 100644
--- a/googleapis/cloud/iot/v1/resources.pb.go
+++ b/googleapis/cloud/iot/v1/resources.pb.go
@@ -167,67 +167,67 @@ func (PublicKeyFormat) EnumDescriptor() ([]byte, []int) {
 type Device struct {
 	// The user-defined device identifier. The device ID must be unique
 	// within a device registry.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The resource path name. For example,
 	// `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
 	// `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
 	// When `name` is populated as a response from the service, it always ends
 	// in the device numeric ID.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// [Output only] A server-defined unique numeric ID for the device. This is a
 	// more compact way to identify devices, and it is globally unique.
-	NumId uint64 `protobuf:"varint,3,opt,name=num_id,json=numId" json:"num_id,omitempty"`
+	NumId uint64 `protobuf:"varint,3,opt,name=num_id,json=numId,proto3" json:"num_id,omitempty"`
 	// The credentials used to authenticate this device. To allow credential
 	// rotation without interruption, multiple device credentials can be bound to
 	// this device. No more than 3 credentials can be bound to a single device at
 	// a time. When new credentials are added to a device, they are verified
 	// against the registry credentials. For details, see the description of the
 	// `DeviceRegistry.credentials` field.
-	Credentials []*DeviceCredential `protobuf:"bytes,12,rep,name=credentials" json:"credentials,omitempty"`
+	Credentials []*DeviceCredential `protobuf:"bytes,12,rep,name=credentials,proto3" json:"credentials,omitempty"`
 	// [Output only] The last time an MQTT `PINGREQ` was received. This field
 	// applies only to devices connecting through MQTT. MQTT clients usually only
 	// send `PINGREQ` messages if the connection is idle, and no other messages
 	// have been sent. Timestamps are periodically collected and written to
 	// storage; they may be stale by a few minutes.
-	LastHeartbeatTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=last_heartbeat_time,json=lastHeartbeatTime" json:"last_heartbeat_time,omitempty"`
+	LastHeartbeatTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=last_heartbeat_time,json=lastHeartbeatTime,proto3" json:"last_heartbeat_time,omitempty"`
 	// [Output only] The last time a telemetry event was received. Timestamps are
 	// periodically collected and written to storage; they may be stale by a few
 	// minutes.
-	LastEventTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_event_time,json=lastEventTime" json:"last_event_time,omitempty"`
+	LastEventTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_event_time,json=lastEventTime,proto3" json:"last_event_time,omitempty"`
 	// [Output only] The last time a state event was received. Timestamps are
 	// periodically collected and written to storage; they may be stale by a few
 	// minutes.
-	LastStateTime *timestamp.Timestamp `protobuf:"bytes,20,opt,name=last_state_time,json=lastStateTime" json:"last_state_time,omitempty"`
+	LastStateTime *timestamp.Timestamp `protobuf:"bytes,20,opt,name=last_state_time,json=lastStateTime,proto3" json:"last_state_time,omitempty"`
 	// [Output only] The last time a cloud-to-device config version acknowledgment
 	// was received from the device. This field is only for configurations
 	// sent through MQTT.
-	LastConfigAckTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=last_config_ack_time,json=lastConfigAckTime" json:"last_config_ack_time,omitempty"`
+	LastConfigAckTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=last_config_ack_time,json=lastConfigAckTime,proto3" json:"last_config_ack_time,omitempty"`
 	// [Output only] The last time a cloud-to-device config version was sent to
 	// the device.
-	LastConfigSendTime *timestamp.Timestamp `protobuf:"bytes,18,opt,name=last_config_send_time,json=lastConfigSendTime" json:"last_config_send_time,omitempty"`
+	LastConfigSendTime *timestamp.Timestamp `protobuf:"bytes,18,opt,name=last_config_send_time,json=lastConfigSendTime,proto3" json:"last_config_send_time,omitempty"`
 	// If a device is blocked, connections or requests from this device will fail.
 	// Can be used to temporarily prevent the device from connecting if, for
 	// example, the sensor is generating bad data and needs maintenance.
-	Blocked bool `protobuf:"varint,19,opt,name=blocked" json:"blocked,omitempty"`
+	Blocked bool `protobuf:"varint,19,opt,name=blocked,proto3" json:"blocked,omitempty"`
 	// [Output only] The time the most recent error occurred, such as a failure to
 	// publish to Cloud Pub/Sub. This field is the timestamp of
 	// 'last_error_status'.
-	LastErrorTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=last_error_time,json=lastErrorTime" json:"last_error_time,omitempty"`
+	LastErrorTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=last_error_time,json=lastErrorTime,proto3" json:"last_error_time,omitempty"`
 	// [Output only] The error message of the most recent error, such as a failure
 	// to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
 	// field. If no errors have occurred, this field has an empty message
 	// and the status code 0 == OK. Otherwise, this field is expected to have a
 	// status code other than OK.
-	LastErrorStatus *status.Status `protobuf:"bytes,11,opt,name=last_error_status,json=lastErrorStatus" json:"last_error_status,omitempty"`
+	LastErrorStatus *status.Status `protobuf:"bytes,11,opt,name=last_error_status,json=lastErrorStatus,proto3" json:"last_error_status,omitempty"`
 	// The most recent device configuration, which is eventually sent from
 	// Cloud IoT Core to the device. If not present on creation, the
 	// configuration will be initialized with an empty payload and version value
 	// of `1`. To update this field after creation, use the
 	// `DeviceManager.ModifyCloudToDeviceConfig` method.
-	Config *DeviceConfig `protobuf:"bytes,13,opt,name=config" json:"config,omitempty"`
+	Config *DeviceConfig `protobuf:"bytes,13,opt,name=config,proto3" json:"config,omitempty"`
 	// [Output only] The state most recently received from the device. If no state
 	// has been reported, this field is not present.
-	State *DeviceState `protobuf:"bytes,16,opt,name=state" json:"state,omitempty"`
+	State *DeviceState `protobuf:"bytes,16,opt,name=state,proto3" json:"state,omitempty"`
 	// The metadata key-value pairs assigned to the device. This metadata is not
 	// interpreted or indexed by Cloud IoT Core. It can be used to add contextual
 	// information for the device.
@@ -240,7 +240,7 @@ type Device struct {
 	//
 	// The total size of all keys and values must be less than 256 KB, and the
 	// maximum number of key-value pairs is 500.
-	Metadata             map[string]string `protobuf:"bytes,17,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata             map[string]string `protobuf:"bytes,17,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -378,10 +378,10 @@ func (m *Device) GetMetadata() map[string]string {
 // A container for a group of devices.
 type DeviceRegistry struct {
 	// The identifier of this device registry. For example, `myRegistry`.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The resource path name. For example,
 	// `projects/example-project/locations/us-central1/registries/my-registry`.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The configuration for notification of telemetry events received from the
 	// device. All telemetry events that were successfully published by the
 	// device and acknowledged by Cloud IoT Core are guaranteed to be
@@ -391,18 +391,18 @@ type DeviceRegistry struct {
 	// for the device's registry, the connection closes automatically. If you try
 	// to do so using an HTTP connection, an error is returned. Up to 10
 	// configurations may be provided.
-	EventNotificationConfigs []*EventNotificationConfig `protobuf:"bytes,10,rep,name=event_notification_configs,json=eventNotificationConfigs" json:"event_notification_configs,omitempty"`
+	EventNotificationConfigs []*EventNotificationConfig `protobuf:"bytes,10,rep,name=event_notification_configs,json=eventNotificationConfigs,proto3" json:"event_notification_configs,omitempty"`
 	// The configuration for notification of new states received from the device.
 	// State updates are guaranteed to be stored in the state history, but
 	// notifications to Cloud Pub/Sub are not guaranteed. For example, if
 	// permissions are misconfigured or the specified topic doesn't exist, no
 	// notification will be published but the state will still be stored in Cloud
 	// IoT Core.
-	StateNotificationConfig *StateNotificationConfig `protobuf:"bytes,7,opt,name=state_notification_config,json=stateNotificationConfig" json:"state_notification_config,omitempty"`
+	StateNotificationConfig *StateNotificationConfig `protobuf:"bytes,7,opt,name=state_notification_config,json=stateNotificationConfig,proto3" json:"state_notification_config,omitempty"`
 	// The MQTT configuration for this device registry.
-	MqttConfig *MqttConfig `protobuf:"bytes,4,opt,name=mqtt_config,json=mqttConfig" json:"mqtt_config,omitempty"`
+	MqttConfig *MqttConfig `protobuf:"bytes,4,opt,name=mqtt_config,json=mqttConfig,proto3" json:"mqtt_config,omitempty"`
 	// The DeviceService (HTTP) configuration for this device registry.
-	HttpConfig *HttpConfig `protobuf:"bytes,9,opt,name=http_config,json=httpConfig" json:"http_config,omitempty"`
+	HttpConfig *HttpConfig `protobuf:"bytes,9,opt,name=http_config,json=httpConfig,proto3" json:"http_config,omitempty"`
 	// The credentials used to verify the device credentials. No more than 10
 	// credentials can be bound to a single registry at a time. The verification
 	// process occurs at the time of device creation or update. If this field is
@@ -414,7 +414,7 @@ type DeviceRegistry struct {
 	// modifications to this list of credentials: after a device has been
 	// successfully created in a registry, it should be able to connect even if
 	// its registry credentials are revoked, deleted, or modified.
-	Credentials          []*RegistryCredential `protobuf:"bytes,8,rep,name=credentials" json:"credentials,omitempty"`
+	Credentials          []*RegistryCredential `protobuf:"bytes,8,rep,name=credentials,proto3" json:"credentials,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -497,7 +497,7 @@ func (m *DeviceRegistry) GetCredentials() []*RegistryCredential {
 type MqttConfig struct {
 	// If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
 	// connections to this registry will fail.
-	MqttEnabledState     MqttState `protobuf:"varint,1,opt,name=mqtt_enabled_state,json=mqttEnabledState,enum=google.cloud.iot.v1.MqttState" json:"mqtt_enabled_state,omitempty"`
+	MqttEnabledState     MqttState `protobuf:"varint,1,opt,name=mqtt_enabled_state,json=mqttEnabledState,proto3,enum=google.cloud.iot.v1.MqttState" json:"mqtt_enabled_state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -538,7 +538,7 @@ func (m *MqttConfig) GetMqttEnabledState() MqttState {
 type HttpConfig struct {
 	// If enabled, allows devices to use DeviceService via the HTTP protocol.
 	// Otherwise, any requests to DeviceService will fail for this registry.
-	HttpEnabledState     HttpState `protobuf:"varint,1,opt,name=http_enabled_state,json=httpEnabledState,enum=google.cloud.iot.v1.HttpState" json:"http_enabled_state,omitempty"`
+	HttpEnabledState     HttpState `protobuf:"varint,1,opt,name=http_enabled_state,json=httpEnabledState,proto3,enum=google.cloud.iot.v1.HttpState" json:"http_enabled_state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -581,10 +581,10 @@ type EventNotificationConfig struct {
 	// be used. The string must not include the leading '/' character. If empty,
 	// all strings are matched. This field is used only for telemetry events;
 	// subfolders are not supported for state changes.
-	SubfolderMatches string `protobuf:"bytes,2,opt,name=subfolder_matches,json=subfolderMatches" json:"subfolder_matches,omitempty"`
+	SubfolderMatches string `protobuf:"bytes,2,opt,name=subfolder_matches,json=subfolderMatches,proto3" json:"subfolder_matches,omitempty"`
 	// A Cloud Pub/Sub topic name. For example,
 	// `projects/myProject/topics/deviceEvents`.
-	PubsubTopicName      string   `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName" json:"pubsub_topic_name,omitempty"`
+	PubsubTopicName      string   `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName,proto3" json:"pubsub_topic_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -632,7 +632,7 @@ func (m *EventNotificationConfig) GetPubsubTopicName() string {
 type StateNotificationConfig struct {
 	// A Cloud Pub/Sub topic name. For example,
 	// `projects/myProject/topics/deviceEvents`.
-	PubsubTopicName      string   `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName" json:"pubsub_topic_name,omitempty"`
+	PubsubTopicName      string   `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName,proto3" json:"pubsub_topic_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -710,7 +710,7 @@ type isRegistryCredential_Credential interface {
 }
 
 type RegistryCredential_PublicKeyCertificate struct {
-	PublicKeyCertificate *PublicKeyCertificate `protobuf:"bytes,1,opt,name=public_key_certificate,json=publicKeyCertificate,oneof"`
+	PublicKeyCertificate *PublicKeyCertificate `protobuf:"bytes,1,opt,name=public_key_certificate,json=publicKeyCertificate,proto3,oneof"`
 }
 
 func (*RegistryCredential_PublicKeyCertificate) isRegistryCredential_Credential() {}
@@ -787,17 +787,17 @@ func _RegistryCredential_OneofSizer(msg proto.Message) (n int) {
 // Details of an X.509 certificate. For informational purposes only.
 type X509CertificateDetails struct {
 	// The entity that signed the certificate.
-	Issuer string `protobuf:"bytes,1,opt,name=issuer" json:"issuer,omitempty"`
+	Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
 	// The entity the certificate and public key belong to.
-	Subject string `protobuf:"bytes,2,opt,name=subject" json:"subject,omitempty"`
+	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
 	// The time the certificate becomes valid.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time the certificate becomes invalid.
-	ExpiryTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expiry_time,json=expiryTime" json:"expiry_time,omitempty"`
+	ExpiryTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expiry_time,json=expiryTime,proto3" json:"expiry_time,omitempty"`
 	// The algorithm used to sign the certificate.
-	SignatureAlgorithm string `protobuf:"bytes,5,opt,name=signature_algorithm,json=signatureAlgorithm" json:"signature_algorithm,omitempty"`
+	SignatureAlgorithm string `protobuf:"bytes,5,opt,name=signature_algorithm,json=signatureAlgorithm,proto3" json:"signature_algorithm,omitempty"`
 	// The type of public key in the certificate.
-	PublicKeyType        string   `protobuf:"bytes,6,opt,name=public_key_type,json=publicKeyType" json:"public_key_type,omitempty"`
+	PublicKeyType        string   `protobuf:"bytes,6,opt,name=public_key_type,json=publicKeyType,proto3" json:"public_key_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -872,11 +872,11 @@ func (m *X509CertificateDetails) GetPublicKeyType() string {
 // A public key certificate format and data.
 type PublicKeyCertificate struct {
 	// The certificate format.
-	Format PublicKeyCertificateFormat `protobuf:"varint,1,opt,name=format,enum=google.cloud.iot.v1.PublicKeyCertificateFormat" json:"format,omitempty"`
+	Format PublicKeyCertificateFormat `protobuf:"varint,1,opt,name=format,proto3,enum=google.cloud.iot.v1.PublicKeyCertificateFormat" json:"format,omitempty"`
 	// The certificate data.
-	Certificate string `protobuf:"bytes,2,opt,name=certificate" json:"certificate,omitempty"`
+	Certificate string `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
 	// [Output only] The certificate details. Used only for X.509 certificates.
-	X509Details          *X509CertificateDetails `protobuf:"bytes,3,opt,name=x509_details,json=x509Details" json:"x509_details,omitempty"`
+	X509Details          *X509CertificateDetails `protobuf:"bytes,3,opt,name=x509_details,json=x509Details,proto3" json:"x509_details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -937,7 +937,7 @@ type DeviceCredential struct {
 	// [Optional] The time at which this credential becomes invalid. This
 	// credential will be ignored for new client authentication requests after
 	// this timestamp; however, it will not be automatically deleted.
-	ExpirationTime       *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expiration_time,json=expirationTime" json:"expiration_time,omitempty"`
+	ExpirationTime       *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -972,7 +972,7 @@ type isDeviceCredential_Credential interface {
 }
 
 type DeviceCredential_PublicKey struct {
-	PublicKey *PublicKeyCredential `protobuf:"bytes,2,opt,name=public_key,json=publicKey,oneof"`
+	PublicKey *PublicKeyCredential `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3,oneof"`
 }
 
 func (*DeviceCredential_PublicKey) isDeviceCredential_Credential() {}
@@ -1056,9 +1056,9 @@ func _DeviceCredential_OneofSizer(msg proto.Message) (n int) {
 // A public key format and data.
 type PublicKeyCredential struct {
 	// The format of the key.
-	Format PublicKeyFormat `protobuf:"varint,1,opt,name=format,enum=google.cloud.iot.v1.PublicKeyFormat" json:"format,omitempty"`
+	Format PublicKeyFormat `protobuf:"varint,1,opt,name=format,proto3,enum=google.cloud.iot.v1.PublicKeyFormat" json:"format,omitempty"`
 	// The key data.
-	Key                  string   `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"`
+	Key                  string   `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1108,10 +1108,10 @@ type DeviceConfig struct {
 	// the server, and is always greater than 0 after device creation. The
 	// version must be 0 on the `CreateDevice` request if a `config` is
 	// specified; the response of `CreateDevice` will always have a value of 1.
-	Version int64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
+	Version int64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
 	// [Output only] The time at which this configuration version was updated in
 	// Cloud IoT Core. This timestamp is set by the server.
-	CloudUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=cloud_update_time,json=cloudUpdateTime" json:"cloud_update_time,omitempty"`
+	CloudUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=cloud_update_time,json=cloudUpdateTime,proto3" json:"cloud_update_time,omitempty"`
 	// [Output only] The time at which Cloud IoT Core received the
 	// acknowledgment from the device, indicating that the device has received
 	// this configuration version. If this field is not present, the device has
@@ -1121,7 +1121,7 @@ type DeviceConfig struct {
 	// connection, only the latest version is sent to the device. Some
 	// versions may never be sent to the device, and therefore are never
 	// acknowledged. This timestamp is set by Cloud IoT Core.
-	DeviceAckTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=device_ack_time,json=deviceAckTime" json:"device_ack_time,omitempty"`
+	DeviceAckTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=device_ack_time,json=deviceAckTime,proto3" json:"device_ack_time,omitempty"`
 	// The device configuration data.
 	BinaryData           []byte   `protobuf:"bytes,4,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1185,7 +1185,7 @@ func (m *DeviceConfig) GetBinaryData() []byte {
 type DeviceState struct {
 	// [Output only] The time at which this state version was updated in Cloud
 	// IoT Core.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// The device state data.
 	BinaryData           []byte   `protobuf:"bytes,2,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
diff --git a/googleapis/cloud/language/v1/language_service.pb.go b/googleapis/cloud/language/v1/language_service.pb.go
index 8276bc57b646e2d5f99181ce6a0f7f8eeda53483..ac110e7c3a964c3198a3d1735df2b30a7e643c50 100644
--- a/googleapis/cloud/language/v1/language_service.pb.go
+++ b/googleapis/cloud/language/v1/language_service.pb.go
@@ -1086,7 +1086,7 @@ func (EntityMention_Type) EnumDescriptor() ([]byte, []int) {
 type Document struct {
 	// Required. If the type is not set or is `TYPE_UNSPECIFIED`,
 	// returns an `INVALID_ARGUMENT` error.
-	Type Document_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.language.v1.Document_Type" json:"type,omitempty"`
+	Type Document_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.language.v1.Document_Type" json:"type,omitempty"`
 	// The source of the document: a string containing the content or a
 	// Google Cloud Storage URI.
 	//
@@ -1102,7 +1102,7 @@ type Document struct {
 	// 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.
-	Language             string   `protobuf:"bytes,4,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1137,10 +1137,10 @@ type isDocument_Source interface {
 }
 
 type Document_Content struct {
-	Content string `protobuf:"bytes,2,opt,name=content,oneof"`
+	Content string `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
 }
 type Document_GcsContentUri struct {
-	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,oneof"`
+	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,proto3,oneof"`
 }
 
 func (*Document_Content) isDocument_Source()       {}
@@ -1250,11 +1250,11 @@ func _Document_OneofSizer(msg proto.Message) (n int) {
 // Represents a sentence in the input document.
 type Sentence struct {
 	// The sentence text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// For calls to [AnalyzeSentiment][] or if
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_document_sentiment] is set to
 	// true, this field will contain the sentiment for the sentence.
-	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1303,29 +1303,29 @@ func (m *Sentence) GetSentiment() *Sentiment {
 // as salience and mentions, with entities.
 type Entity struct {
 	// The representative name for the entity.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The entity type.
-	Type Entity_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1.Entity_Type" json:"type,omitempty"`
+	Type Entity_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1.Entity_Type" json:"type,omitempty"`
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Salience float32 `protobuf:"fixed32,4,opt,name=salience" json:"salience,omitempty"`
+	Salience float32 `protobuf:"fixed32,4,opt,name=salience,proto3" json:"salience,omitempty"`
 	// The mentions of this entity in the input document. The API currently
 	// supports proper noun mentions.
-	Mentions []*EntityMention `protobuf:"bytes,5,rep,name=mentions" json:"mentions,omitempty"`
+	Mentions []*EntityMention `protobuf:"bytes,5,rep,name=mentions,proto3" json:"mentions,omitempty"`
 	// For calls to [AnalyzeEntitySentiment][] or if
 	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_entity_sentiment] is set to
 	// true, this field will contain the aggregate sentiment expressed for this
 	// entity in the provided document.
-	Sentiment            *Sentiment `protobuf:"bytes,6,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,6,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1400,13 +1400,13 @@ func (m *Entity) GetSentiment() *Sentiment {
 // Represents the smallest syntactic building block of the text.
 type Token struct {
 	// The token text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Parts of speech tag for this token.
-	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech" json:"part_of_speech,omitempty"`
+	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech,proto3" json:"part_of_speech,omitempty"`
 	// Dependency tree parse for this token.
-	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge" json:"dependency_edge,omitempty"`
+	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge,proto3" json:"dependency_edge,omitempty"`
 	// [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
-	Lemma                string   `protobuf:"bytes,4,opt,name=lemma" json:"lemma,omitempty"`
+	Lemma                string   `protobuf:"bytes,4,opt,name=lemma,proto3" json:"lemma,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1470,10 +1470,10 @@ type Sentiment struct {
 	// A non-negative number in the [0, +inf) range, which represents
 	// the absolute magnitude of sentiment regardless of score (positive or
 	// negative).
-	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude" json:"magnitude,omitempty"`
+	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude,proto3" json:"magnitude,omitempty"`
 	// Sentiment score between -1.0 (negative sentiment) and 1.0
 	// (positive sentiment).
-	Score                float32  `protobuf:"fixed32,3,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1522,29 +1522,29 @@ func (m *Sentiment) GetScore() float32 {
 // http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
 type PartOfSpeech struct {
 	// The part of speech tag.
-	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,enum=google.cloud.language.v1.PartOfSpeech_Tag" json:"tag,omitempty"`
+	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,proto3,enum=google.cloud.language.v1.PartOfSpeech_Tag" json:"tag,omitempty"`
 	// The grammatical aspect.
-	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,enum=google.cloud.language.v1.PartOfSpeech_Aspect" json:"aspect,omitempty"`
+	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,proto3,enum=google.cloud.language.v1.PartOfSpeech_Aspect" json:"aspect,omitempty"`
 	// The grammatical case.
-	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,enum=google.cloud.language.v1.PartOfSpeech_Case" json:"case,omitempty"`
+	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,proto3,enum=google.cloud.language.v1.PartOfSpeech_Case" json:"case,omitempty"`
 	// The grammatical form.
-	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,enum=google.cloud.language.v1.PartOfSpeech_Form" json:"form,omitempty"`
+	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,proto3,enum=google.cloud.language.v1.PartOfSpeech_Form" json:"form,omitempty"`
 	// The grammatical gender.
-	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,enum=google.cloud.language.v1.PartOfSpeech_Gender" json:"gender,omitempty"`
+	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=google.cloud.language.v1.PartOfSpeech_Gender" json:"gender,omitempty"`
 	// The grammatical mood.
-	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,enum=google.cloud.language.v1.PartOfSpeech_Mood" json:"mood,omitempty"`
+	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,proto3,enum=google.cloud.language.v1.PartOfSpeech_Mood" json:"mood,omitempty"`
 	// The grammatical number.
-	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,enum=google.cloud.language.v1.PartOfSpeech_Number" json:"number,omitempty"`
+	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,proto3,enum=google.cloud.language.v1.PartOfSpeech_Number" json:"number,omitempty"`
 	// The grammatical person.
-	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,enum=google.cloud.language.v1.PartOfSpeech_Person" json:"person,omitempty"`
+	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,proto3,enum=google.cloud.language.v1.PartOfSpeech_Person" json:"person,omitempty"`
 	// The grammatical properness.
-	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,enum=google.cloud.language.v1.PartOfSpeech_Proper" json:"proper,omitempty"`
+	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,proto3,enum=google.cloud.language.v1.PartOfSpeech_Proper" json:"proper,omitempty"`
 	// The grammatical reciprocity.
-	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,enum=google.cloud.language.v1.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
+	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,proto3,enum=google.cloud.language.v1.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
 	// The grammatical tense.
-	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,enum=google.cloud.language.v1.PartOfSpeech_Tense" json:"tense,omitempty"`
+	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,proto3,enum=google.cloud.language.v1.PartOfSpeech_Tense" json:"tense,omitempty"`
 	// The grammatical voice.
-	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,enum=google.cloud.language.v1.PartOfSpeech_Voice" json:"voice,omitempty"`
+	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,proto3,enum=google.cloud.language.v1.PartOfSpeech_Voice" json:"voice,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1667,9 +1667,9 @@ type DependencyEdge struct {
 	// 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.
-	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex" json:"head_token_index,omitempty"`
+	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex,proto3" json:"head_token_index,omitempty"`
 	// The parse label for the token.
-	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,enum=google.cloud.language.v1.DependencyEdge_Label" json:"label,omitempty"`
+	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,proto3,enum=google.cloud.language.v1.DependencyEdge_Label" json:"label,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1717,14 +1717,14 @@ func (m *DependencyEdge) GetLabel() DependencyEdge_Label {
 // mentions are supported.
 type EntityMention struct {
 	// The mention text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// The type of the entity mention.
-	Type EntityMention_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1.EntityMention_Type" json:"type,omitempty"`
+	Type EntityMention_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1.EntityMention_Type" json:"type,omitempty"`
 	// For calls to [AnalyzeEntitySentiment][] or if
 	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1.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.
-	Sentiment            *Sentiment `protobuf:"bytes,3,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,3,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1778,10 +1778,10 @@ func (m *EntityMention) GetSentiment() *Sentiment {
 // Represents an output piece of text.
 type TextSpan struct {
 	// The content of the output text.
-	Content string `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
+	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
 	// The API calculates the beginning offset of the content in the original
 	// document according to the [EncodingType][google.cloud.language.v1.EncodingType] specified in the API request.
-	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset" json:"begin_offset,omitempty"`
+	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset,proto3" json:"begin_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1828,10 +1828,10 @@ func (m *TextSpan) GetBeginOffset() int32 {
 // Represents a category returned from the text classifier.
 type ClassificationCategory struct {
 	// The name of the category representing the document.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The classifier's confidence of the category. Number represents how certain
 	// the classifier is that this category represents the given text.
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1878,9 +1878,9 @@ func (m *ClassificationCategory) GetConfidence() float32 {
 // The sentiment analysis request message.
 type AnalyzeSentimentRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate sentence offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1927,13 +1927,13 @@ func (m *AnalyzeSentimentRequest) GetEncodingType() EncodingType {
 // The sentiment analysis response message.
 type AnalyzeSentimentResponse struct {
 	// The overall sentiment of the input document.
-	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1.Document.language] field for more details.
-	Language string `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	// The sentiment for all the sentences in the document.
-	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1987,9 +1987,9 @@ func (m *AnalyzeSentimentResponse) GetSentences() []*Sentence {
 // The entity-level sentiment analysis request message.
 type AnalyzeEntitySentimentRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2036,11 +2036,11 @@ func (m *AnalyzeEntitySentimentRequest) GetEncodingType() EncodingType {
 // The entity-level sentiment analysis response message.
 type AnalyzeEntitySentimentResponse struct {
 	// The recognized entities in the input document with associated sentiments.
-	Entities []*Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
 	// 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][google.cloud.language.v1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2087,9 +2087,9 @@ func (m *AnalyzeEntitySentimentResponse) GetLanguage() string {
 // The entity analysis request message.
 type AnalyzeEntitiesRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2136,11 +2136,11 @@ func (m *AnalyzeEntitiesRequest) GetEncodingType() EncodingType {
 // The entity analysis response message.
 type AnalyzeEntitiesResponse struct {
 	// The recognized entities in the input document.
-	Entities []*Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
 	// 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][google.cloud.language.v1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2187,9 +2187,9 @@ func (m *AnalyzeEntitiesResponse) GetLanguage() string {
 // The syntax analysis request message.
 type AnalyzeSyntaxRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2236,13 +2236,13 @@ func (m *AnalyzeSyntaxRequest) GetEncodingType() EncodingType {
 // The syntax analysis response message.
 type AnalyzeSyntaxResponse struct {
 	// Sentences in the input document.
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// 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][google.cloud.language.v1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,3,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2296,7 +2296,7 @@ func (m *AnalyzeSyntaxResponse) GetLanguage() string {
 // The document classification request message.
 type ClassifyTextRequest struct {
 	// Input document.
-	Document             *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document             *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2336,7 +2336,7 @@ func (m *ClassifyTextRequest) GetDocument() *Document {
 // The document classification response message.
 type ClassifyTextResponse struct {
 	// Categories representing the input document.
-	Categories           []*ClassificationCategory `protobuf:"bytes,1,rep,name=categories" json:"categories,omitempty"`
+	Categories           []*ClassificationCategory `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -2377,11 +2377,11 @@ func (m *ClassifyTextResponse) GetCategories() []*ClassificationCategory {
 // analysis types (sentiment, entities, and syntax) in one call.
 type AnnotateTextRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The enabled features.
-	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"`
+	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2436,15 +2436,15 @@ func (m *AnnotateTextRequest) GetEncodingType() EncodingType {
 // Setting each one to true will enable that specific analysis for the input.
 type AnnotateTextRequest_Features struct {
 	// Extract syntax information.
-	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax" json:"extract_syntax,omitempty"`
+	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax,proto3" json:"extract_syntax,omitempty"`
 	// Extract entities.
-	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities" json:"extract_entities,omitempty"`
+	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities,proto3" json:"extract_entities,omitempty"`
 	// Extract document-level sentiment.
-	ExtractDocumentSentiment bool `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment" json:"extract_document_sentiment,omitempty"`
+	ExtractDocumentSentiment bool `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment,proto3" json:"extract_document_sentiment,omitempty"`
 	// Extract entities and their associated sentiment.
-	ExtractEntitySentiment bool `protobuf:"varint,4,opt,name=extract_entity_sentiment,json=extractEntitySentiment" json:"extract_entity_sentiment,omitempty"`
+	ExtractEntitySentiment bool `protobuf:"varint,4,opt,name=extract_entity_sentiment,json=extractEntitySentiment,proto3" json:"extract_entity_sentiment,omitempty"`
 	// Classify the full document into categories.
-	ClassifyText         bool     `protobuf:"varint,6,opt,name=classify_text,json=classifyText" json:"classify_text,omitempty"`
+	ClassifyText         bool     `protobuf:"varint,6,opt,name=classify_text,json=classifyText,proto3" json:"classify_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2513,24 +2513,24 @@ func (m *AnnotateTextRequest_Features) GetClassifyText() bool {
 type AnnotateTextResponse struct {
 	// Sentences in the input document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1.AnnotateTextRequest.Features.extract_syntax].
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1.AnnotateTextRequest.Features.extract_syntax].
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// Entities, along with their semantic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_entities][google.cloud.language.v1.AnnotateTextRequest.Features.extract_entities].
-	Entities []*Entity `protobuf:"bytes,3,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
 	// The overall sentiment for the document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_document_sentiment].
-	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1.Document.language] field for more details.
-	Language string `protobuf:"bytes,5,opt,name=language" json:"language,omitempty"`
+	Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"`
 	// Categories identified in the input document.
-	Categories           []*ClassificationCategory `protobuf:"bytes,6,rep,name=categories" json:"categories,omitempty"`
+	Categories           []*ClassificationCategory `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -2740,8 +2740,7 @@ func (c *languageServiceClient) AnnotateText(ctx context.Context, in *AnnotateTe
 	return out, nil
 }
 
-// Server API for LanguageService service
-
+// LanguageServiceServer is the server API for LanguageService service.
 type LanguageServiceServer interface {
 	// Analyzes the sentiment of the provided text.
 	AnalyzeSentiment(context.Context, *AnalyzeSentimentRequest) (*AnalyzeSentimentResponse, error)
diff --git a/googleapis/cloud/language/v1beta1/language_service.pb.go b/googleapis/cloud/language/v1beta1/language_service.pb.go
index cdeb9ab6a1a7ef2d370be704b275ad241502ed04..d639509eb8e7cc382607a3c03722ea3f3c69ad1a 100644
--- a/googleapis/cloud/language/v1beta1/language_service.pb.go
+++ b/googleapis/cloud/language/v1beta1/language_service.pb.go
@@ -1062,7 +1062,7 @@ func (EntityMention_Type) EnumDescriptor() ([]byte, []int) {
 type Document struct {
 	// Required. If the type is not set or is `TYPE_UNSPECIFIED`,
 	// returns an `INVALID_ARGUMENT` error.
-	Type Document_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.language.v1beta1.Document_Type" json:"type,omitempty"`
+	Type Document_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.language.v1beta1.Document_Type" json:"type,omitempty"`
 	// The source of the document: a string containing the content or a
 	// Google Cloud Storage URI.
 	//
@@ -1078,7 +1078,7 @@ type Document struct {
 	// 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.
-	Language             string   `protobuf:"bytes,4,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1113,10 +1113,10 @@ type isDocument_Source interface {
 }
 
 type Document_Content struct {
-	Content string `protobuf:"bytes,2,opt,name=content,oneof"`
+	Content string `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
 }
 type Document_GcsContentUri struct {
-	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,oneof"`
+	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,proto3,oneof"`
 }
 
 func (*Document_Content) isDocument_Source()       {}
@@ -1226,11 +1226,11 @@ func _Document_OneofSizer(msg proto.Message) (n int) {
 // Represents a sentence in the input document.
 type Sentence struct {
 	// The sentence text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// For calls to [AnalyzeSentiment][] or if
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1beta1.AnnotateTextRequest.Features.extract_document_sentiment] is set to
 	// true, this field will contain the sentiment for the sentence.
-	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1279,24 +1279,24 @@ func (m *Sentence) GetSentiment() *Sentiment {
 // as salience and mentions, with entities.
 type Entity struct {
 	// The representative name for the entity.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The entity type.
-	Type Entity_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1beta1.Entity_Type" json:"type,omitempty"`
+	Type Entity_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1beta1.Entity_Type" json:"type,omitempty"`
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Salience float32 `protobuf:"fixed32,4,opt,name=salience" json:"salience,omitempty"`
+	Salience float32 `protobuf:"fixed32,4,opt,name=salience,proto3" json:"salience,omitempty"`
 	// The mentions of this entity in the input document. The API currently
 	// supports proper noun mentions.
-	Mentions             []*EntityMention `protobuf:"bytes,5,rep,name=mentions" json:"mentions,omitempty"`
+	Mentions             []*EntityMention `protobuf:"bytes,5,rep,name=mentions,proto3" json:"mentions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -1364,13 +1364,13 @@ func (m *Entity) GetMentions() []*EntityMention {
 // Represents the smallest syntactic building block of the text.
 type Token struct {
 	// The token text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Parts of speech tag for this token.
-	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech" json:"part_of_speech,omitempty"`
+	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech,proto3" json:"part_of_speech,omitempty"`
 	// Dependency tree parse for this token.
-	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge" json:"dependency_edge,omitempty"`
+	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge,proto3" json:"dependency_edge,omitempty"`
 	// [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
-	Lemma                string   `protobuf:"bytes,4,opt,name=lemma" json:"lemma,omitempty"`
+	Lemma                string   `protobuf:"bytes,4,opt,name=lemma,proto3" json:"lemma,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1434,14 +1434,14 @@ type Sentiment struct {
 	// 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.
-	Polarity float32 `protobuf:"fixed32,1,opt,name=polarity" json:"polarity,omitempty"`
+	Polarity float32 `protobuf:"fixed32,1,opt,name=polarity,proto3" json:"polarity,omitempty"`
 	// A non-negative number in the [0, +inf) range, which represents
 	// the absolute magnitude of sentiment regardless of score (positive or
 	// negative).
-	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude" json:"magnitude,omitempty"`
+	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude,proto3" json:"magnitude,omitempty"`
 	// Sentiment score between -1.0 (negative sentiment) and 1.0
 	// (positive sentiment).
-	Score                float32  `protobuf:"fixed32,3,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1495,29 +1495,29 @@ func (m *Sentiment) GetScore() float32 {
 // Represents part of speech information for a token.
 type PartOfSpeech struct {
 	// The part of speech tag.
-	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,enum=google.cloud.language.v1beta1.PartOfSpeech_Tag" json:"tag,omitempty"`
+	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Tag" json:"tag,omitempty"`
 	// The grammatical aspect.
-	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,enum=google.cloud.language.v1beta1.PartOfSpeech_Aspect" json:"aspect,omitempty"`
+	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Aspect" json:"aspect,omitempty"`
 	// The grammatical case.
-	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,enum=google.cloud.language.v1beta1.PartOfSpeech_Case" json:"case,omitempty"`
+	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Case" json:"case,omitempty"`
 	// The grammatical form.
-	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,enum=google.cloud.language.v1beta1.PartOfSpeech_Form" json:"form,omitempty"`
+	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Form" json:"form,omitempty"`
 	// The grammatical gender.
-	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,enum=google.cloud.language.v1beta1.PartOfSpeech_Gender" json:"gender,omitempty"`
+	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Gender" json:"gender,omitempty"`
 	// The grammatical mood.
-	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,enum=google.cloud.language.v1beta1.PartOfSpeech_Mood" json:"mood,omitempty"`
+	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Mood" json:"mood,omitempty"`
 	// The grammatical number.
-	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,enum=google.cloud.language.v1beta1.PartOfSpeech_Number" json:"number,omitempty"`
+	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Number" json:"number,omitempty"`
 	// The grammatical person.
-	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,enum=google.cloud.language.v1beta1.PartOfSpeech_Person" json:"person,omitempty"`
+	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Person" json:"person,omitempty"`
 	// The grammatical properness.
-	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,enum=google.cloud.language.v1beta1.PartOfSpeech_Proper" json:"proper,omitempty"`
+	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Proper" json:"proper,omitempty"`
 	// The grammatical reciprocity.
-	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,enum=google.cloud.language.v1beta1.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
+	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
 	// The grammatical tense.
-	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,enum=google.cloud.language.v1beta1.PartOfSpeech_Tense" json:"tense,omitempty"`
+	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Tense" json:"tense,omitempty"`
 	// The grammatical voice.
-	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,enum=google.cloud.language.v1beta1.PartOfSpeech_Voice" json:"voice,omitempty"`
+	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,proto3,enum=google.cloud.language.v1beta1.PartOfSpeech_Voice" json:"voice,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1638,9 +1638,9 @@ type DependencyEdge struct {
 	// 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.
-	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex" json:"head_token_index,omitempty"`
+	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex,proto3" json:"head_token_index,omitempty"`
 	// The parse label for the token.
-	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,enum=google.cloud.language.v1beta1.DependencyEdge_Label" json:"label,omitempty"`
+	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,proto3,enum=google.cloud.language.v1beta1.DependencyEdge_Label" json:"label,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1688,9 +1688,9 @@ func (m *DependencyEdge) GetLabel() DependencyEdge_Label {
 // mentions are supported.
 type EntityMention struct {
 	// The mention text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// The type of the entity mention.
-	Type                 EntityMention_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1beta1.EntityMention_Type" json:"type,omitempty"`
+	Type                 EntityMention_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1beta1.EntityMention_Type" json:"type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1737,10 +1737,10 @@ func (m *EntityMention) GetType() EntityMention_Type {
 // Represents an output piece of text.
 type TextSpan struct {
 	// The content of the output text.
-	Content string `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
+	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
 	// The API calculates the beginning offset of the content in the original
 	// document according to the [EncodingType][google.cloud.language.v1beta1.EncodingType] specified in the API request.
-	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset" json:"begin_offset,omitempty"`
+	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset,proto3" json:"begin_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1787,10 +1787,10 @@ func (m *TextSpan) GetBeginOffset() int32 {
 // The sentiment analysis request message.
 type AnalyzeSentimentRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate sentence offsets for the
 	// sentence sentiment.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1837,13 +1837,13 @@ func (m *AnalyzeSentimentRequest) GetEncodingType() EncodingType {
 // The sentiment analysis response message.
 type AnalyzeSentimentResponse struct {
 	// The overall sentiment of the input document.
-	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1beta1.Document.language] field for more details.
-	Language string `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	// The sentiment for all the sentences in the document.
-	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1897,9 +1897,9 @@ func (m *AnalyzeSentimentResponse) GetSentences() []*Sentence {
 // The entity analysis request message.
 type AnalyzeEntitiesRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1946,11 +1946,11 @@ func (m *AnalyzeEntitiesRequest) GetEncodingType() EncodingType {
 // The entity analysis response message.
 type AnalyzeEntitiesResponse struct {
 	// The recognized entities in the input document.
-	Entities []*Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
 	// 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][google.cloud.language.v1beta1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1997,9 +1997,9 @@ func (m *AnalyzeEntitiesResponse) GetLanguage() string {
 // The syntax analysis request message.
 type AnalyzeSyntaxRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2046,13 +2046,13 @@ func (m *AnalyzeSyntaxRequest) GetEncodingType() EncodingType {
 // The syntax analysis response message.
 type AnalyzeSyntaxResponse struct {
 	// Sentences in the input document.
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// 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][google.cloud.language.v1beta1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,3,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2107,11 +2107,11 @@ func (m *AnalyzeSyntaxResponse) GetLanguage() string {
 // analysis types (sentiment, entities, and syntax) in one call.
 type AnnotateTextRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The enabled features.
-	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"`
+	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta1.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2166,11 +2166,11 @@ func (m *AnnotateTextRequest) GetEncodingType() EncodingType {
 // Setting each one to true will enable that specific analysis for the input.
 type AnnotateTextRequest_Features struct {
 	// Extract syntax information.
-	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax" json:"extract_syntax,omitempty"`
+	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax,proto3" json:"extract_syntax,omitempty"`
 	// Extract entities.
-	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities" json:"extract_entities,omitempty"`
+	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities,proto3" json:"extract_entities,omitempty"`
 	// Extract document-level sentiment.
-	ExtractDocumentSentiment bool     `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment" json:"extract_document_sentiment,omitempty"`
+	ExtractDocumentSentiment bool     `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment,proto3" json:"extract_document_sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -2225,22 +2225,22 @@ func (m *AnnotateTextRequest_Features) GetExtractDocumentSentiment() bool {
 type AnnotateTextResponse struct {
 	// Sentences in the input document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1beta1.AnnotateTextRequest.Features.extract_syntax].
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1beta1.AnnotateTextRequest.Features.extract_syntax].
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// Entities, along with their semantic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_entities][google.cloud.language.v1beta1.AnnotateTextRequest.Features.extract_entities].
-	Entities []*Entity `protobuf:"bytes,3,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
 	// The overall sentiment for the document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1beta1.AnnotateTextRequest.Features.extract_document_sentiment].
-	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1beta1.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,5,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2415,8 +2415,7 @@ func (c *languageServiceClient) AnnotateText(ctx context.Context, in *AnnotateTe
 	return out, nil
 }
 
-// Server API for LanguageService service
-
+// LanguageServiceServer is the server API for LanguageService service.
 type LanguageServiceServer interface {
 	// Analyzes the sentiment of the provided text.
 	AnalyzeSentiment(context.Context, *AnalyzeSentimentRequest) (*AnalyzeSentimentResponse, error)
diff --git a/googleapis/cloud/language/v1beta2/language_service.pb.go b/googleapis/cloud/language/v1beta2/language_service.pb.go
index 934bde3ec669117378c043252786bd8ff847237b..a1d685cbefbb84871a29fc688ff22bef8e75ea95 100644
--- a/googleapis/cloud/language/v1beta2/language_service.pb.go
+++ b/googleapis/cloud/language/v1beta2/language_service.pb.go
@@ -1089,7 +1089,7 @@ func (EntityMention_Type) EnumDescriptor() ([]byte, []int) {
 type Document struct {
 	// Required. If the type is not set or is `TYPE_UNSPECIFIED`,
 	// returns an `INVALID_ARGUMENT` error.
-	Type Document_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.language.v1beta2.Document_Type" json:"type,omitempty"`
+	Type Document_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.language.v1beta2.Document_Type" json:"type,omitempty"`
 	// The source of the document: a string containing the content or a
 	// Google Cloud Storage URI.
 	//
@@ -1105,7 +1105,7 @@ type Document struct {
 	// 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.
-	Language             string   `protobuf:"bytes,4,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1140,10 +1140,10 @@ type isDocument_Source interface {
 }
 
 type Document_Content struct {
-	Content string `protobuf:"bytes,2,opt,name=content,oneof"`
+	Content string `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
 }
 type Document_GcsContentUri struct {
-	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,oneof"`
+	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,proto3,oneof"`
 }
 
 func (*Document_Content) isDocument_Source()       {}
@@ -1253,11 +1253,11 @@ func _Document_OneofSizer(msg proto.Message) (n int) {
 // Represents a sentence in the input document.
 type Sentence struct {
 	// The sentence text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// For calls to [AnalyzeSentiment][] or if
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_document_sentiment] is set to
 	// true, this field will contain the sentiment for the sentence.
-	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,2,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1306,29 +1306,29 @@ func (m *Sentence) GetSentiment() *Sentiment {
 // as salience and mentions, with entities.
 type Entity struct {
 	// The representative name for the entity.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The entity type.
-	Type Entity_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1beta2.Entity_Type" json:"type,omitempty"`
+	Type Entity_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1beta2.Entity_Type" json:"type,omitempty"`
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	Salience float32 `protobuf:"fixed32,4,opt,name=salience" json:"salience,omitempty"`
+	Salience float32 `protobuf:"fixed32,4,opt,name=salience,proto3" json:"salience,omitempty"`
 	// The mentions of this entity in the input document. The API currently
 	// supports proper noun mentions.
-	Mentions []*EntityMention `protobuf:"bytes,5,rep,name=mentions" json:"mentions,omitempty"`
+	Mentions []*EntityMention `protobuf:"bytes,5,rep,name=mentions,proto3" json:"mentions,omitempty"`
 	// For calls to [AnalyzeEntitySentiment][] or if
 	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_entity_sentiment] is set to
 	// true, this field will contain the aggregate sentiment expressed for this
 	// entity in the provided document.
-	Sentiment            *Sentiment `protobuf:"bytes,6,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,6,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1403,13 +1403,13 @@ func (m *Entity) GetSentiment() *Sentiment {
 // Represents the smallest syntactic building block of the text.
 type Token struct {
 	// The token text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Parts of speech tag for this token.
-	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech" json:"part_of_speech,omitempty"`
+	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech,proto3" json:"part_of_speech,omitempty"`
 	// Dependency tree parse for this token.
-	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge" json:"dependency_edge,omitempty"`
+	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge,proto3" json:"dependency_edge,omitempty"`
 	// [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
-	Lemma                string   `protobuf:"bytes,4,opt,name=lemma" json:"lemma,omitempty"`
+	Lemma                string   `protobuf:"bytes,4,opt,name=lemma,proto3" json:"lemma,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1473,10 +1473,10 @@ type Sentiment struct {
 	// A non-negative number in the [0, +inf) range, which represents
 	// the absolute magnitude of sentiment regardless of score (positive or
 	// negative).
-	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude" json:"magnitude,omitempty"`
+	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude,proto3" json:"magnitude,omitempty"`
 	// Sentiment score between -1.0 (negative sentiment) and 1.0
 	// (positive sentiment).
-	Score                float32  `protobuf:"fixed32,3,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1523,29 +1523,29 @@ func (m *Sentiment) GetScore() float32 {
 // Represents part of speech information for a token.
 type PartOfSpeech struct {
 	// The part of speech tag.
-	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,enum=google.cloud.language.v1beta2.PartOfSpeech_Tag" json:"tag,omitempty"`
+	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Tag" json:"tag,omitempty"`
 	// The grammatical aspect.
-	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,enum=google.cloud.language.v1beta2.PartOfSpeech_Aspect" json:"aspect,omitempty"`
+	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Aspect" json:"aspect,omitempty"`
 	// The grammatical case.
-	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,enum=google.cloud.language.v1beta2.PartOfSpeech_Case" json:"case,omitempty"`
+	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Case" json:"case,omitempty"`
 	// The grammatical form.
-	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,enum=google.cloud.language.v1beta2.PartOfSpeech_Form" json:"form,omitempty"`
+	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Form" json:"form,omitempty"`
 	// The grammatical gender.
-	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,enum=google.cloud.language.v1beta2.PartOfSpeech_Gender" json:"gender,omitempty"`
+	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Gender" json:"gender,omitempty"`
 	// The grammatical mood.
-	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,enum=google.cloud.language.v1beta2.PartOfSpeech_Mood" json:"mood,omitempty"`
+	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Mood" json:"mood,omitempty"`
 	// The grammatical number.
-	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,enum=google.cloud.language.v1beta2.PartOfSpeech_Number" json:"number,omitempty"`
+	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Number" json:"number,omitempty"`
 	// The grammatical person.
-	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,enum=google.cloud.language.v1beta2.PartOfSpeech_Person" json:"person,omitempty"`
+	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Person" json:"person,omitempty"`
 	// The grammatical properness.
-	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,enum=google.cloud.language.v1beta2.PartOfSpeech_Proper" json:"proper,omitempty"`
+	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Proper" json:"proper,omitempty"`
 	// The grammatical reciprocity.
-	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,enum=google.cloud.language.v1beta2.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
+	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
 	// The grammatical tense.
-	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,enum=google.cloud.language.v1beta2.PartOfSpeech_Tense" json:"tense,omitempty"`
+	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Tense" json:"tense,omitempty"`
 	// The grammatical voice.
-	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,enum=google.cloud.language.v1beta2.PartOfSpeech_Voice" json:"voice,omitempty"`
+	Voice                PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,proto3,enum=google.cloud.language.v1beta2.PartOfSpeech_Voice" json:"voice,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1666,9 +1666,9 @@ type DependencyEdge struct {
 	// 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.
-	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex" json:"head_token_index,omitempty"`
+	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex,proto3" json:"head_token_index,omitempty"`
 	// The parse label for the token.
-	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,enum=google.cloud.language.v1beta2.DependencyEdge_Label" json:"label,omitempty"`
+	Label                DependencyEdge_Label `protobuf:"varint,2,opt,name=label,proto3,enum=google.cloud.language.v1beta2.DependencyEdge_Label" json:"label,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1716,14 +1716,14 @@ func (m *DependencyEdge) GetLabel() DependencyEdge_Label {
 // mentions are supported.
 type EntityMention struct {
 	// The mention text.
-	Text *TextSpan `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// The type of the entity mention.
-	Type EntityMention_Type `protobuf:"varint,2,opt,name=type,enum=google.cloud.language.v1beta2.EntityMention_Type" json:"type,omitempty"`
+	Type EntityMention_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1beta2.EntityMention_Type" json:"type,omitempty"`
 	// For calls to [AnalyzeEntitySentiment][] or if
 	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1beta2.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.
-	Sentiment            *Sentiment `protobuf:"bytes,3,opt,name=sentiment" json:"sentiment,omitempty"`
+	Sentiment            *Sentiment `protobuf:"bytes,3,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1777,10 +1777,10 @@ func (m *EntityMention) GetSentiment() *Sentiment {
 // Represents an output piece of text.
 type TextSpan struct {
 	// The content of the output text.
-	Content string `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
+	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
 	// The API calculates the beginning offset of the content in the original
 	// document according to the [EncodingType][google.cloud.language.v1beta2.EncodingType] specified in the API request.
-	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset" json:"begin_offset,omitempty"`
+	BeginOffset          int32    `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset,proto3" json:"begin_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1827,10 +1827,10 @@ func (m *TextSpan) GetBeginOffset() int32 {
 // Represents a category returned from the text classifier.
 type ClassificationCategory struct {
 	// The name of the category representing the document.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The classifier's confidence of the category. Number represents how certain
 	// the classifier is that this category represents the given text.
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1877,10 +1877,10 @@ func (m *ClassificationCategory) GetConfidence() float32 {
 // The sentiment analysis request message.
 type AnalyzeSentimentRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate sentence offsets for the
 	// sentence sentiment.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1927,13 +1927,13 @@ func (m *AnalyzeSentimentRequest) GetEncodingType() EncodingType {
 // The sentiment analysis response message.
 type AnalyzeSentimentResponse struct {
 	// The overall sentiment of the input document.
-	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1beta2.Document.language] field for more details.
-	Language string `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	// The sentiment for all the sentences in the document.
-	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences            []*Sentence `protobuf:"bytes,3,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1987,9 +1987,9 @@ func (m *AnalyzeSentimentResponse) GetSentences() []*Sentence {
 // The entity-level sentiment analysis request message.
 type AnalyzeEntitySentimentRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2036,11 +2036,11 @@ func (m *AnalyzeEntitySentimentRequest) GetEncodingType() EncodingType {
 // The entity-level sentiment analysis response message.
 type AnalyzeEntitySentimentResponse struct {
 	// The recognized entities in the input document with associated sentiments.
-	Entities []*Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
 	// 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][google.cloud.language.v1beta2.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2087,9 +2087,9 @@ func (m *AnalyzeEntitySentimentResponse) GetLanguage() string {
 // The entity analysis request message.
 type AnalyzeEntitiesRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2136,11 +2136,11 @@ func (m *AnalyzeEntitiesRequest) GetEncodingType() EncodingType {
 // The entity analysis response message.
 type AnalyzeEntitiesResponse struct {
 	// The recognized entities in the input document.
-	Entities []*Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
 	// 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][google.cloud.language.v1beta2.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2187,9 +2187,9 @@ func (m *AnalyzeEntitiesResponse) GetLanguage() string {
 // The syntax analysis request message.
 type AnalyzeSyntaxRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2236,13 +2236,13 @@ func (m *AnalyzeSyntaxRequest) GetEncodingType() EncodingType {
 // The syntax analysis response message.
 type AnalyzeSyntaxResponse struct {
 	// Sentences in the input document.
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// 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][google.cloud.language.v1beta2.Document.language] field for more details.
-	Language             string   `protobuf:"bytes,3,opt,name=language" json:"language,omitempty"`
+	Language             string   `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2296,7 +2296,7 @@ func (m *AnalyzeSyntaxResponse) GetLanguage() string {
 // The document classification request message.
 type ClassifyTextRequest struct {
 	// Input document.
-	Document             *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document             *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2336,7 +2336,7 @@ func (m *ClassifyTextRequest) GetDocument() *Document {
 // The document classification response message.
 type ClassifyTextResponse struct {
 	// Categories representing the input document.
-	Categories           []*ClassificationCategory `protobuf:"bytes,1,rep,name=categories" json:"categories,omitempty"`
+	Categories           []*ClassificationCategory `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -2377,11 +2377,11 @@ func (m *ClassifyTextResponse) GetCategories() []*ClassificationCategory {
 // analysis types (sentiment, entities, and syntax) in one call.
 type AnnotateTextRequest struct {
 	// Input document.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The enabled features.
-	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"`
+	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"`
 	// The encoding type used by the API to calculate offsets.
-	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
+	EncodingType         EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1beta2.EncodingType" json:"encoding_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -2436,15 +2436,15 @@ func (m *AnnotateTextRequest) GetEncodingType() EncodingType {
 // Setting each one to true will enable that specific analysis for the input.
 type AnnotateTextRequest_Features struct {
 	// Extract syntax information.
-	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax" json:"extract_syntax,omitempty"`
+	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax,proto3" json:"extract_syntax,omitempty"`
 	// Extract entities.
-	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities" json:"extract_entities,omitempty"`
+	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities,proto3" json:"extract_entities,omitempty"`
 	// Extract document-level sentiment.
-	ExtractDocumentSentiment bool `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment" json:"extract_document_sentiment,omitempty"`
+	ExtractDocumentSentiment bool `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment,proto3" json:"extract_document_sentiment,omitempty"`
 	// Extract entities and their associated sentiment.
-	ExtractEntitySentiment bool `protobuf:"varint,4,opt,name=extract_entity_sentiment,json=extractEntitySentiment" json:"extract_entity_sentiment,omitempty"`
+	ExtractEntitySentiment bool `protobuf:"varint,4,opt,name=extract_entity_sentiment,json=extractEntitySentiment,proto3" json:"extract_entity_sentiment,omitempty"`
 	// Classify the full document into categories.
-	ClassifyText         bool     `protobuf:"varint,6,opt,name=classify_text,json=classifyText" json:"classify_text,omitempty"`
+	ClassifyText         bool     `protobuf:"varint,6,opt,name=classify_text,json=classifyText,proto3" json:"classify_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2513,24 +2513,24 @@ func (m *AnnotateTextRequest_Features) GetClassifyText() bool {
 type AnnotateTextResponse struct {
 	// Sentences in the input document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_syntax].
-	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences" json:"sentences,omitempty"`
+	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
 	// Tokens, along with their syntactic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_syntax].
-	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens" json:"tokens,omitempty"`
+	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
 	// Entities, along with their semantic information, in the input document.
 	// Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_entities][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_entities].
-	Entities []*Entity `protobuf:"bytes,3,rep,name=entities" json:"entities,omitempty"`
+	Entities []*Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
 	// The overall sentiment for the document. Populated if the user enables
 	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1beta2.AnnotateTextRequest.Features.extract_document_sentiment].
-	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment" json:"document_sentiment,omitempty"`
+	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
 	// 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][google.cloud.language.v1beta2.Document.language] field for more details.
-	Language string `protobuf:"bytes,5,opt,name=language" json:"language,omitempty"`
+	Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"`
 	// Categories identified in the input document.
-	Categories           []*ClassificationCategory `protobuf:"bytes,6,rep,name=categories" json:"categories,omitempty"`
+	Categories           []*ClassificationCategory `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -2740,8 +2740,7 @@ func (c *languageServiceClient) AnnotateText(ctx context.Context, in *AnnotateTe
 	return out, nil
 }
 
-// Server API for LanguageService service
-
+// LanguageServiceServer is the server API for LanguageService service.
 type LanguageServiceServer interface {
 	// Analyzes the sentiment of the provided text.
 	AnalyzeSentiment(context.Context, *AnalyzeSentimentRequest) (*AnalyzeSentimentResponse, error)
diff --git a/googleapis/cloud/location/locations.pb.go b/googleapis/cloud/location/locations.pb.go
index ce0f66fd8465a4a35304cdf493f8550324260575..69702e083d70adad24f0bdf9bb8f905df6cc38dd 100644
--- a/googleapis/cloud/location/locations.pb.go
+++ b/googleapis/cloud/location/locations.pb.go
@@ -28,13 +28,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // The request message for [Locations.ListLocations][google.cloud.location.Locations.ListLocations].
 type ListLocationsRequest struct {
 	// The resource that owns the locations collection, if applicable.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The standard list filter.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The standard list page size.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The standard list page token.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -95,9 +95,9 @@ func (m *ListLocationsRequest) GetPageToken() string {
 // The response message for [Locations.ListLocations][google.cloud.location.Locations.ListLocations].
 type ListLocationsResponse struct {
 	// A list of locations that matches the specified filter in the request.
-	Locations []*Location `protobuf:"bytes,1,rep,name=locations" json:"locations,omitempty"`
+	Locations []*Location `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"`
 	// The standard List next-page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -144,7 +144,7 @@ func (m *ListLocationsResponse) GetNextPageToken() string {
 // The request message for [Locations.GetLocation][google.cloud.location.Locations.GetLocation].
 type GetLocationRequest struct {
 	// Resource name for the location.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -185,19 +185,19 @@ func (m *GetLocationRequest) GetName() string {
 type Location struct {
 	// Resource name for the location, which may vary between implementations.
 	// For example: `"projects/example-project/locations/us-east1"`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The canonical id for this location. For example: `"us-east1"`.
-	LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	// The friendly name for this location, typically a nearby city name.
 	// For example, "Tokyo".
-	DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Cross-service attributes for the location. For example
 	//
 	//     {"cloud.googleapis.com/region": "us-east1"}
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Service-specific metadata. For example the available capacity at the given
 	// location.
-	Metadata             *any.Any `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata             *any.Any `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -314,8 +314,7 @@ func (c *locationsClient) GetLocation(ctx context.Context, in *GetLocationReques
 	return out, nil
 }
 
-// Server API for Locations service
-
+// LocationsServer is the server API for Locations service.
 type LocationsServer interface {
 	// Lists information about the supported locations for this service.
 	ListLocations(context.Context, *ListLocationsRequest) (*ListLocationsResponse, error)
diff --git a/googleapis/cloud/ml/v1/job_service.pb.go b/googleapis/cloud/ml/v1/job_service.pb.go
index e9529de9453cf76e02642c9169a253e25cae4116..4f86bb8c7a16630fe753a4885c053d1c4c793b1a 100644
--- a/googleapis/cloud/ml/v1/job_service.pb.go
+++ b/googleapis/cloud/ml/v1/job_service.pb.go
@@ -300,7 +300,7 @@ func (Job_State) EnumDescriptor() ([]byte, []int) {
 type TrainingInput struct {
 	// Required. Specifies the machine types, the number of replicas for workers
 	// and parameter servers.
-	ScaleTier TrainingInput_ScaleTier `protobuf:"varint,1,opt,name=scale_tier,json=scaleTier,enum=google.cloud.ml.v1.TrainingInput_ScaleTier" json:"scale_tier,omitempty"`
+	ScaleTier TrainingInput_ScaleTier `protobuf:"varint,1,opt,name=scale_tier,json=scaleTier,proto3,enum=google.cloud.ml.v1.TrainingInput_ScaleTier" json:"scale_tier,omitempty"`
 	// Optional. Specifies the type of virtual machine to use for your training
 	// job's master worker.
 	//
@@ -350,7 +350,7 @@ type TrainingInput struct {
 	// </dl>
 	//
 	// You must set this value when `scaleTier` is set to `CUSTOM`.
-	MasterType string `protobuf:"bytes,2,opt,name=master_type,json=masterType" json:"master_type,omitempty"`
+	MasterType string `protobuf:"bytes,2,opt,name=master_type,json=masterType,proto3" json:"master_type,omitempty"`
 	// Optional. Specifies the type of virtual machine to use for your training
 	// job's worker nodes.
 	//
@@ -359,7 +359,7 @@ type TrainingInput struct {
 	//
 	// This value must be present when `scaleTier` is set to `CUSTOM` and
 	// `workerCount` is greater than zero.
-	WorkerType string `protobuf:"bytes,3,opt,name=worker_type,json=workerType" json:"worker_type,omitempty"`
+	WorkerType string `protobuf:"bytes,3,opt,name=worker_type,json=workerType,proto3" json:"worker_type,omitempty"`
 	// Optional. Specifies the type of virtual machine to use for your training
 	// job's parameter server.
 	//
@@ -368,39 +368,39 @@ type TrainingInput struct {
 	//
 	// This value must be present when `scaleTier` is set to `CUSTOM` and
 	// `parameter_server_count` is greater than zero.
-	ParameterServerType string `protobuf:"bytes,4,opt,name=parameter_server_type,json=parameterServerType" json:"parameter_server_type,omitempty"`
+	ParameterServerType string `protobuf:"bytes,4,opt,name=parameter_server_type,json=parameterServerType,proto3" json:"parameter_server_type,omitempty"`
 	// Optional. The number of worker replicas to use for the training job. Each
 	// replica in the cluster will be of the type specified in `worker_type`.
 	//
 	// This value can only be used when `scale_tier` is set to `CUSTOM`. If you
 	// set this value, you must also set `worker_type`.
-	WorkerCount int64 `protobuf:"varint,5,opt,name=worker_count,json=workerCount" json:"worker_count,omitempty"`
+	WorkerCount int64 `protobuf:"varint,5,opt,name=worker_count,json=workerCount,proto3" json:"worker_count,omitempty"`
 	// Optional. The number of parameter server replicas to use for the training
 	// job. Each replica in the cluster will be of the type specified in
 	// `parameter_server_type`.
 	//
 	// 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`.
-	ParameterServerCount int64 `protobuf:"varint,6,opt,name=parameter_server_count,json=parameterServerCount" json:"parameter_server_count,omitempty"`
+	ParameterServerCount int64 `protobuf:"varint,6,opt,name=parameter_server_count,json=parameterServerCount,proto3" json:"parameter_server_count,omitempty"`
 	// Required. The Google Cloud Storage location of the packages with
 	// the training program and any additional dependencies.
-	PackageUris []string `protobuf:"bytes,7,rep,name=package_uris,json=packageUris" json:"package_uris,omitempty"`
+	PackageUris []string `protobuf:"bytes,7,rep,name=package_uris,json=packageUris,proto3" json:"package_uris,omitempty"`
 	// Required. The Python module name to run after installing the packages.
-	PythonModule string `protobuf:"bytes,8,opt,name=python_module,json=pythonModule" json:"python_module,omitempty"`
+	PythonModule string `protobuf:"bytes,8,opt,name=python_module,json=pythonModule,proto3" json:"python_module,omitempty"`
 	// Optional. Command line arguments to pass to the program.
-	Args []string `protobuf:"bytes,10,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,10,rep,name=args,proto3" json:"args,omitempty"`
 	// Optional. The set of Hyperparameters to tune.
-	Hyperparameters *HyperparameterSpec `protobuf:"bytes,12,opt,name=hyperparameters" json:"hyperparameters,omitempty"`
+	Hyperparameters *HyperparameterSpec `protobuf:"bytes,12,opt,name=hyperparameters,proto3" json:"hyperparameters,omitempty"`
 	// Required. The Google Compute Engine region to run the training job in.
-	Region string `protobuf:"bytes,14,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,14,opt,name=region,proto3" json:"region,omitempty"`
 	// Optional. A Google Cloud Storage path in which to store training outputs
 	// and other data needed for training. This path is passed to your TensorFlow
 	// program as the 'job_dir' command-line argument. The benefit of specifying
 	// this field is that Cloud ML validates the path for use in training.
-	JobDir string `protobuf:"bytes,16,opt,name=job_dir,json=jobDir" json:"job_dir,omitempty"`
+	JobDir string `protobuf:"bytes,16,opt,name=job_dir,json=jobDir,proto3" json:"job_dir,omitempty"`
 	// Optional. The Google Cloud ML runtime version to use for training.  If not
 	// set, Google Cloud ML will choose the latest stable version.
-	RuntimeVersion       string   `protobuf:"bytes,15,opt,name=runtime_version,json=runtimeVersion" json:"runtime_version,omitempty"`
+	RuntimeVersion       string   `protobuf:"bytes,15,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -527,14 +527,14 @@ type HyperparameterSpec struct {
 	// `MAXIMIZE` and `MINIMIZE`.
 	//
 	// Defaults to `MAXIMIZE`.
-	Goal HyperparameterSpec_GoalType `protobuf:"varint,1,opt,name=goal,enum=google.cloud.ml.v1.HyperparameterSpec_GoalType" json:"goal,omitempty"`
+	Goal HyperparameterSpec_GoalType `protobuf:"varint,1,opt,name=goal,proto3,enum=google.cloud.ml.v1.HyperparameterSpec_GoalType" json:"goal,omitempty"`
 	// Required. The set of parameters to tune.
-	Params []*ParameterSpec `protobuf:"bytes,2,rep,name=params" json:"params,omitempty"`
+	Params []*ParameterSpec `protobuf:"bytes,2,rep,name=params,proto3" json:"params,omitempty"`
 	// Optional. How many training trials should be attempted to optimize
 	// the specified hyperparameters.
 	//
 	// Defaults to one.
-	MaxTrials int32 `protobuf:"varint,3,opt,name=max_trials,json=maxTrials" json:"max_trials,omitempty"`
+	MaxTrials int32 `protobuf:"varint,3,opt,name=max_trials,json=maxTrials,proto3" json:"max_trials,omitempty"`
 	// 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
@@ -545,13 +545,13 @@ type HyperparameterSpec struct {
 	// Each trial will use the same scale tier and machine types.
 	//
 	// Defaults to one.
-	MaxParallelTrials int32 `protobuf:"varint,4,opt,name=max_parallel_trials,json=maxParallelTrials" json:"max_parallel_trials,omitempty"`
+	MaxParallelTrials int32 `protobuf:"varint,4,opt,name=max_parallel_trials,json=maxParallelTrials,proto3" json:"max_parallel_trials,omitempty"`
 	// Optional. The Tensorflow summary tag name to use for optimizing trials. For
 	// current versions of Tensorflow, this tag name should exactly match what is
 	// shown in Tensorboard, including all scopes.  For versions of Tensorflow
 	// prior to 0.12, this should be only the tag passed to tf.Summary.
 	// By default, "training/hptuning/metric" will be used.
-	HyperparameterMetricTag string   `protobuf:"bytes,5,opt,name=hyperparameter_metric_tag,json=hyperparameterMetricTag" json:"hyperparameter_metric_tag,omitempty"`
+	HyperparameterMetricTag string   `protobuf:"bytes,5,opt,name=hyperparameter_metric_tag,json=hyperparameterMetricTag,proto3" json:"hyperparameter_metric_tag,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -620,30 +620,30 @@ func (m *HyperparameterSpec) GetHyperparameterMetricTag() string {
 type ParameterSpec struct {
 	// Required. The parameter name must be unique amongst all ParameterConfigs in
 	// a HyperparameterSpec message. E.g., "learning_rate".
-	ParameterName string `protobuf:"bytes,1,opt,name=parameter_name,json=parameterName" json:"parameter_name,omitempty"`
+	ParameterName string `protobuf:"bytes,1,opt,name=parameter_name,json=parameterName,proto3" json:"parameter_name,omitempty"`
 	// Required. The type of the parameter.
-	Type ParameterSpec_ParameterType `protobuf:"varint,4,opt,name=type,enum=google.cloud.ml.v1.ParameterSpec_ParameterType" json:"type,omitempty"`
+	Type ParameterSpec_ParameterType `protobuf:"varint,4,opt,name=type,proto3,enum=google.cloud.ml.v1.ParameterSpec_ParameterType" json:"type,omitempty"`
 	// 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.
-	MinValue float64 `protobuf:"fixed64,2,opt,name=min_value,json=minValue" json:"min_value,omitempty"`
+	MinValue float64 `protobuf:"fixed64,2,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
 	// Required if typeis `DOUBLE` or `INTEGER`. This field
 	// should be unset if type is `CATEGORICAL`. This value should be integers if
 	// type is `INTEGER`.
-	MaxValue float64 `protobuf:"fixed64,3,opt,name=max_value,json=maxValue" json:"max_value,omitempty"`
+	MaxValue float64 `protobuf:"fixed64,3,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
 	// Required if type is `CATEGORICAL`. The list of possible categories.
-	CategoricalValues []string `protobuf:"bytes,5,rep,name=categorical_values,json=categoricalValues" json:"categorical_values,omitempty"`
+	CategoricalValues []string `protobuf:"bytes,5,rep,name=categorical_values,json=categoricalValues,proto3" json:"categorical_values,omitempty"`
 	// Required if type is `DISCRETE`.
 	// A list of feasible points.
 	// The list should be in strictly increasing order. For instance, this
 	// parameter might have possible settings of 1.5, 2.5, and 4.0. This list
 	// should not contain more than 1,000 values.
-	DiscreteValues []float64 `protobuf:"fixed64,6,rep,packed,name=discrete_values,json=discreteValues" json:"discrete_values,omitempty"`
+	DiscreteValues []float64 `protobuf:"fixed64,6,rep,packed,name=discrete_values,json=discreteValues,proto3" json:"discrete_values,omitempty"`
 	// Optional. How the parameter should be scaled to the hypercube.
 	// Leave unset for categorical parameters.
 	// Some kind of scaling is strongly recommended for real or integral
 	// parameters (e.g., `UNIT_LINEAR_SCALE`).
-	ScaleType            ParameterSpec_ScaleType `protobuf:"varint,7,opt,name=scale_type,json=scaleType,enum=google.cloud.ml.v1.ParameterSpec_ScaleType" json:"scale_type,omitempty"`
+	ScaleType            ParameterSpec_ScaleType `protobuf:"varint,7,opt,name=scale_type,json=scaleType,proto3,enum=google.cloud.ml.v1.ParameterSpec_ScaleType" json:"scale_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -728,13 +728,13 @@ func (m *ParameterSpec) GetScaleType() ParameterSpec_ScaleType {
 // of HyperparameterOutput objects, one for each successful trial.
 type HyperparameterOutput struct {
 	// The trial id for these results.
-	TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
+	TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId,proto3" json:"trial_id,omitempty"`
 	// The hyperparameters given to this trial.
-	Hyperparameters map[string]string `protobuf:"bytes,2,rep,name=hyperparameters" json:"hyperparameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Hyperparameters map[string]string `protobuf:"bytes,2,rep,name=hyperparameters,proto3" json:"hyperparameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The final objective metric seen for this trial.
-	FinalMetric *HyperparameterOutput_HyperparameterMetric `protobuf:"bytes,3,opt,name=final_metric,json=finalMetric" json:"final_metric,omitempty"`
+	FinalMetric *HyperparameterOutput_HyperparameterMetric `protobuf:"bytes,3,opt,name=final_metric,json=finalMetric,proto3" json:"final_metric,omitempty"`
 	// All recorded object metrics for this trial.
-	AllMetrics           []*HyperparameterOutput_HyperparameterMetric `protobuf:"bytes,4,rep,name=all_metrics,json=allMetrics" json:"all_metrics,omitempty"`
+	AllMetrics           []*HyperparameterOutput_HyperparameterMetric `protobuf:"bytes,4,rep,name=all_metrics,json=allMetrics,proto3" json:"all_metrics,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
 	XXX_unrecognized     []byte                                       `json:"-"`
 	XXX_sizecache        int32                                        `json:"-"`
@@ -795,9 +795,9 @@ func (m *HyperparameterOutput) GetAllMetrics() []*HyperparameterOutput_Hyperpara
 // An observed value of a metric.
 type HyperparameterOutput_HyperparameterMetric struct {
 	// The global training step for this metric.
-	TrainingStep int64 `protobuf:"varint,1,opt,name=training_step,json=trainingStep" json:"training_step,omitempty"`
+	TrainingStep int64 `protobuf:"varint,1,opt,name=training_step,json=trainingStep,proto3" json:"training_step,omitempty"`
 	// The objective value at this training step.
-	ObjectiveValue       float64  `protobuf:"fixed64,2,opt,name=objective_value,json=objectiveValue" json:"objective_value,omitempty"`
+	ObjectiveValue       float64  `protobuf:"fixed64,2,opt,name=objective_value,json=objectiveValue,proto3" json:"objective_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -847,14 +847,14 @@ func (m *HyperparameterOutput_HyperparameterMetric) GetObjectiveValue() float64
 type TrainingOutput struct {
 	// The number of hyperparameter tuning trials that completed successfully.
 	// Only set for hyperparameter tuning jobs.
-	CompletedTrialCount int64 `protobuf:"varint,1,opt,name=completed_trial_count,json=completedTrialCount" json:"completed_trial_count,omitempty"`
+	CompletedTrialCount int64 `protobuf:"varint,1,opt,name=completed_trial_count,json=completedTrialCount,proto3" json:"completed_trial_count,omitempty"`
 	// Results for individual Hyperparameter trials.
 	// Only set for hyperparameter tuning jobs.
-	Trials []*HyperparameterOutput `protobuf:"bytes,2,rep,name=trials" json:"trials,omitempty"`
+	Trials []*HyperparameterOutput `protobuf:"bytes,2,rep,name=trials,proto3" json:"trials,omitempty"`
 	// The amount of ML units consumed by the job.
-	ConsumedMlUnits float64 `protobuf:"fixed64,3,opt,name=consumed_ml_units,json=consumedMlUnits" json:"consumed_ml_units,omitempty"`
+	ConsumedMlUnits float64 `protobuf:"fixed64,3,opt,name=consumed_ml_units,json=consumedMlUnits,proto3" json:"consumed_ml_units,omitempty"`
 	// Whether this job is a hyperparameter tuning job.
-	IsHyperparameterTuningJob bool     `protobuf:"varint,4,opt,name=is_hyperparameter_tuning_job,json=isHyperparameterTuningJob" json:"is_hyperparameter_tuning_job,omitempty"`
+	IsHyperparameterTuningJob bool     `protobuf:"varint,4,opt,name=is_hyperparameter_tuning_job,json=isHyperparameterTuningJob,proto3" json:"is_hyperparameter_tuning_job,omitempty"`
 	XXX_NoUnkeyedLiteral      struct{} `json:"-"`
 	XXX_unrecognized          []byte   `json:"-"`
 	XXX_sizecache             int32    `json:"-"`
@@ -922,23 +922,23 @@ type PredictionInput struct {
 	//	*PredictionInput_Uri
 	ModelVersion isPredictionInput_ModelVersion `protobuf_oneof:"model_version"`
 	// Required. The format of the input data files.
-	DataFormat PredictionInput_DataFormat `protobuf:"varint,3,opt,name=data_format,json=dataFormat,enum=google.cloud.ml.v1.PredictionInput_DataFormat" json:"data_format,omitempty"`
+	DataFormat PredictionInput_DataFormat `protobuf:"varint,3,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.ml.v1.PredictionInput_DataFormat" json:"data_format,omitempty"`
 	// Required. The Google Cloud Storage location of the input data files.
 	// May contain wildcards.
-	InputPaths []string `protobuf:"bytes,4,rep,name=input_paths,json=inputPaths" json:"input_paths,omitempty"`
+	InputPaths []string `protobuf:"bytes,4,rep,name=input_paths,json=inputPaths,proto3" json:"input_paths,omitempty"`
 	// Required. The output Google Cloud Storage location.
-	OutputPath string `protobuf:"bytes,5,opt,name=output_path,json=outputPath" json:"output_path,omitempty"`
+	OutputPath string `protobuf:"bytes,5,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"`
 	// Optional. The maximum number of workers to be used for parallel processing.
 	// Defaults to 10 if not specified.
-	MaxWorkerCount int64 `protobuf:"varint,6,opt,name=max_worker_count,json=maxWorkerCount" json:"max_worker_count,omitempty"`
+	MaxWorkerCount int64 `protobuf:"varint,6,opt,name=max_worker_count,json=maxWorkerCount,proto3" json:"max_worker_count,omitempty"`
 	// Required. The Google Compute Engine region to run the prediction job in.
-	Region string `protobuf:"bytes,7,opt,name=region" json:"region,omitempty"`
+	Region string `protobuf:"bytes,7,opt,name=region,proto3" json:"region,omitempty"`
 	// 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.
-	RuntimeVersion       string   `protobuf:"bytes,8,opt,name=runtime_version,json=runtimeVersion" json:"runtime_version,omitempty"`
+	RuntimeVersion       string   `protobuf:"bytes,8,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -973,13 +973,13 @@ type isPredictionInput_ModelVersion interface {
 }
 
 type PredictionInput_ModelName struct {
-	ModelName string `protobuf:"bytes,1,opt,name=model_name,json=modelName,oneof"`
+	ModelName string `protobuf:"bytes,1,opt,name=model_name,json=modelName,proto3,oneof"`
 }
 type PredictionInput_VersionName struct {
-	VersionName string `protobuf:"bytes,2,opt,name=version_name,json=versionName,oneof"`
+	VersionName string `protobuf:"bytes,2,opt,name=version_name,json=versionName,proto3,oneof"`
 }
 type PredictionInput_Uri struct {
-	Uri string `protobuf:"bytes,9,opt,name=uri,oneof"`
+	Uri string `protobuf:"bytes,9,opt,name=uri,proto3,oneof"`
 }
 
 func (*PredictionInput_ModelName) isPredictionInput_ModelVersion()   {}
@@ -1140,13 +1140,13 @@ func _PredictionInput_OneofSizer(msg proto.Message) (n int) {
 // Represents results of a prediction job.
 type PredictionOutput struct {
 	// The output Google Cloud Storage location provided at the job creation time.
-	OutputPath string `protobuf:"bytes,1,opt,name=output_path,json=outputPath" json:"output_path,omitempty"`
+	OutputPath string `protobuf:"bytes,1,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"`
 	// The number of generated predictions.
-	PredictionCount int64 `protobuf:"varint,2,opt,name=prediction_count,json=predictionCount" json:"prediction_count,omitempty"`
+	PredictionCount int64 `protobuf:"varint,2,opt,name=prediction_count,json=predictionCount,proto3" json:"prediction_count,omitempty"`
 	// The number of data instances which resulted in errors.
-	ErrorCount int64 `protobuf:"varint,3,opt,name=error_count,json=errorCount" json:"error_count,omitempty"`
+	ErrorCount int64 `protobuf:"varint,3,opt,name=error_count,json=errorCount,proto3" json:"error_count,omitempty"`
 	// Node hours used by the batch prediction job.
-	NodeHours            float64  `protobuf:"fixed64,4,opt,name=node_hours,json=nodeHours" json:"node_hours,omitempty"`
+	NodeHours            float64  `protobuf:"fixed64,4,opt,name=node_hours,json=nodeHours,proto3" json:"node_hours,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1207,7 +1207,7 @@ func (m *PredictionOutput) GetNodeHours() float64 {
 // Represents a training or prediction job.
 type Job struct {
 	// Required. The user-specified id of the job.
-	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	// Required. Parameters to create a job.
 	//
 	// Types that are valid to be assigned to Input:
@@ -1215,15 +1215,15 @@ type Job struct {
 	//	*Job_PredictionInput
 	Input isJob_Input `protobuf_oneof:"input"`
 	// Output only. When the job was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. When the job processing was started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Output only. When the job processing was completed.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Output only. The detailed state of a job.
-	State Job_State `protobuf:"varint,7,opt,name=state,enum=google.cloud.ml.v1.Job_State" json:"state,omitempty"`
+	State Job_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.ml.v1.Job_State" json:"state,omitempty"`
 	// Output only. The details of a failure or a cancellation.
-	ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
+	ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 	// Output only. The current result of the job.
 	//
 	// Types that are valid to be assigned to Output:
@@ -1267,16 +1267,16 @@ type isJob_Output interface {
 }
 
 type Job_TrainingInput struct {
-	TrainingInput *TrainingInput `protobuf:"bytes,2,opt,name=training_input,json=trainingInput,oneof"`
+	TrainingInput *TrainingInput `protobuf:"bytes,2,opt,name=training_input,json=trainingInput,proto3,oneof"`
 }
 type Job_PredictionInput struct {
-	PredictionInput *PredictionInput `protobuf:"bytes,3,opt,name=prediction_input,json=predictionInput,oneof"`
+	PredictionInput *PredictionInput `protobuf:"bytes,3,opt,name=prediction_input,json=predictionInput,proto3,oneof"`
 }
 type Job_TrainingOutput struct {
-	TrainingOutput *TrainingOutput `protobuf:"bytes,9,opt,name=training_output,json=trainingOutput,oneof"`
+	TrainingOutput *TrainingOutput `protobuf:"bytes,9,opt,name=training_output,json=trainingOutput,proto3,oneof"`
 }
 type Job_PredictionOutput struct {
-	PredictionOutput *PredictionOutput `protobuf:"bytes,10,opt,name=prediction_output,json=predictionOutput,oneof"`
+	PredictionOutput *PredictionOutput `protobuf:"bytes,10,opt,name=prediction_output,json=predictionOutput,proto3,oneof"`
 }
 
 func (*Job_TrainingInput) isJob_Input()     {}
@@ -1496,9 +1496,9 @@ type CreateJobRequest struct {
 	// Required. The project name.
 	//
 	// Authorization: requires `Editor` role on the specified project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The job to create.
-	Job                  *Job     `protobuf:"bytes,2,opt,name=job" json:"job,omitempty"`
+	Job                  *Job     `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1547,20 +1547,20 @@ type ListJobsRequest struct {
 	// Required. The name of the project for which to list jobs.
 	//
 	// Authorization: requires `Viewer` role on the specified project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. Specifies the subset of jobs to retrieve.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// 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
 	// the previous call.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional. The number of jobs 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.
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1621,10 +1621,10 @@ func (m *ListJobsRequest) GetPageSize() int32 {
 // Response message for the ListJobs method.
 type ListJobsResponse struct {
 	// The list of jobs.
-	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs" json:"jobs,omitempty"`
+	Jobs []*Job `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
 	// Optional. Pass this token as the `page_token` field of the request for a
 	// subsequent call.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1673,7 +1673,7 @@ type GetJobRequest struct {
 	// Required. The name of the job to get the description of.
 	//
 	// Authorization: requires `Viewer` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1715,7 +1715,7 @@ type CancelJobRequest struct {
 	// Required. The name of the job to cancel.
 	//
 	// Authorization: requires `Editor` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1842,8 +1842,7 @@ func (c *jobServiceClient) CancelJob(ctx context.Context, in *CancelJobRequest,
 	return out, nil
 }
 
-// Server API for JobService service
-
+// JobServiceServer is the server API for JobService service.
 type JobServiceServer interface {
 	// Creates a training or a batch prediction job.
 	CreateJob(context.Context, *CreateJobRequest) (*Job, error)
diff --git a/googleapis/cloud/ml/v1/model_service.pb.go b/googleapis/cloud/ml/v1/model_service.pb.go
index f5882aeb2478c64abdbb516c973c45a861594671..f24943c1d28c47a34cefa6130e419aa264bf417e 100644
--- a/googleapis/cloud/ml/v1/model_service.pb.go
+++ b/googleapis/cloud/ml/v1/model_service.pb.go
@@ -36,22 +36,22 @@ type Model struct {
 	// Required. The name specified for the model when it was created.
 	//
 	// The model name must be unique within the project it is created in.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The description specified for the model when it was created.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Output only. The default version of the model. 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/reference/rest/v1/projects.models.versions/setDefault).
-	DefaultVersion *Version `protobuf:"bytes,3,opt,name=default_version,json=defaultVersion" json:"default_version,omitempty"`
+	DefaultVersion *Version `protobuf:"bytes,3,opt,name=default_version,json=defaultVersion,proto3" json:"default_version,omitempty"`
 	// Optional. The list of regions where the model is going to be deployed.
 	// Currently only one region per model is supported.
 	// Defaults to 'us-central1' if nothing is set.
-	Regions []string `protobuf:"bytes,4,rep,name=regions" json:"regions,omitempty"`
+	Regions []string `protobuf:"bytes,4,rep,name=regions,proto3" json:"regions,omitempty"`
 	// Optional. If true, enables StackDriver Logging for online prediction.
 	// Default is false.
-	OnlinePredictionLogging bool     `protobuf:"varint,5,opt,name=online_prediction_logging,json=onlinePredictionLogging" json:"online_prediction_logging,omitempty"`
+	OnlinePredictionLogging bool     `protobuf:"varint,5,opt,name=online_prediction_logging,json=onlinePredictionLogging,proto3" json:"online_prediction_logging,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -126,15 +126,15 @@ type Version struct {
 	// 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 string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. The description specified for the version when it was created.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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/reference/rest/v1/projects.models.versions/setDefault).
-	IsDefault bool `protobuf:"varint,3,opt,name=is_default,json=isDefault" json:"is_default,omitempty"`
+	IsDefault bool `protobuf:"varint,3,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"`
 	// Required. The Google Cloud Storage location of the trained model used to
 	// create the version. See the
 	// [overview of model deployment](/ml/docs/concepts/deployment-overview) for
@@ -145,21 +145,21 @@ type Version struct {
 	// 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.
-	DeploymentUri string `protobuf:"bytes,4,opt,name=deployment_uri,json=deploymentUri" json:"deployment_uri,omitempty"`
+	DeploymentUri string `protobuf:"bytes,4,opt,name=deployment_uri,json=deploymentUri,proto3" json:"deployment_uri,omitempty"`
 	// Output only. The time the version was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time the version was last used for prediction.
-	LastUseTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=last_use_time,json=lastUseTime" json:"last_use_time,omitempty"`
+	LastUseTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=last_use_time,json=lastUseTime,proto3" json:"last_use_time,omitempty"`
 	// Optional. The Google Cloud ML runtime version to use for this deployment.
 	// If not set, Google Cloud ML will choose a version.
-	RuntimeVersion string `protobuf:"bytes,8,opt,name=runtime_version,json=runtimeVersion" json:"runtime_version,omitempty"`
+	RuntimeVersion string `protobuf:"bytes,8,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"`
 	// 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        *ManualScaling `protobuf:"bytes,9,opt,name=manual_scaling,json=manualScaling" json:"manual_scaling,omitempty"`
+	ManualScaling        *ManualScaling `protobuf:"bytes,9,opt,name=manual_scaling,json=manualScaling,proto3" json:"manual_scaling,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -251,7 +251,7 @@ type ManualScaling struct {
 	// 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.
-	Nodes                int32    `protobuf:"varint,1,opt,name=nodes" json:"nodes,omitempty"`
+	Nodes                int32    `protobuf:"varint,1,opt,name=nodes,proto3" json:"nodes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -293,9 +293,9 @@ type CreateModelRequest struct {
 	// Required. The project name.
 	//
 	// Authorization: requires `Editor` role on the specified project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The model to create.
-	Model                *Model   `protobuf:"bytes,2,opt,name=model" json:"model,omitempty"`
+	Model                *Model   `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -344,18 +344,18 @@ type ListModelsRequest struct {
 	// Required. The name of the project whose models are to be listed.
 	//
 	// Authorization: requires `Viewer` role on the specified project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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
 	// the previous call.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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.
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,10 +409,10 @@ func (m *ListModelsRequest) GetPageSize() int32 {
 // Response message for the ListModels method.
 type ListModelsResponse struct {
 	// The list of models.
-	Models []*Model `protobuf:"bytes,1,rep,name=models" json:"models,omitempty"`
+	Models []*Model `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"`
 	// Optional. Pass this token as the `page_token` field of the request for a
 	// subsequent call.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -461,7 +461,7 @@ type GetModelRequest struct {
 	// Required. The name of the model.
 	//
 	// Authorization: requires `Viewer` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -503,7 +503,7 @@ type DeleteModelRequest struct {
 	// Required. The name of the model.
 	//
 	// Authorization: requires `Editor` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -545,9 +545,9 @@ type CreateVersionRequest struct {
 	// Required. The name of the model.
 	//
 	// Authorization: requires `Editor` role on the parent project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The version details.
-	Version              *Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version              *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -596,18 +596,18 @@ type ListVersionsRequest struct {
 	// Required. The name of the model for which to list the version.
 	//
 	// Authorization: requires `Viewer` role on the parent project.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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
 	// the previous call.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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.
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -661,10 +661,10 @@ func (m *ListVersionsRequest) GetPageSize() int32 {
 // Response message for the ListVersions method.
 type ListVersionsResponse struct {
 	// The list of versions.
-	Versions []*Version `protobuf:"bytes,1,rep,name=versions" json:"versions,omitempty"`
+	Versions []*Version `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"`
 	// Optional. Pass this token as the `page_token` field of the request for a
 	// subsequent call.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -713,7 +713,7 @@ type GetVersionRequest struct {
 	// Required. The name of the version.
 	//
 	// Authorization: requires `Viewer` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -757,7 +757,7 @@ type DeleteVersionRequest struct {
 	// [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
 	//
 	// Authorization: requires `Editor` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -801,7 +801,7 @@ type SetDefaultVersionRequest struct {
 	// [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
 	//
 	// Authorization: requires `Editor` role on the parent project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1018,8 +1018,7 @@ func (c *modelServiceClient) SetDefaultVersion(ctx context.Context, in *SetDefau
 	return out, nil
 }
 
-// Server API for ModelService service
-
+// ModelServiceServer is the server API for ModelService service.
 type ModelServiceServer interface {
 	// Creates a model which will later contain one or more versions.
 	//
diff --git a/googleapis/cloud/ml/v1/operation_metadata.pb.go b/googleapis/cloud/ml/v1/operation_metadata.pb.go
index 1c677ed5e16c242037935e31f980dc466dece2a2..8782763132c73455781b2cfab9f3768caf967027 100644
--- a/googleapis/cloud/ml/v1/operation_metadata.pb.go
+++ b/googleapis/cloud/ml/v1/operation_metadata.pb.go
@@ -57,19 +57,19 @@ func (OperationMetadata_OperationType) EnumDescriptor() ([]byte, []int) {
 // Represents the metadata of the long-running operation.
 type OperationMetadata struct {
 	// The time the operation was submitted.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time operation processing started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time operation processing completed.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Indicates whether a request to cancel this operation has been made.
-	IsCancellationRequested bool `protobuf:"varint,4,opt,name=is_cancellation_requested,json=isCancellationRequested" json:"is_cancellation_requested,omitempty"`
+	IsCancellationRequested bool `protobuf:"varint,4,opt,name=is_cancellation_requested,json=isCancellationRequested,proto3" json:"is_cancellation_requested,omitempty"`
 	// The operation type.
-	OperationType OperationMetadata_OperationType `protobuf:"varint,5,opt,name=operation_type,json=operationType,enum=google.cloud.ml.v1.OperationMetadata_OperationType" json:"operation_type,omitempty"`
+	OperationType OperationMetadata_OperationType `protobuf:"varint,5,opt,name=operation_type,json=operationType,proto3,enum=google.cloud.ml.v1.OperationMetadata_OperationType" json:"operation_type,omitempty"`
 	// Contains the name of the model associated with the operation.
-	ModelName string `protobuf:"bytes,6,opt,name=model_name,json=modelName" json:"model_name,omitempty"`
+	ModelName string `protobuf:"bytes,6,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
 	// Contains the version associated with the operation.
-	Version              *Version `protobuf:"bytes,7,opt,name=version" json:"version,omitempty"`
+	Version              *Version `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/ml/v1/prediction_service.pb.go b/googleapis/cloud/ml/v1/prediction_service.pb.go
index a6f416108b43f36e0cd51d6611ae756267092154..7d0d9b8805228c536c94b0650c43defe23ce4dce 100644
--- a/googleapis/cloud/ml/v1/prediction_service.pb.go
+++ b/googleapis/cloud/ml/v1/prediction_service.pb.go
@@ -215,10 +215,10 @@ type PredictRequest struct {
 	// Required. The resource name of a model or a version.
 	//
 	// Authorization: requires `Viewer` role on the parent project.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	//
 	// Required. The prediction request body.
-	HttpBody             *httpbody.HttpBody `protobuf:"bytes,2,opt,name=http_body,json=httpBody" json:"http_body,omitempty"`
+	HttpBody             *httpbody.HttpBody `protobuf:"bytes,2,opt,name=http_body,json=httpBody,proto3" json:"http_body,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -301,8 +301,7 @@ func (c *onlinePredictionServiceClient) Predict(ctx context.Context, in *Predict
 	return out, nil
 }
 
-// Server API for OnlinePredictionService service
-
+// OnlinePredictionServiceServer is the server API for OnlinePredictionService service.
 type OnlinePredictionServiceServer interface {
 	// Performs prediction on the data in the request.
 	//
diff --git a/googleapis/cloud/ml/v1/project_service.pb.go b/googleapis/cloud/ml/v1/project_service.pb.go
index 73bf2059bcb43a9c16024085518363aeec8a3fa0..5f34e8fad961c422e65297f1d2f89a5d17ddbd39 100644
--- a/googleapis/cloud/ml/v1/project_service.pb.go
+++ b/googleapis/cloud/ml/v1/project_service.pb.go
@@ -29,7 +29,7 @@ type GetConfigRequest struct {
 	// Required. The project name.
 	//
 	// Authorization: requires `Viewer` role on the specified project.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -69,9 +69,9 @@ func (m *GetConfigRequest) GetName() string {
 // Returns service account information associated with a project.
 type GetConfigResponse struct {
 	// The service account Cloud ML uses to access resources in the project.
-	ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// The project number for `service_account`.
-	ServiceAccountProject int64    `protobuf:"varint,2,opt,name=service_account_project,json=serviceAccountProject" json:"service_account_project,omitempty"`
+	ServiceAccountProject int64    `protobuf:"varint,2,opt,name=service_account_project,json=serviceAccountProject,proto3" json:"service_account_project,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
 	XXX_unrecognized      []byte   `json:"-"`
 	XXX_sizecache         int32    `json:"-"`
@@ -156,8 +156,7 @@ func (c *projectManagementServiceClient) GetConfig(ctx context.Context, in *GetC
 	return out, nil
 }
 
-// Server API for ProjectManagementService service
-
+// ProjectManagementServiceServer is the server API for ProjectManagementService service.
 type ProjectManagementServiceServer interface {
 	// Get the service account information associated with your project. You need
 	// this information in order to grant the service account persmissions for
diff --git a/googleapis/cloud/oslogin/common/common.pb.go b/googleapis/cloud/oslogin/common/common.pb.go
index d82b96cd1b0fbf0fc1b17c960334f58a747a50d0..cbe9c12017b5f10e283c7625ba0a16e8689ec42f 100644
--- a/googleapis/cloud/oslogin/common/common.pb.go
+++ b/googleapis/cloud/oslogin/common/common.pb.go
@@ -22,24 +22,24 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // The POSIX account information associated with a Google account.
 type PosixAccount struct {
 	// Only one POSIX account can be marked as primary.
-	Primary bool `protobuf:"varint,1,opt,name=primary" json:"primary,omitempty"`
+	Primary bool `protobuf:"varint,1,opt,name=primary,proto3" json:"primary,omitempty"`
 	// The username of the POSIX account.
-	Username string `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
 	// The user ID.
-	Uid int64 `protobuf:"varint,3,opt,name=uid" json:"uid,omitempty"`
+	Uid int64 `protobuf:"varint,3,opt,name=uid,proto3" json:"uid,omitempty"`
 	// The default group ID.
-	Gid int64 `protobuf:"varint,4,opt,name=gid" json:"gid,omitempty"`
+	Gid int64 `protobuf:"varint,4,opt,name=gid,proto3" json:"gid,omitempty"`
 	// The path to the home directory for this account.
-	HomeDirectory string `protobuf:"bytes,5,opt,name=home_directory,json=homeDirectory" json:"home_directory,omitempty"`
+	HomeDirectory string `protobuf:"bytes,5,opt,name=home_directory,json=homeDirectory,proto3" json:"home_directory,omitempty"`
 	// The path to the logic shell for this account.
-	Shell string `protobuf:"bytes,6,opt,name=shell" json:"shell,omitempty"`
+	Shell string `protobuf:"bytes,6,opt,name=shell,proto3" json:"shell,omitempty"`
 	// The GECOS (user information) entry for this account.
-	Gecos string `protobuf:"bytes,7,opt,name=gecos" json:"gecos,omitempty"`
+	Gecos string `protobuf:"bytes,7,opt,name=gecos,proto3" json:"gecos,omitempty"`
 	// System identifier for which account the username or uid applies to.
 	// By default, the empty value is used.
-	SystemId string `protobuf:"bytes,8,opt,name=system_id,json=systemId" json:"system_id,omitempty"`
+	SystemId string `protobuf:"bytes,8,opt,name=system_id,json=systemId,proto3" json:"system_id,omitempty"`
 	// Output only. A POSIX account identifier.
-	AccountId            string   `protobuf:"bytes,9,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
+	AccountId            string   `protobuf:"bytes,9,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -137,11 +137,11 @@ type SshPublicKey struct {
 	// Public key text in SSH format, defined by
 	// <a href="https://www.ietf.org/rfc/rfc4253.txt" target="_blank">RFC4253</a>
 	// section 6.6.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// An expiration time in microseconds since epoch.
-	ExpirationTimeUsec int64 `protobuf:"varint,2,opt,name=expiration_time_usec,json=expirationTimeUsec" json:"expiration_time_usec,omitempty"`
+	ExpirationTimeUsec int64 `protobuf:"varint,2,opt,name=expiration_time_usec,json=expirationTimeUsec,proto3" json:"expiration_time_usec,omitempty"`
 	// Output only. The SHA-256 fingerprint of the SSH public key.
-	Fingerprint          string   `protobuf:"bytes,3,opt,name=fingerprint" json:"fingerprint,omitempty"`
+	Fingerprint          string   `protobuf:"bytes,3,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/oslogin/v1/oslogin.pb.go b/googleapis/cloud/oslogin/v1/oslogin.pb.go
index a39f8fa40226ae8b52b3bc1498b7de5500ded768..34cfe79639efd87233f74b00a6cafbd430382c34 100644
--- a/googleapis/cloud/oslogin/v1/oslogin.pb.go
+++ b/googleapis/cloud/oslogin/v1/oslogin.pb.go
@@ -31,14 +31,14 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Google Compute Engine.
 type LoginProfile struct {
 	// The primary email address that uniquely identifies the user.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The list of POSIX accounts associated with the user.
-	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts" json:"posix_accounts,omitempty"`
+	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts,proto3" json:"posix_accounts,omitempty"`
 	// A map from SSH public key fingerprint to the associated key object.
-	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys,proto3" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Indicates if the user is suspended. A suspended user cannot log in but
 	// their profile information is retained.
-	Suspended            bool     `protobuf:"varint,4,opt,name=suspended" json:"suspended,omitempty"`
+	Suspended            bool     `protobuf:"varint,4,opt,name=suspended,proto3" json:"suspended,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -101,7 +101,7 @@ type DeletePosixAccountRequest struct {
 	// A reference to the POSIX account to update. POSIX accounts are identified
 	// by the project ID they are associated with. A reference to the POSIX
 	// account is in format `users/{user}/projects/{project}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -143,7 +143,7 @@ type DeleteSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -183,7 +183,7 @@ func (m *DeleteSshPublicKeyRequest) GetName() string {
 // A request message for retrieving the login profile information for a user.
 type GetLoginProfileRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -225,7 +225,7 @@ type GetSshPublicKeyRequest struct {
 	// The fingerprint of the public key to retrieve. Public keys are identified
 	// by their SHA-256 fingerprint. The fingerprint of the public key is in
 	// format `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -265,11 +265,11 @@ func (m *GetSshPublicKeyRequest) GetName() string {
 // A request message for importing an SSH public key.
 type ImportSshPublicKeyRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// The project ID of the Google Cloud Platform project.
-	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -323,7 +323,7 @@ func (m *ImportSshPublicKeyRequest) GetProjectId() string {
 // A response message for importing an SSH public key.
 type ImportSshPublicKeyResponse struct {
 	// The login profile information for the user.
-	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile" json:"login_profile,omitempty"`
+	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile,proto3" json:"login_profile,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -365,11 +365,11 @@ type UpdateSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// Mask to control which fields get updated. Updates all if not present.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -524,8 +524,7 @@ func (c *osLoginServiceClient) UpdateSshPublicKey(ctx context.Context, in *Updat
 	return out, nil
 }
 
-// Server API for OsLoginService service
-
+// OsLoginServiceServer is the server API for OsLoginService service.
 type OsLoginServiceServer interface {
 	// Deletes a POSIX account.
 	DeletePosixAccount(context.Context, *DeletePosixAccountRequest) (*empty.Empty, error)
diff --git a/googleapis/cloud/oslogin/v1alpha/oslogin.pb.go b/googleapis/cloud/oslogin/v1alpha/oslogin.pb.go
index 1d0b7afee8338bd235b75432d7f6ebd1ca8cf2ff..1fb92423ccc35fd8501ffe4995eca87701f4b64d 100644
--- a/googleapis/cloud/oslogin/v1alpha/oslogin.pb.go
+++ b/googleapis/cloud/oslogin/v1alpha/oslogin.pb.go
@@ -31,13 +31,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Google Compute Engine.
 type LoginProfile struct {
 	// A unique user ID for identifying the user.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The list of POSIX accounts associated with the Directory API user.
-	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts" json:"posix_accounts,omitempty"`
+	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts,proto3" json:"posix_accounts,omitempty"`
 	// A map from SSH public key fingerprint to the associated key object.
-	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys,proto3" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Indicates if the user is suspended.
-	Suspended            bool     `protobuf:"varint,4,opt,name=suspended" json:"suspended,omitempty"`
+	Suspended            bool     `protobuf:"varint,4,opt,name=suspended,proto3" json:"suspended,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -100,7 +100,7 @@ type DeletePosixAccountRequest struct {
 	// A reference to the POSIX account to update. POSIX accounts are identified
 	// by the project ID they are associated with. A reference to the POSIX
 	// account is in format `users/{user}/projects/{project}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -142,7 +142,7 @@ type DeleteSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -182,7 +182,7 @@ func (m *DeleteSshPublicKeyRequest) GetName() string {
 // A request message for retrieving the login profile information for a user.
 type GetLoginProfileRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -224,7 +224,7 @@ type GetSshPublicKeyRequest struct {
 	// The fingerprint of the public key to retrieve. Public keys are identified
 	// by their SHA-256 fingerprint. The fingerprint of the public key is in
 	// format `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -264,11 +264,11 @@ func (m *GetSshPublicKeyRequest) GetName() string {
 // A request message for importing an SSH public key.
 type ImportSshPublicKeyRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// The project ID of the Google Cloud Platform project.
-	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -322,7 +322,7 @@ func (m *ImportSshPublicKeyRequest) GetProjectId() string {
 // A response message for importing an SSH public key.
 type ImportSshPublicKeyResponse struct {
 	// The login profile information for the user.
-	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile" json:"login_profile,omitempty"`
+	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile,proto3" json:"login_profile,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -364,11 +364,11 @@ type UpdateSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// Mask to control which fields get updated. Updates all if not present.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -523,8 +523,7 @@ func (c *osLoginServiceClient) UpdateSshPublicKey(ctx context.Context, in *Updat
 	return out, nil
 }
 
-// Server API for OsLoginService service
-
+// OsLoginServiceServer is the server API for OsLoginService service.
 type OsLoginServiceServer interface {
 	// Deletes a POSIX account.
 	DeletePosixAccount(context.Context, *DeletePosixAccountRequest) (*empty.Empty, error)
diff --git a/googleapis/cloud/oslogin/v1beta/oslogin.pb.go b/googleapis/cloud/oslogin/v1beta/oslogin.pb.go
index b072f6326aefae578639ff7cdcd799fec674645e..998f7569dce8050914565ba4b5d3bd01e4d76f2f 100644
--- a/googleapis/cloud/oslogin/v1beta/oslogin.pb.go
+++ b/googleapis/cloud/oslogin/v1beta/oslogin.pb.go
@@ -31,14 +31,14 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Google Compute Engine.
 type LoginProfile struct {
 	// The primary email address that uniquely identifies the user.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The list of POSIX accounts associated with the user.
-	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts" json:"posix_accounts,omitempty"`
+	PosixAccounts []*common.PosixAccount `protobuf:"bytes,2,rep,name=posix_accounts,json=posixAccounts,proto3" json:"posix_accounts,omitempty"`
 	// A map from SSH public key fingerprint to the associated key object.
-	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	SshPublicKeys map[string]*common.SshPublicKey `protobuf:"bytes,3,rep,name=ssh_public_keys,json=sshPublicKeys,proto3" json:"ssh_public_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Indicates if the user is suspended. A suspended user cannot log in but
 	// their profile information is retained.
-	Suspended            bool     `protobuf:"varint,4,opt,name=suspended" json:"suspended,omitempty"`
+	Suspended            bool     `protobuf:"varint,4,opt,name=suspended,proto3" json:"suspended,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -101,7 +101,7 @@ type DeletePosixAccountRequest struct {
 	// A reference to the POSIX account to update. POSIX accounts are identified
 	// by the project ID they are associated with. A reference to the POSIX
 	// account is in format `users/{user}/projects/{project}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -143,7 +143,7 @@ type DeleteSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -183,7 +183,7 @@ func (m *DeleteSshPublicKeyRequest) GetName() string {
 // A request message for retrieving the login profile information for a user.
 type GetLoginProfileRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -225,7 +225,7 @@ type GetSshPublicKeyRequest struct {
 	// The fingerprint of the public key to retrieve. Public keys are identified
 	// by their SHA-256 fingerprint. The fingerprint of the public key is in
 	// format `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -265,11 +265,11 @@ func (m *GetSshPublicKeyRequest) GetName() string {
 // A request message for importing an SSH public key.
 type ImportSshPublicKeyRequest struct {
 	// The unique ID for the user in format `users/{user}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// The project ID of the Google Cloud Platform project.
-	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -323,7 +323,7 @@ func (m *ImportSshPublicKeyRequest) GetProjectId() string {
 // A response message for importing an SSH public key.
 type ImportSshPublicKeyResponse struct {
 	// The login profile information for the user.
-	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile" json:"login_profile,omitempty"`
+	LoginProfile         *LoginProfile `protobuf:"bytes,1,opt,name=login_profile,json=loginProfile,proto3" json:"login_profile,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -365,11 +365,11 @@ type UpdateSshPublicKeyRequest struct {
 	// The fingerprint of the public key to update. Public keys are identified by
 	// their SHA-256 fingerprint. The fingerprint of the public key is in format
 	// `users/{user}/sshPublicKeys/{fingerprint}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The SSH public key and expiration time.
-	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey" json:"ssh_public_key,omitempty"`
+	SshPublicKey *common.SshPublicKey `protobuf:"bytes,2,opt,name=ssh_public_key,json=sshPublicKey,proto3" json:"ssh_public_key,omitempty"`
 	// Mask to control which fields get updated. Updates all if not present.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -524,8 +524,7 @@ func (c *osLoginServiceClient) UpdateSshPublicKey(ctx context.Context, in *Updat
 	return out, nil
 }
 
-// Server API for OsLoginService service
-
+// OsLoginServiceServer is the server API for OsLoginService service.
 type OsLoginServiceServer interface {
 	// Deletes a POSIX account.
 	DeletePosixAccount(context.Context, *DeletePosixAccountRequest) (*empty.Empty, error)
diff --git a/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go b/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
index df758d3b3c02823dd671e428417f04db99d58293..1b2108c41c05ed3d543a802b195b2a3ff9a83b97 100644
--- a/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
+++ b/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
@@ -117,62 +117,62 @@ type Instance struct {
 	// specific zone (or collection of zones for cross-zone instances) an instance
 	// should be provisioned in. Refer to [location_id] and
 	// [alternative_location_id] fields for more details.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An arbitrary and optional user-provided name for the instance.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Resource labels to represent user provided metadata
-	Labels map[string]string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The zone where the instance will be provisioned. If not provided,
 	// the service will choose a zone for the instance. For STANDARD_HA tier,
 	// instances will be created across two zones for protection against zonal
 	// failures. if [alternative_location_id] is also provided, it must be
 	// different from [location_id].
-	LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	// Optional. Only applicable to STANDARD_HA tier which protects the instance
 	// against zonal failures by provisioning it across two zones. If provided, it
 	// must be a different zone from the one provided in [location_id].
-	AlternativeLocationId string `protobuf:"bytes,5,opt,name=alternative_location_id,json=alternativeLocationId" json:"alternative_location_id,omitempty"`
+	AlternativeLocationId string `protobuf:"bytes,5,opt,name=alternative_location_id,json=alternativeLocationId,proto3" json:"alternative_location_id,omitempty"`
 	// Optional. The version of Redis software.
 	// If not provided, latest supported version will be used.
-	RedisVersion string `protobuf:"bytes,7,opt,name=redis_version,json=redisVersion" json:"redis_version,omitempty"`
+	RedisVersion string `protobuf:"bytes,7,opt,name=redis_version,json=redisVersion,proto3" json:"redis_version,omitempty"`
 	// Optional. The CIDR range of internal addresses that are reserved for this
 	// instance. If not provided, the service will choose an unused /29 block,
 	// for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be unique
 	// and non-overlapping with existing subnets in a network.
-	ReservedIpRange string `protobuf:"bytes,9,opt,name=reserved_ip_range,json=reservedIpRange" json:"reserved_ip_range,omitempty"`
+	ReservedIpRange string `protobuf:"bytes,9,opt,name=reserved_ip_range,json=reservedIpRange,proto3" json:"reserved_ip_range,omitempty"`
 	// Output only. Hostname or IP address of the exposed redis endpoint used by
 	// clients to connect to the service.
-	Host string `protobuf:"bytes,10,opt,name=host" json:"host,omitempty"`
+	Host string `protobuf:"bytes,10,opt,name=host,proto3" json:"host,omitempty"`
 	// Output only. The port number of the exposed redis endpoint.
-	Port int32 `protobuf:"varint,11,opt,name=port" json:"port,omitempty"`
+	Port int32 `protobuf:"varint,11,opt,name=port,proto3" json:"port,omitempty"`
 	// Output only. The current zone where the Redis endpoint is placed. In
 	// single zone deployments, this will always be the same as [location_id]
 	// provided by the user at creation time. In cross-zone instances (only
 	// applicable in STANDARD_HA tier), this can be either [location_id] or
 	// [alternative_location_id] and can change on a failover event.
-	CurrentLocationId string `protobuf:"bytes,12,opt,name=current_location_id,json=currentLocationId" json:"current_location_id,omitempty"`
+	CurrentLocationId string `protobuf:"bytes,12,opt,name=current_location_id,json=currentLocationId,proto3" json:"current_location_id,omitempty"`
 	// Output only. The time the instance was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The current state of this instance.
-	State Instance_State `protobuf:"varint,14,opt,name=state,enum=google.cloud.redis.v1beta1.Instance_State" json:"state,omitempty"`
+	State Instance_State `protobuf:"varint,14,opt,name=state,proto3,enum=google.cloud.redis.v1beta1.Instance_State" json:"state,omitempty"`
 	// Output only. Additional information about the current status of this
 	// instance, if available.
-	StatusMessage string `protobuf:"bytes,15,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,15,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Optional. Redis configuration parameters, according to
 	// http://redis.io/topics/config. Currently, the only supported parameters
 	// are:
 	//  * maxmemory-policy
 	//  * notify-keyspace-events
-	RedisConfigs map[string]string `protobuf:"bytes,16,rep,name=redis_configs,json=redisConfigs" json:"redis_configs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	RedisConfigs map[string]string `protobuf:"bytes,16,rep,name=redis_configs,json=redisConfigs,proto3" json:"redis_configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Required. The service tier of the instance.
-	Tier Instance_Tier `protobuf:"varint,17,opt,name=tier,enum=google.cloud.redis.v1beta1.Instance_Tier" json:"tier,omitempty"`
+	Tier Instance_Tier `protobuf:"varint,17,opt,name=tier,proto3,enum=google.cloud.redis.v1beta1.Instance_Tier" json:"tier,omitempty"`
 	// Required. Redis memory size in GB.
-	MemorySizeGb int32 `protobuf:"varint,18,opt,name=memory_size_gb,json=memorySizeGb" json:"memory_size_gb,omitempty"`
+	MemorySizeGb int32 `protobuf:"varint,18,opt,name=memory_size_gb,json=memorySizeGb,proto3" json:"memory_size_gb,omitempty"`
 	// Optional. The full name of the Google Compute Engine
 	// [network](/compute/docs/networks-and-firewalls#networks) to which the
 	// instance is connected. If left unspecified, the `default` network
 	// will be used.
-	AuthorizedNetwork    string   `protobuf:"bytes,20,opt,name=authorized_network,json=authorizedNetwork" json:"authorized_network,omitempty"`
+	AuthorizedNetwork    string   `protobuf:"bytes,20,opt,name=authorized_network,json=authorizedNetwork,proto3" json:"authorized_network,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -326,7 +326,7 @@ type ListInstancesRequest struct {
 	// Required. The resource name of the instance location using the form:
 	//     `projects/{project_id}/locations/{location_id}`
 	// where `location_id` refers to a GCP region
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of items to return.
 	//
 	// If not specified, a default value of 1000 will be used by the service.
@@ -334,10 +334,10 @@ type ListInstancesRequest struct {
 	// and a caller should only rely on response's
 	// [next_page_token][CloudRedis.ListInstancesResponse.next_page_token]
 	// to determine if there are more instances left to be queried.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The next_page_token value returned from a previous List request,
 	// if any.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -400,10 +400,10 @@ type ListInstancesResponse struct {
 	// the form projects/{project_id}/locations/{location_id}/instances/- and the
 	// "status" field set to ERROR and "status_message" field set to "location not
 	// available for ListInstances".
-	Instances []*Instance `protobuf:"bytes,1,rep,name=instances" json:"instances,omitempty"`
+	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no more
 	// results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -452,7 +452,7 @@ type GetInstanceRequest struct {
 	// Required. Redis instance resource name using the form:
 	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
 	// where `location_id` refers to a GCP region
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -494,7 +494,7 @@ type CreateInstanceRequest struct {
 	// Required. The resource name of the instance location using the form:
 	//     `projects/{project_id}/locations/{location_id}`
 	// where `location_id` refers to a GCP region
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The logical name of the Redis instance in the customer project
 	// with the following restrictions:
 	//
@@ -503,9 +503,9 @@ type CreateInstanceRequest struct {
 	// * Must be between 1-40 characters.
 	// * Must end with a number or a letter.
 	// * Must be unique within the customer project / location
-	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	// Required. A Redis [Instance] resource
-	Instance             *Instance `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"`
+	Instance             *Instance `protobuf:"bytes,3,opt,name=instance,proto3" json:"instance,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -565,10 +565,10 @@ type UpdateInstanceRequest struct {
 	// * `labels`
 	// * `memory_size_gb`
 	// * `redis_config`
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Required. Update description.
 	// Only fields specified in update_mask are updated.
-	Instance             *Instance `protobuf:"bytes,2,opt,name=instance" json:"instance,omitempty"`
+	Instance             *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -617,7 +617,7 @@ type DeleteInstanceRequest struct {
 	// Required. Redis instance resource name using the form:
 	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
 	// where `location_id` refers to a GCP region
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -663,7 +663,7 @@ type LocationMetadata struct {
 	// by the lowercase ID of each zone, as defined by GCE. These keys can be
 	// specified in `location_id` or `alternative_location_id` fields when
 	// creating a Redis instance.
-	AvailableZones       map[string]*ZoneMetadata `protobuf:"bytes,1,rep,name=available_zones,json=availableZones" json:"available_zones,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	AvailableZones       map[string]*ZoneMetadata `protobuf:"bytes,1,rep,name=available_zones,json=availableZones,proto3" json:"available_zones,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -849,8 +849,7 @@ func (c *cloudRedisClient) DeleteInstance(ctx context.Context, in *DeleteInstanc
 	return out, nil
 }
 
-// Server API for CloudRedis service
-
+// CloudRedisServer is the server API for CloudRedis service.
 type CloudRedisServer interface {
 	// Lists all Redis instances owned by a project in either the specified
 	// location (region) or all locations.
diff --git a/googleapis/cloud/resourcemanager/v2/folders.pb.go b/googleapis/cloud/resourcemanager/v2/folders.pb.go
index 8044e7abfea00fd84c1c5001cb803ad940fbe522..559035f78a9806a882815e7629e32639a1b252a7 100644
--- a/googleapis/cloud/resourcemanager/v2/folders.pb.go
+++ b/googleapis/cloud/resourcemanager/v2/folders.pb.go
@@ -93,10 +93,10 @@ func (FolderOperation_OperationType) EnumDescriptor() ([]byte, []int) {
 type Folder struct {
 	// Output only. The resource name of the Folder.
 	// Its format is `folders/{folder_id}`, for example: "folders/1234".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The Folder’s parent's resource name.
 	// Updates to the folder's parent must be performed via [MoveFolders].
-	Parent string `protobuf:"bytes,2,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The folder’s display name.
 	// A folder’s display name must be unique amongst its siblings, e.g.
 	// no two folders with the same parent can share the same display name.
@@ -104,15 +104,15 @@ type Folder struct {
 	// letters, digits, spaces, hyphens and underscores and can be no longer
 	// than 30 characters. This is captured by the regular expression:
 	// [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Output only.  The lifecycle state of the folder.
 	// Updates to the lifecycle_state must be performed via
 	// [DeleteFolder] and [UndeleteFolder].
-	LifecycleState Folder_LifecycleState `protobuf:"varint,4,opt,name=lifecycle_state,json=lifecycleState,enum=google.cloud.resourcemanager.v2.Folder_LifecycleState" json:"lifecycle_state,omitempty"`
+	LifecycleState Folder_LifecycleState `protobuf:"varint,4,opt,name=lifecycle_state,json=lifecycleState,proto3,enum=google.cloud.resourcemanager.v2.Folder_LifecycleState" json:"lifecycle_state,omitempty"`
 	// Output only. Timestamp when the Folder was created. Assigned by the server.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. Timestamp when the Folder was last modified.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -191,17 +191,17 @@ type ListFoldersRequest struct {
 	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
 	// Access to this method is controlled by checking the
 	// `resourcemanager.folders.list` permission on the `parent`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of Folders to return in the response.
 	// This field is optional.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A pagination token returned from a previous call to `ListFolders`
 	// that indicates where this listing should continue from.
 	// This field is optional.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Controls whether Folders in the [DELETE_REQUESTED} state should
 	// be returned.
-	ShowDeleted          bool     `protobuf:"varint,4,opt,name=show_deleted,json=showDeleted" json:"show_deleted,omitempty"`
+	ShowDeleted          bool     `protobuf:"varint,4,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -263,11 +263,11 @@ func (m *ListFoldersRequest) GetShowDeleted() bool {
 type ListFoldersResponse struct {
 	// A possibly paginated list of Folders that are direct descendants of
 	// the specified parent resource.
-	Folders []*Folder `protobuf:"bytes,1,rep,name=folders" json:"folders,omitempty"`
+	Folders []*Folder `protobuf:"bytes,1,rep,name=folders,proto3" json:"folders,omitempty"`
 	// A pagination token returned from a previous call to `ListFolders`
 	// that indicates from where listing should continue.
 	// This field is optional.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -315,11 +315,11 @@ func (m *ListFoldersResponse) GetNextPageToken() string {
 type SearchFoldersRequest struct {
 	// The maximum number of folders to return in the response.
 	// This field is optional.
-	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A pagination token returned from a previous call to `SearchFolders`
 	// that indicates from where search should continue.
 	// This field is optional.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Search criteria used to select the Folders to return.
 	// If no search criteria is specified then all accessible folders will be
 	// returned.
@@ -336,7 +336,7 @@ type SearchFoldersRequest struct {
 	// |parent=folders/123|Folders whose parent is "folders/123".|
 	// |parent=folders/123 AND lifecycleState=ACTIVE|Active folders whose
 	// parent is "folders/123".|
-	Query                string   `protobuf:"bytes,3,opt,name=query" json:"query,omitempty"`
+	Query                string   `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -391,11 +391,11 @@ func (m *SearchFoldersRequest) GetQuery() string {
 type SearchFoldersResponse struct {
 	// A possibly paginated folder search results.
 	// the specified parent resource.
-	Folders []*Folder `protobuf:"bytes,1,rep,name=folders" json:"folders,omitempty"`
+	Folders []*Folder `protobuf:"bytes,1,rep,name=folders,proto3" json:"folders,omitempty"`
 	// A pagination token returned from a previous call to `SearchFolders`
 	// that indicates from where searching should continue.
 	// This field is optional.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -443,7 +443,7 @@ func (m *SearchFoldersResponse) GetNextPageToken() string {
 type GetFolderRequest struct {
 	// The resource name of the Folder to retrieve.
 	// Must be of the form `folders/{folder_id}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -484,10 +484,10 @@ func (m *GetFolderRequest) GetName() string {
 type CreateFolderRequest struct {
 	// The resource name of the new Folder's parent.
 	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The Folder being created, only the display name will be consulted.
 	// All other fields will be ignored.
-	Folder               *Folder  `protobuf:"bytes,2,opt,name=folder" json:"folder,omitempty"`
+	Folder               *Folder  `protobuf:"bytes,2,opt,name=folder,proto3" json:"folder,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -535,11 +535,11 @@ func (m *CreateFolderRequest) GetFolder() *Folder {
 type MoveFolderRequest struct {
 	// The resource name of the Folder to move.
 	// Must be of the form folders/{folder_id}
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The resource name of the Folder or Organization to reparent
 	// the folder under.
 	// Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
-	DestinationParent    string   `protobuf:"bytes,2,opt,name=destination_parent,json=destinationParent" json:"destination_parent,omitempty"`
+	DestinationParent    string   `protobuf:"bytes,2,opt,name=destination_parent,json=destinationParent,proto3" json:"destination_parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -588,10 +588,10 @@ type UpdateFolderRequest struct {
 	// The new definition of the Folder. It must include a
 	// a `name` and `display_name` field. The other fields
 	// will be ignored.
-	Folder *Folder `protobuf:"bytes,1,opt,name=folder" json:"folder,omitempty"`
+	Folder *Folder `protobuf:"bytes,1,opt,name=folder,proto3" json:"folder,omitempty"`
 	// Fields to be updated.
 	// Only the `display_name` can be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -639,10 +639,10 @@ func (m *UpdateFolderRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteFolderRequest struct {
 	// the resource name of the Folder to be deleted.
 	// Must be of the form `folders/{folder_id}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Instructs DeleteFolderAction to delete a folder even when the folder is not
 	// empty.
-	RecursiveDelete      bool     `protobuf:"varint,2,opt,name=recursive_delete,json=recursiveDelete" json:"recursive_delete,omitempty"`
+	RecursiveDelete      bool     `protobuf:"varint,2,opt,name=recursive_delete,json=recursiveDelete,proto3" json:"recursive_delete,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -690,7 +690,7 @@ func (m *DeleteFolderRequest) GetRecursiveDelete() bool {
 type UndeleteFolderRequest struct {
 	// The resource name of the Folder to undelete.
 	// Must be of the form `folders/{folder_id}`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -730,15 +730,15 @@ func (m *UndeleteFolderRequest) GetName() string {
 // Metadata describing a long running folder operation
 type FolderOperation struct {
 	// The display name of the folder.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The type of this operation.
-	OperationType FolderOperation_OperationType `protobuf:"varint,2,opt,name=operation_type,json=operationType,enum=google.cloud.resourcemanager.v2.FolderOperation_OperationType" json:"operation_type,omitempty"`
+	OperationType FolderOperation_OperationType `protobuf:"varint,2,opt,name=operation_type,json=operationType,proto3,enum=google.cloud.resourcemanager.v2.FolderOperation_OperationType" json:"operation_type,omitempty"`
 	// The resource name of the folder's parent.
 	// Only applicable when the operation_type is MOVE.
-	SourceParent string `protobuf:"bytes,3,opt,name=source_parent,json=sourceParent" json:"source_parent,omitempty"`
+	SourceParent string `protobuf:"bytes,3,opt,name=source_parent,json=sourceParent,proto3" json:"source_parent,omitempty"`
 	// The resource name of the folder or organization we are either creating
 	// the folder under or moving the folder to.
-	DestinationParent    string   `protobuf:"bytes,4,opt,name=destination_parent,json=destinationParent" json:"destination_parent,omitempty"`
+	DestinationParent    string   `protobuf:"bytes,4,opt,name=destination_parent,json=destinationParent,proto3" json:"destination_parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1049,8 +1049,7 @@ func (c *foldersClient) TestIamPermissions(ctx context.Context, in *v1.TestIamPe
 	return out, nil
 }
 
-// Server API for Folders service
-
+// FoldersServer is the server API for Folders service.
 type FoldersServer interface {
 	// Lists the Folders that are direct descendants of supplied parent resource.
 	// List provides a strongly consistent view of the Folders underneath
diff --git a/googleapis/cloud/runtimeconfig/v1beta1/resources.pb.go b/googleapis/cloud/runtimeconfig/v1beta1/resources.pb.go
index 2def256e695f41b56b4ca0c8452a44b6275017cc..8e5647b98b6b3a4681462f454d85a368746ea986 100644
--- a/googleapis/cloud/runtimeconfig/v1beta1/resources.pb.go
+++ b/googleapis/cloud/runtimeconfig/v1beta1/resources.pb.go
@@ -69,9 +69,9 @@ type RuntimeConfig struct {
 	// 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.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional description of the RuntimeConfig object.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -137,7 +137,7 @@ type Variable struct {
 	// The length of a `[VARIABLE_NAME]` must be less than 256 bytes.
 	//
 	// Once you create a variable, you cannot change the variable name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The the value of the variable. It can be either a binary or a string
 	// value. You must specify one of either `value` or `text`. Specifying both
 	// will cause the server to return an error.
@@ -147,11 +147,11 @@ type Variable struct {
 	//	*Variable_Text
 	Contents isVariable_Contents `protobuf_oneof:"contents"`
 	// [Output Only] The time of the last variable update.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// [Ouput only] The current state of the variable. The variable state indicates
 	// the outcome of the `variables().watch` call and is visible through the
 	// `get` and `list` calls.
-	State                VariableState `protobuf:"varint,4,opt,name=state,enum=google.cloud.runtimeconfig.v1beta1.VariableState" json:"state,omitempty"`
+	State                VariableState `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.runtimeconfig.v1beta1.VariableState" json:"state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -189,7 +189,7 @@ type Variable_Value struct {
 	Value []byte `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
 }
 type Variable_Text struct {
-	Text string `protobuf:"bytes,5,opt,name=text,oneof"`
+	Text string `protobuf:"bytes,5,opt,name=text,proto3,oneof"`
 }
 
 func (*Variable_Value) isVariable_Contents() {}
@@ -345,7 +345,7 @@ type isEndCondition_Condition interface {
 }
 
 type EndCondition_Cardinality_ struct {
-	Cardinality *EndCondition_Cardinality `protobuf:"bytes,1,opt,name=cardinality,oneof"`
+	Cardinality *EndCondition_Cardinality `protobuf:"bytes,1,opt,name=cardinality,proto3,oneof"`
 }
 
 func (*EndCondition_Cardinality_) isEndCondition_Condition() {}
@@ -435,10 +435,10 @@ func _EndCondition_OneofSizer(msg proto.Message) (n int) {
 // path prefix are counted.
 type EndCondition_Cardinality struct {
 	// The root of the variable subtree to monitor. For example, `/foo`.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// The number variables under the `path` that must exist to meet this
 	// condition. Defaults to 1 if not specified.
-	Number               int32    `protobuf:"varint,2,opt,name=number" json:"number,omitempty"`
+	Number               int32    `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -508,36 +508,36 @@ type Waiter struct {
 	// of `[WAITER_NAME]` must be less than 64 bytes.
 	//
 	// After you create a Waiter resource, you cannot change the resource name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// [Required] Specifies the timeout of the waiter in seconds, beginning from
 	// the instant that `waiters().create` method is called. If this time elapses
 	// before the success or failure conditions are met, the waiter fails and sets
 	// the `error` code to `DEADLINE_EXCEEDED`.
-	Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// [Optional] The failure condition of this waiter. If this condition is met,
 	// `done` will be set to `true` and the `error` code will be set to `ABORTED`.
 	// The failure condition takes precedence over the success condition. If both
 	// conditions are met, a failure will be indicated. This value is optional; if
 	// no failure condition is set, the only failure scenario will be a timeout.
-	Failure *EndCondition `protobuf:"bytes,3,opt,name=failure" json:"failure,omitempty"`
+	Failure *EndCondition `protobuf:"bytes,3,opt,name=failure,proto3" json:"failure,omitempty"`
 	// [Required] The success condition. If this condition is met, `done` will be
 	// set to `true` and the `error` value will remain unset. The failure condition
 	// takes precedence over the success condition. If both conditions are met, a
 	// failure will be indicated.
-	Success *EndCondition `protobuf:"bytes,4,opt,name=success" json:"success,omitempty"`
+	Success *EndCondition `protobuf:"bytes,4,opt,name=success,proto3" json:"success,omitempty"`
 	// [Output Only] The instant at which this Waiter resource was created. Adding
 	// the value of `timeout` to this instant yields the timeout deadline for the
 	// waiter.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// [Output Only] If the value is `false`, it means the waiter is still waiting
 	// for one of its conditions to be met.
 	//
 	// If true, the waiter has finished. If the waiter finished due to a timeout
 	// or failure, `error` will be set.
-	Done bool `protobuf:"varint,6,opt,name=done" json:"done,omitempty"`
+	Done bool `protobuf:"varint,6,opt,name=done,proto3" json:"done,omitempty"`
 	// [Output Only] If the waiter ended due to a failure or timeout, this value
 	// will be set.
-	Error                *status.Status `protobuf:"bytes,7,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
diff --git a/googleapis/cloud/runtimeconfig/v1beta1/runtimeconfig.pb.go b/googleapis/cloud/runtimeconfig/v1beta1/runtimeconfig.pb.go
index 07037b3aa06a16886469da6eb46be8bba27bb967..13d71d4ad6ab94dcdcf6f73ff4735145c2896005 100644
--- a/googleapis/cloud/runtimeconfig/v1beta1/runtimeconfig.pb.go
+++ b/googleapis/cloud/runtimeconfig/v1beta1/runtimeconfig.pb.go
@@ -31,13 +31,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type ListConfigsRequest struct {
 	// The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)
 	// for this request, in the format `projects/[PROJECT_ID]`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Specifies the number of results to return per page. If there are fewer
 	// elements than the specified number, returns all elements.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 	// returned by a previous list request to get the next page of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -93,13 +93,13 @@ func (m *ListConfigsRequest) GetPageToken() string {
 type ListConfigsResponse struct {
 	// A list of the configurations in the project. The order of returned
 	// objects is arbitrary; that is, it is not ordered in any particular way.
-	Configs []*RuntimeConfig `protobuf:"bytes,1,rep,name=configs" json:"configs,omitempty"`
+	Configs []*RuntimeConfig `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
 	// This token allows you to get the next page of results for list requests.
 	// If the number of results is larger than `pageSize`, 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
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -148,7 +148,7 @@ type GetConfigRequest struct {
 	// The name of the RuntimeConfig resource to retrieve, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -189,9 +189,9 @@ func (m *GetConfigRequest) GetName() string {
 type CreateConfigRequest struct {
 	// The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)
 	// for this request, in the format `projects/[PROJECT_ID]`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The RuntimeConfig to create.
-	Config *RuntimeConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config *RuntimeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	// An optional but recommended unique `request_id`. If the server
 	// receives two `create()` requests  with the same
 	// `request_id`, then the second request will be ignored and the
@@ -202,7 +202,7 @@ type CreateConfigRequest struct {
 	// `request_id` strings.
 	//
 	// `request_id` strings are limited to 64 characters.
-	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -258,9 +258,9 @@ type UpdateConfigRequest struct {
 	// The name of the RuntimeConfig resource to update, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The config resource to update.
-	Config               *RuntimeConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config               *RuntimeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -309,7 +309,7 @@ type DeleteConfigRequest struct {
 	// The RuntimeConfig resource to delete, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -352,21 +352,21 @@ type ListVariablesRequest struct {
 	// The configuration must exist beforehand; the path must by in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Filters variables by matching the specified filter. For example:
 	//
 	// `projects/example-project/config/[CONFIG_NAME]/variables/example-variable`.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Specifies the number of results to return per page. If there are fewer
 	// elements than the specified number, returns all elements.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 	// returned by a previous list request to get the next page of results.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The flag indicates whether the user wants to return values of variables.
 	// If true, then only those variables that user has IAM GetVariable permission
 	// will be returned along with their values.
-	ReturnValues         bool     `protobuf:"varint,5,opt,name=return_values,json=returnValues" json:"return_values,omitempty"`
+	ReturnValues         bool     `protobuf:"varint,5,opt,name=return_values,json=returnValues,proto3" json:"return_values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -435,13 +435,13 @@ func (m *ListVariablesRequest) GetReturnValues() bool {
 type ListVariablesResponse struct {
 	// A list of variables and their values. The order of returned variable
 	// objects is arbitrary.
-	Variables []*Variable `protobuf:"bytes,1,rep,name=variables" json:"variables,omitempty"`
+	Variables []*Variable `protobuf:"bytes,1,rep,name=variables,proto3" json:"variables,omitempty"`
 	// This token allows you to get the next page of results for list requests.
 	// If the number of results is larger than `pageSize`, 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
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -490,14 +490,14 @@ type WatchVariableRequest struct {
 	// The name of the variable to watch, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// If specified, checks the current timestamp of the variable and if the
 	// current timestamp is newer than `newerThan` timestamp, the method returns
 	// immediately.
 	//
 	// If not specified or the variable has an older timestamp, the watcher waits
 	// for a the value to change before returning.
-	NewerThan            *timestamp.Timestamp `protobuf:"bytes,4,opt,name=newer_than,json=newerThan" json:"newer_than,omitempty"`
+	NewerThan            *timestamp.Timestamp `protobuf:"bytes,4,opt,name=newer_than,json=newerThan,proto3" json:"newer_than,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -546,7 +546,7 @@ type GetVariableRequest struct {
 	// The name of the variable to return, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIBLE_NAME]`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -589,9 +589,9 @@ type CreateVariableRequest struct {
 	// The configuration must exist beforehand; the path must by in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The variable to create.
-	Variable *Variable `protobuf:"bytes,2,opt,name=variable" json:"variable,omitempty"`
+	Variable *Variable `protobuf:"bytes,2,opt,name=variable,proto3" json:"variable,omitempty"`
 	// An optional but recommended unique `request_id`. If the server
 	// receives two `create()` requests  with the same
 	// `request_id`, then the second request will be ignored and the
@@ -602,7 +602,7 @@ type CreateVariableRequest struct {
 	// `request_id` strings.
 	//
 	// `request_id` strings are limited to 64 characters.
-	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -658,9 +658,9 @@ type UpdateVariableRequest struct {
 	// The name of the variable to update, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The variable to update.
-	Variable             *Variable `protobuf:"bytes,2,opt,name=variable" json:"variable,omitempty"`
+	Variable             *Variable `protobuf:"bytes,2,opt,name=variable,proto3" json:"variable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -709,10 +709,10 @@ type DeleteVariableRequest struct {
 	// The name of the variable to delete, in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Set to `true` to recursively delete multiple variables with the same
 	// prefix.
-	Recursive            bool     `protobuf:"varint,2,opt,name=recursive" json:"recursive,omitempty"`
+	Recursive            bool     `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -762,13 +762,13 @@ type ListWaitersRequest struct {
 	// The configuration must exist beforehand; the path must by in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Specifies the number of results to return per page. If there are fewer
 	// elements than the specified number, returns all elements.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 	// returned by a previous list request to get the next page of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -823,13 +823,13 @@ func (m *ListWaitersRequest) GetPageToken() string {
 // Order of returned waiter objects is arbitrary.
 type ListWaitersResponse struct {
 	// Found waiters in the project.
-	Waiters []*Waiter `protobuf:"bytes,1,rep,name=waiters" json:"waiters,omitempty"`
+	Waiters []*Waiter `protobuf:"bytes,1,rep,name=waiters,proto3" json:"waiters,omitempty"`
 	// This token allows you to get the next page of results for list requests.
 	// If the number of results is larger than `pageSize`, 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
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -879,7 +879,7 @@ type GetWaiterRequest struct {
 	// format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -922,9 +922,9 @@ type CreateWaiterRequest struct {
 	// The configuration must exist beforehand; the path must by in the format:
 	//
 	// `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The Waiter resource to create.
-	Waiter *Waiter `protobuf:"bytes,2,opt,name=waiter" json:"waiter,omitempty"`
+	Waiter *Waiter `protobuf:"bytes,2,opt,name=waiter,proto3" json:"waiter,omitempty"`
 	// An optional but recommended unique `request_id`. If the server
 	// receives two `create()` requests  with the same
 	// `request_id`, then the second request will be ignored and the
@@ -935,7 +935,7 @@ type CreateWaiterRequest struct {
 	// `request_id` strings.
 	//
 	// `request_id` strings are limited to 64 characters.
-	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -991,7 +991,7 @@ type DeleteWaiterRequest struct {
 	// The Waiter resource to delete, in the format:
 	//
 	//  `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1267,8 +1267,7 @@ func (c *runtimeConfigManagerClient) DeleteWaiter(ctx context.Context, in *Delet
 	return out, nil
 }
 
-// Server API for RuntimeConfigManager service
-
+// RuntimeConfigManagerServer is the server API for RuntimeConfigManager service.
 type RuntimeConfigManagerServer interface {
 	// Lists all the RuntimeConfig resources within project.
 	ListConfigs(context.Context, *ListConfigsRequest) (*ListConfigsResponse, error)
diff --git a/googleapis/cloud/speech/v1/cloud_speech.pb.go b/googleapis/cloud/speech/v1/cloud_speech.pb.go
index e169b4895559e28e18961cc69bd90aef073f8322..0140ecf69c483223a7e12fc116dc6ac98908dd02 100644
--- a/googleapis/cloud/speech/v1/cloud_speech.pb.go
+++ b/googleapis/cloud/speech/v1/cloud_speech.pb.go
@@ -143,9 +143,9 @@ func (StreamingRecognizeResponse_SpeechEventType) EnumDescriptor() ([]byte, []in
 type RecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -194,9 +194,9 @@ func (m *RecognizeRequest) GetAudio() *RecognitionAudio {
 type LongRunningRecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -286,7 +286,7 @@ type isStreamingRecognizeRequest_StreamingRequest interface {
 }
 
 type StreamingRecognizeRequest_StreamingConfig struct {
-	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,oneof"`
+	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,proto3,oneof"`
 }
 type StreamingRecognizeRequest_AudioContent struct {
 	AudioContent []byte `protobuf:"bytes,2,opt,name=audio_content,json=audioContent,proto3,oneof"`
@@ -391,7 +391,7 @@ func _StreamingRecognizeRequest_OneofSizer(msg proto.Message) (n int) {
 type StreamingRecognitionConfig struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Optional* If `false` or omitted, the recognizer will perform continuous
 	// recognition (continuing to wait for and process audio even if the user
 	// pauses speaking) until the client closes the input stream (gRPC API) or
@@ -403,12 +403,12 @@ type StreamingRecognitionConfig struct {
 	// `END_OF_SINGLE_UTTERANCE` event and cease recognition. It will return no
 	// more than one `StreamingRecognitionResult` with the `is_final` flag set to
 	// `true`.
-	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance" json:"single_utterance,omitempty"`
+	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"`
 	// *Optional* If `true`, interim results (tentative hypotheses) may be
 	// returned as they become available (these interim results are indicated with
 	// the `is_final=false` flag).
 	// If `false` or omitted, only `is_final=true` result(s) are returned.
-	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults" json:"interim_results,omitempty"`
+	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults,proto3" json:"interim_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -463,38 +463,38 @@ func (m *StreamingRecognitionConfig) GetInterimResults() bool {
 // request.
 type RecognitionConfig struct {
 	// *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
-	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,enum=google.cloud.speech.v1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
+	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.cloud.speech.v1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
 	// *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).
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// *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.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// *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.
-	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives" json:"max_alternatives,omitempty"`
+	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives,proto3" json:"max_alternatives,omitempty"`
 	// *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.
-	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter" json:"profanity_filter,omitempty"`
+	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter,proto3" json:"profanity_filter,omitempty"`
 	// *Optional* A means to provide context to assist the speech recognition.
-	SpeechContexts []*SpeechContext `protobuf:"bytes,6,rep,name=speech_contexts,json=speechContexts" json:"speech_contexts,omitempty"`
+	SpeechContexts []*SpeechContext `protobuf:"bytes,6,rep,name=speech_contexts,json=speechContexts,proto3" json:"speech_contexts,omitempty"`
 	// *Optional* If `true`, the top result includes a list of words and
 	// the start and end time offsets (timestamps) for those words. If
 	// `false`, no word-level time offset information is returned. The default is
 	// `false`.
-	EnableWordTimeOffsets bool     `protobuf:"varint,8,opt,name=enable_word_time_offsets,json=enableWordTimeOffsets" json:"enable_word_time_offsets,omitempty"`
+	EnableWordTimeOffsets bool     `protobuf:"varint,8,opt,name=enable_word_time_offsets,json=enableWordTimeOffsets,proto3" json:"enable_word_time_offsets,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
 	XXX_unrecognized      []byte   `json:"-"`
 	XXX_sizecache         int32    `json:"-"`
@@ -582,7 +582,7 @@ type SpeechContext struct {
 	// 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).
-	Phrases              []string `protobuf:"bytes,1,rep,name=phrases" json:"phrases,omitempty"`
+	Phrases              []string `protobuf:"bytes,1,rep,name=phrases,proto3" json:"phrases,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -668,7 +668,7 @@ type RecognitionAudio_Content struct {
 	Content []byte `protobuf:"bytes,1,opt,name=content,proto3,oneof"`
 }
 type RecognitionAudio_Uri struct {
-	Uri string `protobuf:"bytes,2,opt,name=uri,oneof"`
+	Uri string `protobuf:"bytes,2,opt,name=uri,proto3,oneof"`
 }
 
 func (*RecognitionAudio_Content) isRecognitionAudio_AudioSource() {}
@@ -767,7 +767,7 @@ func _RecognitionAudio_OneofSizer(msg proto.Message) (n int) {
 type RecognizeResponse struct {
 	// *Output-only* Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -812,7 +812,7 @@ func (m *RecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type LongRunningRecognizeResponse struct {
 	// *Output-only* Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -855,11 +855,11 @@ func (m *LongRunningRecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type LongRunningRecognizeMetadata struct {
 	// Approximate percentage of audio processed thus far. Guaranteed to be 100
 	// when the audio is fully processed and the results are available.
-	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent processing update.
-	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"`
+	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -962,14 +962,14 @@ func (m *LongRunningRecognizeMetadata) GetLastUpdateTime() *timestamp.Timestamp
 type StreamingRecognizeResponse struct {
 	// *Output-only* If set, returns a [google.rpc.Status][google.rpc.Status] message that
 	// specifies the error for the operation.
-	Error *status.Status `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
+	Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
 	// *Output-only* This repeated list contains zero or more results that
 	// correspond to consecutive portions of the audio currently being processed.
 	// It contains zero or more `is_final=false` results followed by zero or one
 	// `is_final=true` result (the newly settled portion).
-	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	// *Output-only* Indicates the type of speech event.
-	SpeechEventType      StreamingRecognizeResponse_SpeechEventType `protobuf:"varint,4,opt,name=speech_event_type,json=speechEventType,enum=google.cloud.speech.v1.StreamingRecognizeResponse_SpeechEventType" json:"speech_event_type,omitempty"`
+	SpeechEventType      StreamingRecognizeResponse_SpeechEventType `protobuf:"varint,4,opt,name=speech_event_type,json=speechEventType,proto3,enum=google.cloud.speech.v1.StreamingRecognizeResponse_SpeechEventType" json:"speech_event_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
 	XXX_unrecognized     []byte                                     `json:"-"`
 	XXX_sizecache        int32                                      `json:"-"`
@@ -1025,19 +1025,19 @@ func (m *StreamingRecognizeResponse) GetSpeechEventType() StreamingRecognizeResp
 type StreamingRecognitionResult struct {
 	// *Output-only* May contain one or more recognition hypotheses (up to the
 	// maximum specified in `max_alternatives`).
-	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	// *Output-only* If `false`, this `StreamingRecognitionResult` represents an
 	// interim result that may change. If `true`, this is the final time the
 	// speech service will return this particular `StreamingRecognitionResult`,
 	// the recognizer will not return any further hypotheses for this portion of
 	// the transcript and corresponding audio.
-	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal" json:"is_final,omitempty"`
+	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
 	// *Output-only* An estimate of the likelihood that the recognizer will not
 	// change its guess about this interim result. Values range from 0.0
 	// (completely unstable) to 1.0 (completely stable).
 	// This field is only provided for interim results (`is_final=false`).
 	// The default of 0.0 is a sentinel value indicating `stability` was not set.
-	Stability            float32  `protobuf:"fixed32,3,opt,name=stability" json:"stability,omitempty"`
+	Stability            float32  `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1094,7 +1094,7 @@ type SpeechRecognitionResult struct {
 	// maximum specified in `max_alternatives`).
 	// These alternatives are ordered in terms of accuracy, with the top (first)
 	// alternative being the most probable, as ranked by the recognizer.
-	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -1134,16 +1134,16 @@ func (m *SpeechRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternat
 // Alternative hypotheses (a.k.a. n-best list).
 type SpeechRecognitionAlternative struct {
 	// *Output-only* Transcript text representing the words that the user spoke.
-	Transcript string `protobuf:"bytes,1,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// *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 consistent.
 	// The default of 0.0 is a sentinel value indicating `confidence` was not set.
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// *Output-only* A list of word-specific information for each recognized word.
-	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1204,16 +1204,16 @@ type WordInfo struct {
 	// in the top hypothesis.
 	// This is an experimental feature and the accuracy of the time offset can
 	// vary.
-	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// *Output-only* Time offset relative to the beginning of the audio,
 	// and corresponding to the end of the spoken word.
 	// This field is only set if `enable_word_time_offsets=true` and only
 	// in the top hypothesis.
 	// This is an experimental feature and the accuracy of the time offset can
 	// vary.
-	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// *Output-only* The word corresponding to this set of information.
-	Word                 string   `protobuf:"bytes,3,opt,name=word" json:"word,omitempty"`
+	Word                 string   `protobuf:"bytes,3,opt,name=word,proto3" json:"word,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1366,8 +1366,7 @@ func (x *speechStreamingRecognizeClient) Recv() (*StreamingRecognizeResponse, er
 	return m, nil
 }
 
-// Server API for Speech service
-
+// SpeechServer is the server API for Speech service.
 type SpeechServer interface {
 	// Performs synchronous speech recognition: receive results after all audio
 	// has been sent and processed.
diff --git a/googleapis/cloud/speech/v1beta1/cloud_speech.pb.go b/googleapis/cloud/speech/v1beta1/cloud_speech.pb.go
index db6a62cd1b83879ce7562e7fd86d6dd17642c192..81bd0ede4c839bef2cc32533e29dfb670e7041ed 100644
--- a/googleapis/cloud/speech/v1beta1/cloud_speech.pb.go
+++ b/googleapis/cloud/speech/v1beta1/cloud_speech.pb.go
@@ -141,9 +141,9 @@ func (StreamingRecognizeResponse_EndpointerType) EnumDescriptor() ([]byte, []int
 type SyncRecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -191,9 +191,9 @@ func (m *SyncRecognizeRequest) GetAudio() *RecognitionAudio {
 type AsyncRecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -283,7 +283,7 @@ type isStreamingRecognizeRequest_StreamingRequest interface {
 }
 
 type StreamingRecognizeRequest_StreamingConfig struct {
-	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,oneof"`
+	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,proto3,oneof"`
 }
 type StreamingRecognizeRequest_AudioContent struct {
 	AudioContent []byte `protobuf:"bytes,2,opt,name=audio_content,json=audioContent,proto3,oneof"`
@@ -388,7 +388,7 @@ func _StreamingRecognizeRequest_OneofSizer(msg proto.Message) (n int) {
 type StreamingRecognitionConfig struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Optional* If `false` or omitted, the recognizer will perform continuous
 	// recognition (continuing to wait for and process audio even if the user
 	// pauses speaking) until the client closes the input stream (gRPC API) or
@@ -399,12 +399,12 @@ type StreamingRecognitionConfig struct {
 	// detects that the user has paused or stopped speaking, it will return an
 	// `END_OF_UTTERANCE` event and cease recognition. It will return no more than
 	// one `StreamingRecognitionResult` with the `is_final` flag set to `true`.
-	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance" json:"single_utterance,omitempty"`
+	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"`
 	// *Optional* If `true`, interim results (tentative hypotheses) may be
 	// returned as they become available (these interim results are indicated with
 	// the `is_final=false` flag).
 	// If `false` or omitted, only `is_final=true` result(s) are returned.
-	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults" json:"interim_results,omitempty"`
+	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults,proto3" json:"interim_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -459,33 +459,33 @@ func (m *StreamingRecognitionConfig) GetInterimResults() bool {
 // request.
 type RecognitionConfig struct {
 	// *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
-	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,enum=google.cloud.speech.v1beta1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
+	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.cloud.speech.v1beta1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
 	// *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).
-	SampleRate int32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate" json:"sample_rate,omitempty"`
+	SampleRate int32 `protobuf:"varint,2,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"`
 	// *Optional* The language of the supplied audio as a BCP-47 language tag.
 	// Example: "en-GB"  https://www.rfc-editor.org/rfc/bcp/bcp47.txt
 	// If omitted, defaults to "en-US". See
 	// [Language Support](https://cloud.google.com/speech/docs/languages)
 	// for a list of the currently supported language codes.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// *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.
-	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives" json:"max_alternatives,omitempty"`
+	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives,proto3" json:"max_alternatives,omitempty"`
 	// *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.
-	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter" json:"profanity_filter,omitempty"`
+	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter,proto3" json:"profanity_filter,omitempty"`
 	// *Optional* A means to provide context to assist the speech recognition.
-	SpeechContext        *SpeechContext `protobuf:"bytes,6,opt,name=speech_context,json=speechContext" json:"speech_context,omitempty"`
+	SpeechContext        *SpeechContext `protobuf:"bytes,6,opt,name=speech_context,json=speechContext,proto3" json:"speech_context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -566,7 +566,7 @@ type SpeechContext struct {
 	// 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).
-	Phrases              []string `protobuf:"bytes,1,rep,name=phrases" json:"phrases,omitempty"`
+	Phrases              []string `protobuf:"bytes,1,rep,name=phrases,proto3" json:"phrases,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -651,7 +651,7 @@ type RecognitionAudio_Content struct {
 	Content []byte `protobuf:"bytes,1,opt,name=content,proto3,oneof"`
 }
 type RecognitionAudio_Uri struct {
-	Uri string `protobuf:"bytes,2,opt,name=uri,oneof"`
+	Uri string `protobuf:"bytes,2,opt,name=uri,proto3,oneof"`
 }
 
 func (*RecognitionAudio_Content) isRecognitionAudio_AudioSource() {}
@@ -750,7 +750,7 @@ func _RecognitionAudio_OneofSizer(msg proto.Message) (n int) {
 type SyncRecognizeResponse struct {
 	// *Output-only* Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -794,7 +794,7 @@ func (m *SyncRecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type AsyncRecognizeResponse struct {
 	// *Output-only* Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -837,11 +837,11 @@ func (m *AsyncRecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type AsyncRecognizeMetadata struct {
 	// Approximate percentage of audio processed thus far. Guaranteed to be 100
 	// when the audio is fully processed and the results are available.
-	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent processing update.
-	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"`
+	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -955,18 +955,18 @@ func (m *AsyncRecognizeMetadata) GetLastUpdateTime() *timestamp.Timestamp {
 type StreamingRecognizeResponse struct {
 	// *Output-only* If set, returns a [google.rpc.Status][google.rpc.Status] message that
 	// specifies the error for the operation.
-	Error *status.Status `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
+	Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
 	// *Output-only* This repeated list contains zero or more results that
 	// correspond to consecutive portions of the audio currently being processed.
 	// It contains zero or one `is_final=true` result (the newly settled portion),
 	// followed by zero or more `is_final=false` results.
-	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	// *Output-only* Indicates the lowest index in the `results` array that has
 	// changed. The repeated `StreamingRecognitionResult` results overwrite past
 	// results at this index and higher.
-	ResultIndex int32 `protobuf:"varint,3,opt,name=result_index,json=resultIndex" json:"result_index,omitempty"`
+	ResultIndex int32 `protobuf:"varint,3,opt,name=result_index,json=resultIndex,proto3" json:"result_index,omitempty"`
 	// *Output-only* Indicates the type of endpointer event.
-	EndpointerType       StreamingRecognizeResponse_EndpointerType `protobuf:"varint,4,opt,name=endpointer_type,json=endpointerType,enum=google.cloud.speech.v1beta1.StreamingRecognizeResponse_EndpointerType" json:"endpointer_type,omitempty"`
+	EndpointerType       StreamingRecognizeResponse_EndpointerType `protobuf:"varint,4,opt,name=endpointer_type,json=endpointerType,proto3,enum=google.cloud.speech.v1beta1.StreamingRecognizeResponse_EndpointerType" json:"endpointer_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
 	XXX_unrecognized     []byte                                    `json:"-"`
 	XXX_sizecache        int32                                     `json:"-"`
@@ -1029,19 +1029,19 @@ func (m *StreamingRecognizeResponse) GetEndpointerType() StreamingRecognizeRespo
 type StreamingRecognitionResult struct {
 	// *Output-only* May contain one or more recognition hypotheses (up to the
 	// maximum specified in `max_alternatives`).
-	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	// *Output-only* If `false`, this `StreamingRecognitionResult` represents an
 	// interim result that may change. If `true`, this is the final time the
 	// speech service will return this particular `StreamingRecognitionResult`,
 	// the recognizer will not return any further hypotheses for this portion of
 	// the transcript and corresponding audio.
-	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal" json:"is_final,omitempty"`
+	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
 	// *Output-only* An estimate of the likelihood that the recognizer will not
 	// change its guess about this interim result. Values range from 0.0
 	// (completely unstable) to 1.0 (completely stable).
 	// This field is only provided for interim results (`is_final=false`).
 	// The default of 0.0 is a sentinel value indicating `stability` was not set.
-	Stability            float32  `protobuf:"fixed32,3,opt,name=stability" json:"stability,omitempty"`
+	Stability            float32  `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1096,7 +1096,7 @@ func (m *StreamingRecognitionResult) GetStability() float32 {
 type SpeechRecognitionResult struct {
 	// *Output-only* May contain one or more recognition hypotheses (up to the
 	// maximum specified in `max_alternatives`).
-	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -1136,7 +1136,7 @@ func (m *SpeechRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternat
 // Alternative hypotheses (a.k.a. n-best list).
 type SpeechRecognitionAlternative struct {
 	// *Output-only* Transcript text representing the words that the user spoke.
-	Transcript string `protobuf:"bytes,1,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// *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
@@ -1144,7 +1144,7 @@ type SpeechRecognitionAlternative struct {
 	// `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.
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1291,8 +1291,7 @@ func (x *speechStreamingRecognizeClient) Recv() (*StreamingRecognizeResponse, er
 	return m, nil
 }
 
-// Server API for Speech service
-
+// SpeechServer is the server API for Speech service.
 type SpeechServer interface {
 	// Performs synchronous speech recognition: receive results after all audio
 	// has been sent and processed.
diff --git a/googleapis/cloud/speech/v1p1beta1/cloud_speech.pb.go b/googleapis/cloud/speech/v1p1beta1/cloud_speech.pb.go
index 0535088bb7364f1182478b2e8ed1a63f2040d4dd..c1cd937db81b64698ef6427d1291772e5c619e15 100644
--- a/googleapis/cloud/speech/v1p1beta1/cloud_speech.pb.go
+++ b/googleapis/cloud/speech/v1p1beta1/cloud_speech.pb.go
@@ -327,9 +327,9 @@ func (StreamingRecognizeResponse_SpeechEventType) EnumDescriptor() ([]byte, []in
 type RecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -378,9 +378,9 @@ func (m *RecognizeRequest) GetAudio() *RecognitionAudio {
 type LongRunningRecognizeRequest struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Required* The audio data to be recognized.
-	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio" json:"audio,omitempty"`
+	Audio                *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -470,7 +470,7 @@ type isStreamingRecognizeRequest_StreamingRequest interface {
 }
 
 type StreamingRecognizeRequest_StreamingConfig struct {
-	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,oneof"`
+	StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,proto3,oneof"`
 }
 type StreamingRecognizeRequest_AudioContent struct {
 	AudioContent []byte `protobuf:"bytes,2,opt,name=audio_content,json=audioContent,proto3,oneof"`
@@ -575,7 +575,7 @@ func _StreamingRecognizeRequest_OneofSizer(msg proto.Message) (n int) {
 type StreamingRecognitionConfig struct {
 	// *Required* Provides information to the recognizer that specifies how to
 	// process the request.
-	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
+	Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
 	// *Optional* If `false` or omitted, the recognizer will perform continuous
 	// recognition (continuing to wait for and process audio even if the user
 	// pauses speaking) until the client closes the input stream (gRPC API) or
@@ -587,12 +587,12 @@ type StreamingRecognitionConfig struct {
 	// `END_OF_SINGLE_UTTERANCE` event and cease recognition. It will return no
 	// more than one `StreamingRecognitionResult` with the `is_final` flag set to
 	// `true`.
-	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance" json:"single_utterance,omitempty"`
+	SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"`
 	// *Optional* If `true`, interim results (tentative hypotheses) may be
 	// returned as they become available (these interim results are indicated with
 	// the `is_final=false` flag).
 	// If `false` or omitted, only `is_final=true` result(s) are returned.
-	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults" json:"interim_results,omitempty"`
+	InterimResults       bool     `protobuf:"varint,3,opt,name=interim_results,json=interimResults,proto3" json:"interim_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -649,7 +649,7 @@ type RecognitionConfig struct {
 	// Encoding of audio data sent in all `RecognitionAudio` messages.
 	// This field is optional for `FLAC` and `WAV` audio files and required
 	// for all other audio formats. For details, see [AudioEncoding][google.cloud.speech.v1p1beta1.RecognitionConfig.AudioEncoding].
-	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,enum=google.cloud.speech.v1p1beta1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
+	Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.cloud.speech.v1p1beta1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"`
 	// 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
@@ -657,32 +657,32 @@ type RecognitionConfig struct {
 	// the audio source (instead of re-sampling).
 	// This field is optional for `FLAC` and `WAV` audio files and required
 	// for all other audio formats. For details, see [AudioEncoding][google.cloud.speech.v1p1beta1.RecognitionConfig.AudioEncoding].
-	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	// *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.
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// *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.
-	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives" json:"max_alternatives,omitempty"`
+	MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives,proto3" json:"max_alternatives,omitempty"`
 	// *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.
-	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter" json:"profanity_filter,omitempty"`
+	ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter,proto3" json:"profanity_filter,omitempty"`
 	// *Optional* A means to provide context to assist the speech recognition.
-	SpeechContexts []*SpeechContext `protobuf:"bytes,6,rep,name=speech_contexts,json=speechContexts" json:"speech_contexts,omitempty"`
+	SpeechContexts []*SpeechContext `protobuf:"bytes,6,rep,name=speech_contexts,json=speechContexts,proto3" json:"speech_contexts,omitempty"`
 	// *Optional* If `true`, the top result includes a list of words and
 	// the start and end time offsets (timestamps) for those words. If
 	// `false`, no word-level time offset information is returned. The default is
 	// `false`.
-	EnableWordTimeOffsets bool `protobuf:"varint,8,opt,name=enable_word_time_offsets,json=enableWordTimeOffsets" json:"enable_word_time_offsets,omitempty"`
+	EnableWordTimeOffsets bool `protobuf:"varint,8,opt,name=enable_word_time_offsets,json=enableWordTimeOffsets,proto3" json:"enable_word_time_offsets,omitempty"`
 	// *Optional* If 'true', adds punctuation to recognition result hypotheses.
 	// This feature is only available in select languages. Setting this for
 	// requests in other languages has no effect at all.
@@ -690,9 +690,9 @@ type RecognitionConfig struct {
 	// NOTE: "This is currently offered as an experimental service, complimentary
 	// to all users. In the future this may be exclusively available as a
 	// premium feature."
-	EnableAutomaticPunctuation bool `protobuf:"varint,11,opt,name=enable_automatic_punctuation,json=enableAutomaticPunctuation" json:"enable_automatic_punctuation,omitempty"`
+	EnableAutomaticPunctuation bool `protobuf:"varint,11,opt,name=enable_automatic_punctuation,json=enableAutomaticPunctuation,proto3" json:"enable_automatic_punctuation,omitempty"`
 	// *Optional* Metadata regarding this request.
-	Metadata *RecognitionMetadata `protobuf:"bytes,9,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata *RecognitionMetadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	// *Optional* Which model to select for the given request. Select the model
 	// best suited to your domain to get best results. If a model is not
 	// explicitly specified, then we auto-select a model based on the parameters
@@ -725,7 +725,7 @@ type RecognitionConfig struct {
 	//         recorded at a 16khz or greater sampling rate.</td>
 	//   </tr>
 	// </table>
-	Model string `protobuf:"bytes,13,opt,name=model" json:"model,omitempty"`
+	Model string `protobuf:"bytes,13,opt,name=model,proto3" json:"model,omitempty"`
 	// *Optional* Set to true to use an enhanced model for speech recognition.
 	// You must also set the `model` field to a valid, enhanced model. If
 	// `use_enhanced` is set to true and the `model` field is not set, then
@@ -737,7 +737,7 @@ type RecognitionConfig struct {
 	// instructions in the [alpha documentation](/speech/data-sharing). If you set
 	// `use_enhanced` to true and you have not enabled audio logging, then you
 	// will receive an error.
-	UseEnhanced          bool     `protobuf:"varint,14,opt,name=use_enhanced,json=useEnhanced" json:"use_enhanced,omitempty"`
+	UseEnhanced          bool     `protobuf:"varint,14,opt,name=use_enhanced,json=useEnhanced,proto3" json:"use_enhanced,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -847,33 +847,33 @@ func (m *RecognitionConfig) GetUseEnhanced() bool {
 // Description of audio data to be recognized.
 type RecognitionMetadata struct {
 	// The use case most closely describing the audio content to be recognized.
-	InteractionType RecognitionMetadata_InteractionType `protobuf:"varint,1,opt,name=interaction_type,json=interactionType,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_InteractionType" json:"interaction_type,omitempty"`
+	InteractionType RecognitionMetadata_InteractionType `protobuf:"varint,1,opt,name=interaction_type,json=interactionType,proto3,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_InteractionType" json:"interaction_type,omitempty"`
 	// The industry vertical to which this speech recognition request most
 	// closely applies. This is most indicative of the topics contained
 	// in the audio.  Use the 6-digit NAICS code to identify the industry
 	// vertical - see https://www.naics.com/search/.
-	IndustryNaicsCodeOfAudio uint32 `protobuf:"varint,3,opt,name=industry_naics_code_of_audio,json=industryNaicsCodeOfAudio" json:"industry_naics_code_of_audio,omitempty"`
+	IndustryNaicsCodeOfAudio uint32 `protobuf:"varint,3,opt,name=industry_naics_code_of_audio,json=industryNaicsCodeOfAudio,proto3" json:"industry_naics_code_of_audio,omitempty"`
 	// The audio type that most closely describes the audio being recognized.
-	MicrophoneDistance RecognitionMetadata_MicrophoneDistance `protobuf:"varint,4,opt,name=microphone_distance,json=microphoneDistance,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_MicrophoneDistance" json:"microphone_distance,omitempty"`
+	MicrophoneDistance RecognitionMetadata_MicrophoneDistance `protobuf:"varint,4,opt,name=microphone_distance,json=microphoneDistance,proto3,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_MicrophoneDistance" json:"microphone_distance,omitempty"`
 	// The original media the speech was recorded on.
-	OriginalMediaType RecognitionMetadata_OriginalMediaType `protobuf:"varint,5,opt,name=original_media_type,json=originalMediaType,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_OriginalMediaType" json:"original_media_type,omitempty"`
+	OriginalMediaType RecognitionMetadata_OriginalMediaType `protobuf:"varint,5,opt,name=original_media_type,json=originalMediaType,proto3,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_OriginalMediaType" json:"original_media_type,omitempty"`
 	// The type of device the speech was recorded with.
-	RecordingDeviceType RecognitionMetadata_RecordingDeviceType `protobuf:"varint,6,opt,name=recording_device_type,json=recordingDeviceType,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_RecordingDeviceType" json:"recording_device_type,omitempty"`
+	RecordingDeviceType RecognitionMetadata_RecordingDeviceType `protobuf:"varint,6,opt,name=recording_device_type,json=recordingDeviceType,proto3,enum=google.cloud.speech.v1p1beta1.RecognitionMetadata_RecordingDeviceType" json:"recording_device_type,omitempty"`
 	// The device used to make the recording.  Examples 'Nexus 5X' or
 	// 'Polycom SoundStation IP 6000' or 'POTS' or 'VoIP' or
 	// 'Cardioid Microphone'.
-	RecordingDeviceName string `protobuf:"bytes,7,opt,name=recording_device_name,json=recordingDeviceName" json:"recording_device_name,omitempty"`
+	RecordingDeviceName string `protobuf:"bytes,7,opt,name=recording_device_name,json=recordingDeviceName,proto3" json:"recording_device_name,omitempty"`
 	// Mime type of the original audio file.  For example `audio/m4a`,
 	// `audio/x-alaw-basic`, `audio/mp3`, `audio/3gpp`.
 	// A list of possible audio mime types is maintained at
 	// http://www.iana.org/assignments/media-types/media-types.xhtml#audio
-	OriginalMimeType string `protobuf:"bytes,8,opt,name=original_mime_type,json=originalMimeType" json:"original_mime_type,omitempty"`
+	OriginalMimeType string `protobuf:"bytes,8,opt,name=original_mime_type,json=originalMimeType,proto3" json:"original_mime_type,omitempty"`
 	// Obfuscated (privacy-protected) ID of the user, to identify number of
 	// unique users using the service.
-	ObfuscatedId int64 `protobuf:"varint,9,opt,name=obfuscated_id,json=obfuscatedId" json:"obfuscated_id,omitempty"`
+	ObfuscatedId int64 `protobuf:"varint,9,opt,name=obfuscated_id,json=obfuscatedId,proto3" json:"obfuscated_id,omitempty"`
 	// Description of the content. Eg. "Recordings of federal supreme court
 	// hearings from 2012".
-	AudioTopic           string   `protobuf:"bytes,10,opt,name=audio_topic,json=audioTopic" json:"audio_topic,omitempty"`
+	AudioTopic           string   `protobuf:"bytes,10,opt,name=audio_topic,json=audioTopic,proto3" json:"audio_topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -975,7 +975,7 @@ type SpeechContext struct {
 	// 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).
-	Phrases              []string `protobuf:"bytes,1,rep,name=phrases" json:"phrases,omitempty"`
+	Phrases              []string `protobuf:"bytes,1,rep,name=phrases,proto3" json:"phrases,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1061,7 +1061,7 @@ type RecognitionAudio_Content struct {
 	Content []byte `protobuf:"bytes,1,opt,name=content,proto3,oneof"`
 }
 type RecognitionAudio_Uri struct {
-	Uri string `protobuf:"bytes,2,opt,name=uri,oneof"`
+	Uri string `protobuf:"bytes,2,opt,name=uri,proto3,oneof"`
 }
 
 func (*RecognitionAudio_Content) isRecognitionAudio_AudioSource() {}
@@ -1160,7 +1160,7 @@ func _RecognitionAudio_OneofSizer(msg proto.Message) (n int) {
 type RecognizeResponse struct {
 	// Output only. Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1205,7 +1205,7 @@ func (m *RecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type LongRunningRecognizeResponse struct {
 	// Output only. Sequential list of transcription results corresponding to
 	// sequential portions of audio.
-	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results              []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1248,11 +1248,11 @@ func (m *LongRunningRecognizeResponse) GetResults() []*SpeechRecognitionResult {
 type LongRunningRecognizeMetadata struct {
 	// Approximate percentage of audio processed thus far. Guaranteed to be 100
 	// when the audio is fully processed and the results are available.
-	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent processing update.
-	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"`
+	LastUpdateTime       *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1355,14 +1355,14 @@ func (m *LongRunningRecognizeMetadata) GetLastUpdateTime() *timestamp.Timestamp
 type StreamingRecognizeResponse struct {
 	// Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that
 	// specifies the error for the operation.
-	Error *status.Status `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
+	Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
 	// Output only. This repeated list contains zero or more results that
 	// correspond to consecutive portions of the audio currently being processed.
 	// It contains zero or one `is_final=true` result (the newly settled portion),
 	// followed by zero or more `is_final=false` results (the interim results).
-	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results" json:"results,omitempty"`
+	Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
 	// Output only. Indicates the type of speech event.
-	SpeechEventType      StreamingRecognizeResponse_SpeechEventType `protobuf:"varint,4,opt,name=speech_event_type,json=speechEventType,enum=google.cloud.speech.v1p1beta1.StreamingRecognizeResponse_SpeechEventType" json:"speech_event_type,omitempty"`
+	SpeechEventType      StreamingRecognizeResponse_SpeechEventType `protobuf:"varint,4,opt,name=speech_event_type,json=speechEventType,proto3,enum=google.cloud.speech.v1p1beta1.StreamingRecognizeResponse_SpeechEventType" json:"speech_event_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
 	XXX_unrecognized     []byte                                     `json:"-"`
 	XXX_sizecache        int32                                      `json:"-"`
@@ -1420,19 +1420,19 @@ type StreamingRecognitionResult struct {
 	// maximum specified in `max_alternatives`).
 	// These alternatives are ordered in terms of accuracy, with the top (first)
 	// alternative being the most probable, as ranked by the recognizer.
-	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	// Output only. If `false`, this `StreamingRecognitionResult` represents an
 	// interim result that may change. If `true`, this is the final time the
 	// speech service will return this particular `StreamingRecognitionResult`,
 	// the recognizer will not return any further hypotheses for this portion of
 	// the transcript and corresponding audio.
-	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal" json:"is_final,omitempty"`
+	IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"`
 	// Output only. An estimate of the likelihood that the recognizer will not
 	// change its guess about this interim result. Values range from 0.0
 	// (completely unstable) to 1.0 (completely stable).
 	// This field is only provided for interim results (`is_final=false`).
 	// The default of 0.0 is a sentinel value indicating `stability` was not set.
-	Stability            float32  `protobuf:"fixed32,3,opt,name=stability" json:"stability,omitempty"`
+	Stability            float32  `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1489,7 +1489,7 @@ type SpeechRecognitionResult struct {
 	// maximum specified in `max_alternatives`).
 	// These alternatives are ordered in terms of accuracy, with the top (first)
 	// alternative being the most probable, as ranked by the recognizer.
-	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -1529,7 +1529,7 @@ func (m *SpeechRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternat
 // Alternative hypotheses (a.k.a. n-best list).
 type SpeechRecognitionAlternative struct {
 	// Output only. Transcript text representing the words that the user spoke.
-	Transcript string `protobuf:"bytes,1,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// 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 set only for the top alternative of a non-streaming
@@ -1537,11 +1537,11 @@ type SpeechRecognitionAlternative struct {
 	// This field is not guaranteed to be accurate and users should not rely on it
 	// to be always provided.
 	// The default of 0.0 is a sentinel value indicating `confidence` was not set.
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Output only. A list of word-specific information for each recognized word.
 	// Note: When enable_speaker_diarization is true, you will see all the words
 	// from the beginning of the audio.
-	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1600,16 +1600,16 @@ type WordInfo struct {
 	// in the top hypothesis.
 	// This is an experimental feature and the accuracy of the time offset can
 	// vary.
-	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Output only. Time offset relative to the beginning of the audio,
 	// and corresponding to the end of the spoken word.
 	// This field is only set if `enable_word_time_offsets=true` and only
 	// in the top hypothesis.
 	// This is an experimental feature and the accuracy of the time offset can
 	// vary.
-	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Output only. The word corresponding to this set of information.
-	Word                 string   `protobuf:"bytes,3,opt,name=word" json:"word,omitempty"`
+	Word                 string   `protobuf:"bytes,3,opt,name=word,proto3" json:"word,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1767,8 +1767,7 @@ func (x *speechStreamingRecognizeClient) Recv() (*StreamingRecognizeResponse, er
 	return m, nil
 }
 
-// Server API for Speech service
-
+// SpeechServer is the server API for Speech service.
 type SpeechServer interface {
 	// Performs synchronous speech recognition: receive results after all audio
 	// has been sent and processed.
diff --git a/googleapis/cloud/support/common/common.pb.go b/googleapis/cloud/support/common/common.pb.go
index c3ef734b49d449bb829eba289d857eb471552219..65817f2834e049b8fea64d67599951839749ff96 100644
--- a/googleapis/cloud/support/common/common.pb.go
+++ b/googleapis/cloud/support/common/common.pb.go
@@ -272,26 +272,26 @@ type SupportAccount struct {
 	// The resource name for a support account in format
 	// `supportAccounts/{account_id}`.
 	// Output only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Identifier for this entity that gets persisted in storage system. The
 	// resource name is populated using this field in format
 	// `supportAccounts/{account_id}`.
-	AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
+	AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
 	// The Cloud resource with which this support account is associated.
-	CloudResource string `protobuf:"bytes,3,opt,name=cloud_resource,json=cloudResource" json:"cloud_resource,omitempty"`
+	CloudResource string `protobuf:"bytes,3,opt,name=cloud_resource,json=cloudResource,proto3" json:"cloud_resource,omitempty"`
 	// A user friendly display name assigned to this support account.
-	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Indicates the current state of an account.
-	State SupportAccount_State `protobuf:"varint,5,opt,name=state,enum=google.cloud.support.common.SupportAccount_State" json:"state,omitempty"`
+	State SupportAccount_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.support.common.SupportAccount_State" json:"state,omitempty"`
 	// Time when this account was created.
 	// Output only.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The resource name of a billing account associated with this support
 	// account. For example, `billingAccounts/ABCDEF-012345-567890`.
-	BillingAccountName string `protobuf:"bytes,7,opt,name=billing_account_name,json=billingAccountName" json:"billing_account_name,omitempty"`
-	UnifyAccountId     string `protobuf:"bytes,8,opt,name=unify_account_id,json=unifyAccountId" json:"unify_account_id,omitempty"`
+	BillingAccountName string `protobuf:"bytes,7,opt,name=billing_account_name,json=billingAccountName,proto3" json:"billing_account_name,omitempty"`
+	UnifyAccountId     string `protobuf:"bytes,8,opt,name=unify_account_id,json=unifyAccountId,proto3" json:"unify_account_id,omitempty"`
 	// The PricingModel applicable to this support account.
-	PricingModel         SupportAccount_PricingModel `protobuf:"varint,9,opt,name=pricing_model,json=pricingModel,enum=google.cloud.support.common.SupportAccount_PricingModel" json:"pricing_model,omitempty"`
+	PricingModel         SupportAccount_PricingModel `protobuf:"varint,9,opt,name=pricing_model,json=pricingModel,proto3,enum=google.cloud.support.common.SupportAccount_PricingModel" json:"pricing_model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -388,41 +388,41 @@ func (m *SupportAccount) GetPricingModel() SupportAccount_PricingModel {
 type Case struct {
 	// The resource name for the Case in format
 	// `supportAccounts/{account_id}/cases/{case_id}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The short summary of the issue reported in this case.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The board description of issue provided with initial summary.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The product component for which this Case is reported.
-	Component string `protobuf:"bytes,4,opt,name=component" json:"component,omitempty"`
+	Component string `protobuf:"bytes,4,opt,name=component,proto3" json:"component,omitempty"`
 	// The product subcomponent for which this Case is reported.
-	Subcomponent string `protobuf:"bytes,5,opt,name=subcomponent" json:"subcomponent,omitempty"`
+	Subcomponent string `protobuf:"bytes,5,opt,name=subcomponent,proto3" json:"subcomponent,omitempty"`
 	// Timezone the client sending this request is in.
 	// It should be in a format IANA recognizes: https://www.iana.org/time-zone
 	// There is no additional validation done by the API.
-	ClientTimezone string `protobuf:"bytes,6,opt,name=client_timezone,json=clientTimezone" json:"client_timezone,omitempty"`
+	ClientTimezone string `protobuf:"bytes,6,opt,name=client_timezone,json=clientTimezone,proto3" json:"client_timezone,omitempty"`
 	// The email addresses that can be copied to receive updates on this case.
 	// Users can specify a maximum of 10 email addresses.
-	CcAddresses []string `protobuf:"bytes,7,rep,name=cc_addresses,json=ccAddresses" json:"cc_addresses,omitempty"`
+	CcAddresses []string `protobuf:"bytes,7,rep,name=cc_addresses,json=ccAddresses,proto3" json:"cc_addresses,omitempty"`
 	// The Google Cloud Platform project ID for which this case is created.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// List of customer issues associated with this case.
-	Issues []*CustomerIssue `protobuf:"bytes,10,rep,name=issues" json:"issues,omitempty"`
+	Issues []*CustomerIssue `protobuf:"bytes,10,rep,name=issues,proto3" json:"issues,omitempty"`
 	// The current priority of this case.
-	Priority Case_Priority `protobuf:"varint,11,opt,name=priority,enum=google.cloud.support.common.Case_Priority" json:"priority,omitempty"`
+	Priority Case_Priority `protobuf:"varint,11,opt,name=priority,proto3,enum=google.cloud.support.common.Case_Priority" json:"priority,omitempty"`
 	// The current state of this case.
-	State Case_State `protobuf:"varint,12,opt,name=state,enum=google.cloud.support.common.Case_State" json:"state,omitempty"`
+	State Case_State `protobuf:"varint,12,opt,name=state,proto3,enum=google.cloud.support.common.Case_State" json:"state,omitempty"`
 	// Time when this case was created.
 	// Output only.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time when this case was last updated.
 	// Output only.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// Email address of user who created this case.
 	// Output only. It is inferred from credentials supplied during case creation.
-	CreatorEmail string `protobuf:"bytes,15,opt,name=creator_email,json=creatorEmail" json:"creator_email,omitempty"`
+	CreatorEmail string `protobuf:"bytes,15,opt,name=creator_email,json=creatorEmail,proto3" json:"creator_email,omitempty"`
 	// The issue category applicable to this case.
-	Category             string   `protobuf:"bytes,16,opt,name=category" json:"category,omitempty"`
+	Category             string   `protobuf:"bytes,16,opt,name=category,proto3" json:"category,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -563,19 +563,19 @@ func (m *Case) GetCategory() string {
 type CustomerIssue struct {
 	// Unique identifier for the internal issue.
 	// Output only.
-	IssueId string `protobuf:"bytes,1,opt,name=issue_id,json=issueId" json:"issue_id,omitempty"`
+	IssueId string `protobuf:"bytes,1,opt,name=issue_id,json=issueId,proto3" json:"issue_id,omitempty"`
 	// Represents current status of the internal ticket.
 	// Output only.
-	State CustomerIssue_IssueState `protobuf:"varint,2,opt,name=state,enum=google.cloud.support.common.CustomerIssue_IssueState" json:"state,omitempty"`
+	State CustomerIssue_IssueState `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.support.common.CustomerIssue_IssueState" json:"state,omitempty"`
 	// Time when the internal issue was created.
 	// Output only.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time when the internal issue was marked as resolved.
 	// Output only.
-	ResolveTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=resolve_time,json=resolveTime" json:"resolve_time,omitempty"`
+	ResolveTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"`
 	// Time when the internal issue was last updated.
 	// Output only.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -644,9 +644,9 @@ func (m *CustomerIssue) GetUpdateTime() *timestamp.Timestamp {
 // account.
 type SupportRole struct {
 	// Email address of user being added through this Role.
-	Email string `protobuf:"bytes,1,opt,name=email" json:"email,omitempty"`
+	Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
 	// The type of role assigned to user.
-	Role                 SupportRole_Role `protobuf:"varint,2,opt,name=role,enum=google.cloud.support.common.SupportRole_Role" json:"role,omitempty"`
+	Role                 SupportRole_Role `protobuf:"varint,2,opt,name=role,proto3,enum=google.cloud.support.common.SupportRole_Role" json:"role,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -693,17 +693,17 @@ func (m *SupportRole) GetRole() SupportRole_Role {
 // The comment text associated with a `Case`.
 type Comment struct {
 	// Text containing a maximum of 3000 characters.
-	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
 	// Time when this update was created.
 	// Output only.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The email address/name of user who created this comment.
 	// Output only.
-	Author string `protobuf:"bytes,3,opt,name=author" json:"author,omitempty"`
+	Author string `protobuf:"bytes,3,opt,name=author,proto3" json:"author,omitempty"`
 	// The resource name for this comment in format
 	// `supportAccounts/{account_id}/cases/{case_id}/{comment_id}`.
 	// Output only.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -767,7 +767,7 @@ func (m *Comment) GetName() string {
 // `Case.component` and `Case.subcomponent` fields respectively.
 type IssueTaxonomy struct {
 	// Map of available categories.
-	Categories           map[string]*IssueTaxonomy_Category `protobuf:"bytes,1,rep,name=categories" json:"categories,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Categories           map[string]*IssueTaxonomy_Category `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
 	XXX_unrecognized     []byte                             `json:"-"`
 	XXX_sizecache        int32                              `json:"-"`
@@ -813,14 +813,14 @@ func (m *IssueTaxonomy) GetCategories() map[string]*IssueTaxonomy_Category {
 // (e.g., Google App Engine > Memcache).
 type IssueTaxonomy_Component struct {
 	// User friendly name of this component.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// List of languages in which a support case can be created under this
 	// component. Represented by language codes in ISO_639-1 standard.
-	Languages []string `protobuf:"bytes,2,rep,name=languages" json:"languages,omitempty"`
+	Languages []string `protobuf:"bytes,2,rep,name=languages,proto3" json:"languages,omitempty"`
 	// Template to be used while filling the description of a support case.
-	Template string `protobuf:"bytes,3,opt,name=template" json:"template,omitempty"`
+	Template string `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"`
 	// List of subcomponents under this component.
-	Subcomponents        []*IssueTaxonomy_Component `protobuf:"bytes,4,rep,name=subcomponents" json:"subcomponents,omitempty"`
+	Subcomponents        []*IssueTaxonomy_Component `protobuf:"bytes,4,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -882,9 +882,9 @@ func (m *IssueTaxonomy_Component) GetSubcomponents() []*IssueTaxonomy_Component
 // reported through a support case.
 type IssueTaxonomy_Category struct {
 	// User friendly name of this category.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Map of product components under this category.
-	Components           map[string]*IssueTaxonomy_Component `protobuf:"bytes,2,rep,name=components" json:"components,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Components           map[string]*IssueTaxonomy_Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
 	XXX_unrecognized     []byte                              `json:"-"`
 	XXX_sizecache        int32                               `json:"-"`
diff --git a/googleapis/cloud/support/v1alpha1/cloud_support.pb.go b/googleapis/cloud/support/v1alpha1/cloud_support.pb.go
index 32951071890026cfadde755197f9b7acdc8c08be..bad4ddbc99d23ccc14512cf3dffd819620766be7 100644
--- a/googleapis/cloud/support/v1alpha1/cloud_support.pb.go
+++ b/googleapis/cloud/support/v1alpha1/cloud_support.pb.go
@@ -31,7 +31,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type GetSupportAccountRequest struct {
 	// The resource name of the support accounts. For example:
 	// `supportAccounts/accountA`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -74,12 +74,12 @@ type ListSupportAccountsRequest struct {
 	// account list by a cloud_resource. For example, to filter results by support
 	// accounts associated with an Organization, its value should be:
 	// "cloud_resource:organizations/<organization_id>"
-	Filter string `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Maximum number of accounts fetched with each request.
-	PageSize int64 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int64 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying the page of results to return. If unspecified, the
 	// first page is retrieved.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -133,11 +133,11 @@ func (m *ListSupportAccountsRequest) GetPageToken() string {
 // The response message for `ListSupportAccount`.
 type ListSupportAccountsResponse struct {
 	// A list of support accounts.
-	Accounts []*common.SupportAccount `protobuf:"bytes,1,rep,name=accounts" json:"accounts,omitempty"`
+	Accounts []*common.SupportAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"`
 	// A token to retrieve the next page of results. This should be passed on in
 	// `page_token` field of `ListSupportAccountRequest` for next request. If
 	// unspecified, there are no more results to retrieve.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -185,7 +185,7 @@ func (m *ListSupportAccountsResponse) GetNextPageToken() string {
 type GetCaseRequest struct {
 	// Name of case resource requested.
 	// For example: "supportAccounts/accountA/cases/123"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -226,15 +226,15 @@ func (m *GetCaseRequest) GetName() string {
 type ListCasesRequest struct {
 	// Name of the account resource for which cases are requested. For example:
 	// "supportAccounts/accountA"
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The filter applied to the search results. Currently it only accepts "OPEN"
 	// or "CLOSED" strings, filtering out cases that are open or resolved.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Maximum number of cases fetched with each request.
-	PageSize int64 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int64 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying the page of results to return. If unspecified, the
 	// first page is retrieved.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -295,11 +295,11 @@ func (m *ListCasesRequest) GetPageToken() string {
 // The response message for `ListCase` method.
 type ListCasesResponse struct {
 	// A list of cases.
-	Cases []*common.Case `protobuf:"bytes,1,rep,name=cases" json:"cases,omitempty"`
+	Cases []*common.Case `protobuf:"bytes,1,rep,name=cases,proto3" json:"cases,omitempty"`
 	// A token to retrieve the next page of results. This should be passed on in
 	// `page_token` field of `ListCaseRequest` for next request. If unspecified,
 	// there are no more results to retrieve.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -346,7 +346,7 @@ func (m *ListCasesResponse) GetNextPageToken() string {
 // The request message for `ListComments` method.
 type ListCommentsRequest struct {
 	// The resource name of case for which comments should be listed.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -386,7 +386,7 @@ func (m *ListCommentsRequest) GetName() string {
 // The response message for `ListComments` method.
 type ListCommentsResponse struct {
 	// A list of comments.
-	Comments             []*common.Comment `protobuf:"bytes,1,rep,name=comments" json:"comments,omitempty"`
+	Comments             []*common.Comment `protobuf:"bytes,1,rep,name=comments,proto3" json:"comments,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -426,9 +426,9 @@ func (m *ListCommentsResponse) GetComments() []*common.Comment {
 // The request message for `CreateCase` method.
 type CreateCaseRequest struct {
 	// The resource name for `SupportAccount` under which this case is created.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The case resource to create.
-	Case                 *common.Case `protobuf:"bytes,2,opt,name=case" json:"case,omitempty"`
+	Case                 *common.Case `protobuf:"bytes,2,opt,name=case,proto3" json:"case,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -475,10 +475,10 @@ func (m *CreateCaseRequest) GetCase() *common.Case {
 // The request message for `UpdateCase` method.
 type UpdateCaseRequest struct {
 	// The case resource to update.
-	Case *common.Case `protobuf:"bytes,1,opt,name=case" json:"case,omitempty"`
+	Case *common.Case `protobuf:"bytes,1,opt,name=case,proto3" json:"case,omitempty"`
 	// A field that represents attributes of a Case object that should be updated
 	// as part of this request.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -525,9 +525,9 @@ func (m *UpdateCaseRequest) GetUpdateMask() *field_mask.FieldMask {
 // The request message for `CreateComment` method.
 type CreateCommentRequest struct {
 	// The resource name of case to which this comment should be added.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The `Comment` to be added to this case.
-	Comment              *common.Comment `protobuf:"bytes,2,opt,name=comment" json:"comment,omitempty"`
+	Comment              *common.Comment `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -747,8 +747,7 @@ func (c *cloudSupportClient) GetIssueTaxonomy(ctx context.Context, in *GetIssueT
 	return out, nil
 }
 
-// Server API for CloudSupport service
-
+// CloudSupportServer is the server API for CloudSupport service.
 type CloudSupportServer interface {
 	// Retrieves the support account details given an account identifier.
 	// The authenticated user calling this method must be the account owner.
diff --git a/googleapis/cloud/tasks/v2beta2/cloudtasks.pb.go b/googleapis/cloud/tasks/v2beta2/cloudtasks.pb.go
index 91076ea68e9be3aaf617136263dbeebe1b6fae00..61e2b4ff1105aceb808dbcf6937b7d932625c33d 100644
--- a/googleapis/cloud/tasks/v2beta2/cloudtasks.pb.go
+++ b/googleapis/cloud/tasks/v2beta2/cloudtasks.pb.go
@@ -35,7 +35,7 @@ type ListQueuesRequest struct {
 	//
 	// The location name.
 	// For example: `projects/PROJECT_ID/locations/LOCATION_ID`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// `filter` can be used to specify a subset of queues. Any [Queue][google.cloud.tasks.v2beta2.Queue]
 	// field can be used as a filter and several operators as supported.
 	// For example: `<=, <, >=, >, !=, =, :`. The filter syntax is the same as
@@ -46,7 +46,7 @@ type ListQueuesRequest struct {
 	//
 	// Note that using filters might cause fewer queues than the
 	// requested_page size to be returned.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Requested page size.
 	//
 	// The maximum page size is 9800. If unspecified, the page size will
@@ -54,7 +54,7 @@ type ListQueuesRequest struct {
 	// even if more queues exist; use the
 	// [next_page_token][google.cloud.tasks.v2beta2.ListQueuesResponse.next_page_token] in the
 	// response to determine if more queues exist.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying the page of results to return.
 	//
 	// To request the first page results, page_token must be empty. To
@@ -63,7 +63,7 @@ type ListQueuesRequest struct {
 	// from the previous call to [ListQueues][google.cloud.tasks.v2beta2.CloudTasks.ListQueues]
 	// method. It is an error to switch the value of the
 	// [filter][google.cloud.tasks.v2beta2.ListQueuesRequest.filter] while iterating through pages.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -124,7 +124,7 @@ func (m *ListQueuesRequest) GetPageToken() string {
 // Response message for [ListQueues][google.cloud.tasks.v2beta2.CloudTasks.ListQueues].
 type ListQueuesResponse struct {
 	// The list of queues.
-	Queues []*Queue `protobuf:"bytes,1,rep,name=queues" json:"queues,omitempty"`
+	Queues []*Queue `protobuf:"bytes,1,rep,name=queues,proto3" json:"queues,omitempty"`
 	// A token to retrieve next page of results.
 	//
 	// To return the next page of results, call
@@ -134,7 +134,7 @@ type ListQueuesResponse struct {
 	// If the next_page_token is empty, there are no more results.
 	//
 	// The page token is valid for only 2 hours.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -184,7 +184,7 @@ type GetQueueRequest struct {
 	//
 	// The resource name of the queue. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -231,13 +231,13 @@ type CreateQueueRequest struct {
 	// The list of allowed locations can be obtained by calling Cloud
 	// Tasks' implementation of
 	// [ListLocations][google.cloud.location.Locations.ListLocations].
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required.
 	//
 	// The queue to create.
 	//
 	// [Queue's name][google.cloud.tasks.v2beta2.Queue.name] cannot be the same as an existing queue.
-	Queue                *Queue   `protobuf:"bytes,2,opt,name=queue" json:"queue,omitempty"`
+	Queue                *Queue   `protobuf:"bytes,2,opt,name=queue,proto3" json:"queue,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -292,11 +292,11 @@ type UpdateQueueRequest struct {
 	// Output only fields cannot be modified using UpdateQueue.
 	// Any value specified for an output only field will be ignored.
 	// The queue's [name][google.cloud.tasks.v2beta2.Queue.name] cannot be changed.
-	Queue *Queue `protobuf:"bytes,1,opt,name=queue" json:"queue,omitempty"`
+	Queue *Queue `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"`
 	// A mask used to specify which fields of the queue are being updated.
 	//
 	// If empty, then all fields will be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -346,7 +346,7 @@ type DeleteQueueRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -389,7 +389,7 @@ type PurgeQueueRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -432,7 +432,7 @@ type PauseQueueRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -475,7 +475,7 @@ type ResumeQueueRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/location/LOCATION_ID/queues/QUEUE_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -518,7 +518,7 @@ type ListTasksRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -531,12 +531,12 @@ type ListTasksRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	// Sort order used for the query. The only fields supported for sorting
 	// are `schedule_time` and `pull_message.tag`. All results will be
 	// returned in approximately ascending order. The default ordering is by
 	// `schedule_time`.
-	OrderBy string `protobuf:"bytes,3,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,3,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// Requested page size. Fewer tasks than requested might be returned.
 	//
 	// The maximum page size is 1000. If unspecified, the page size will
@@ -544,7 +544,7 @@ type ListTasksRequest struct {
 	// even if more tasks exist; use
 	// [next_page_token][google.cloud.tasks.v2beta2.ListTasksResponse.next_page_token] in the
 	// response to determine if more tasks exist.
-	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying the page of results to return.
 	//
 	// To request the first page results, page_token must be empty. To
@@ -554,7 +554,7 @@ type ListTasksRequest struct {
 	// method.
 	//
 	// The page token is valid for only 2 hours.
-	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -622,7 +622,7 @@ func (m *ListTasksRequest) GetPageToken() string {
 // Response message for listing tasks using [ListTasks][google.cloud.tasks.v2beta2.CloudTasks.ListTasks].
 type ListTasksResponse struct {
 	// The list of tasks.
-	Tasks []*Task `protobuf:"bytes,1,rep,name=tasks" json:"tasks,omitempty"`
+	Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
 	// A token to retrieve next page of results.
 	//
 	// To return the next page of results, call
@@ -630,7 +630,7 @@ type ListTasksResponse struct {
 	// [page_token][google.cloud.tasks.v2beta2.ListTasksRequest.page_token].
 	//
 	// If the next_page_token is empty, there are no more results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -680,7 +680,7 @@ type GetTaskRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -693,7 +693,7 @@ type GetTaskRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView         Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView         Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -745,7 +745,7 @@ type CreateTaskRequest struct {
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
 	//
 	// The queue must already exist.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required.
 	//
 	// The task to add.
@@ -781,7 +781,7 @@ type CreateTaskRequest struct {
 	// task commands. The infrastructure relies on an approximately
 	// uniform distribution of task ids to store and serve tasks
 	// efficiently.
-	Task *Task `protobuf:"bytes,2,opt,name=task" json:"task,omitempty"`
+	Task *Task `protobuf:"bytes,2,opt,name=task,proto3" json:"task,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -794,7 +794,7 @@ type CreateTaskRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView         Task_View `protobuf:"varint,3,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView         Task_View `protobuf:"varint,3,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -852,7 +852,7 @@ type DeleteTaskRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -895,10 +895,10 @@ type LeaseTasksRequest struct {
 	//
 	// The queue name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of tasks to lease. The maximum that can be
 	// requested is 1000.
-	MaxTasks int32 `protobuf:"varint,2,opt,name=max_tasks,json=maxTasks" json:"max_tasks,omitempty"`
+	MaxTasks int32 `protobuf:"varint,2,opt,name=max_tasks,json=maxTasks,proto3" json:"max_tasks,omitempty"`
 	//
 	// After the worker has successfully finished the work associated
 	// with the task, the worker must call via
@@ -909,7 +909,7 @@ type LeaseTasksRequest struct {
 	//
 	// The maximum lease duration is 1 week.
 	// `lease_duration` will be truncated to the nearest second.
-	LeaseDuration *duration.Duration `protobuf:"bytes,3,opt,name=lease_duration,json=leaseDuration" json:"lease_duration,omitempty"`
+	LeaseDuration *duration.Duration `protobuf:"bytes,3,opt,name=lease_duration,json=leaseDuration,proto3" json:"lease_duration,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -922,7 +922,7 @@ type LeaseTasksRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView Task_View `protobuf:"varint,4,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView Task_View `protobuf:"varint,4,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	// `filter` can be used to specify a subset of tasks to lease.
 	//
 	// When `filter` is set to `tag=<my-tag>` then the
@@ -952,7 +952,7 @@ type LeaseTasksRequest struct {
 	// aren't UTF-8 encoded can't be used in the
 	// [filter][google.cloud.tasks.v2beta2.LeaseTasksRequest.filter] and the task's
 	// [tag][google.cloud.tasks.v2beta2.PullMessage.tag] will be displayed as empty in Cloud Tasks.
-	Filter               string   `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1020,7 +1020,7 @@ func (m *LeaseTasksRequest) GetFilter() string {
 // Response message for leasing tasks using [LeaseTasks][google.cloud.tasks.v2beta2.CloudTasks.LeaseTasks].
 type LeaseTasksResponse struct {
 	// The leased tasks.
-	Tasks                []*Task  `protobuf:"bytes,1,rep,name=tasks" json:"tasks,omitempty"`
+	Tasks                []*Task  `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1064,7 +1064,7 @@ type AcknowledgeTaskRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required.
 	//
 	// The task's current schedule time, available in the
@@ -1072,7 +1072,7 @@ type AcknowledgeTaskRequest struct {
 	// [LeaseTasks][google.cloud.tasks.v2beta2.CloudTasks.LeaseTasks] response or
 	// [RenewLease][google.cloud.tasks.v2beta2.CloudTasks.RenewLease] response. This restriction is
 	// to ensure that your worker currently holds the lease.
-	ScheduleTime         *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime         *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1123,7 +1123,7 @@ type RenewLeaseRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required.
 	//
 	// The task's current schedule time, available in the
@@ -1131,7 +1131,7 @@ type RenewLeaseRequest struct {
 	// [LeaseTasks][google.cloud.tasks.v2beta2.CloudTasks.LeaseTasks] response or
 	// [RenewLease][google.cloud.tasks.v2beta2.CloudTasks.RenewLease] response. This restriction is
 	// to ensure that your worker currently holds the lease.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// Required.
 	//
 	// The desired new lease duration, starting from now.
@@ -1139,7 +1139,7 @@ type RenewLeaseRequest struct {
 	//
 	// The maximum lease duration is 1 week.
 	// `lease_duration` will be truncated to the nearest second.
-	LeaseDuration *duration.Duration `protobuf:"bytes,3,opt,name=lease_duration,json=leaseDuration" json:"lease_duration,omitempty"`
+	LeaseDuration *duration.Duration `protobuf:"bytes,3,opt,name=lease_duration,json=leaseDuration,proto3" json:"lease_duration,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -1152,7 +1152,7 @@ type RenewLeaseRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView         Task_View `protobuf:"varint,4,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView         Task_View `protobuf:"varint,4,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1217,7 +1217,7 @@ type CancelLeaseRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required.
 	//
 	// The task's current schedule time, available in the
@@ -1225,7 +1225,7 @@ type CancelLeaseRequest struct {
 	// [LeaseTasks][google.cloud.tasks.v2beta2.CloudTasks.LeaseTasks] response or
 	// [RenewLease][google.cloud.tasks.v2beta2.CloudTasks.RenewLease] response. This restriction is
 	// to ensure that your worker currently holds the lease.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -1238,7 +1238,7 @@ type CancelLeaseRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView         Task_View `protobuf:"varint,3,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView         Task_View `protobuf:"varint,3,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1296,7 +1296,7 @@ type RunTaskRequest struct {
 	//
 	// The task name. For example:
 	// `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The response_view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] will be
 	// returned.
 	//
@@ -1309,7 +1309,7 @@ type RunTaskRequest struct {
 	// Authorization for [FULL][google.cloud.tasks.v2beta2.Task.View.FULL] requires
 	// `cloudtasks.tasks.fullView` [Google IAM](/iam/) permission on the
 	// [Task][google.cloud.tasks.v2beta2.Task] resource.
-	ResponseView         Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
+	ResponseView         Task_View `protobuf:"varint,2,opt,name=response_view,json=responseView,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"response_view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1792,8 +1792,7 @@ func (c *cloudTasksClient) RunTask(ctx context.Context, in *RunTaskRequest, opts
 	return out, nil
 }
 
-// Server API for CloudTasks service
-
+// CloudTasksServer is the server API for CloudTasks service.
 type CloudTasksServer interface {
 	// Lists queues.
 	//
diff --git a/googleapis/cloud/tasks/v2beta2/queue.pb.go b/googleapis/cloud/tasks/v2beta2/queue.pb.go
index c9bcef2f8846ebfe9ea273409165862087d1d32b..40cff85e7b35420d1e2cc4cbc025d6e05dc899fb 100644
--- a/googleapis/cloud/tasks/v2beta2/queue.pb.go
+++ b/googleapis/cloud/tasks/v2beta2/queue.pb.go
@@ -101,7 +101,7 @@ type Queue struct {
 	//
 	// Caller-specified and required in [CreateQueue][google.cloud.tasks.v2beta2.CloudTasks.CreateQueue],
 	// after which it becomes output only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The queue's target.
 	//
 	// The target applies to all tasks in the queue.
@@ -129,7 +129,7 @@ type Queue struct {
 	//   particular a task after its first attempt fails. That is,
 	//   [retry_config][google.cloud.tasks.v2beta2.Queue.retry_config] controls task retries (the
 	//   second attempt, third attempt, etc).
-	RateLimits *RateLimits `protobuf:"bytes,5,opt,name=rate_limits,json=rateLimits" json:"rate_limits,omitempty"`
+	RateLimits *RateLimits `protobuf:"bytes,5,opt,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
 	// Settings that determine the retry behavior.
 	//
 	// * For tasks created using Cloud Tasks: the queue-level retry settings
@@ -139,7 +139,7 @@ type Queue struct {
 	//   settings apply to all tasks in the queue which do not have retry settings
 	//   explicitly set on the task and were created by the App Engine SDK. See
 	//   [App Engine documentation](/appengine/docs/standard/python/taskqueue/push/retrying-tasks).
-	RetryConfig *RetryConfig `protobuf:"bytes,6,opt,name=retry_config,json=retryConfig" json:"retry_config,omitempty"`
+	RetryConfig *RetryConfig `protobuf:"bytes,6,opt,name=retry_config,json=retryConfig,proto3" json:"retry_config,omitempty"`
 	// Output only. The state of the queue.
 	//
 	// `state` can only be changed by called
@@ -147,7 +147,7 @@ type Queue struct {
 	// [ResumeQueue][google.cloud.tasks.v2beta2.CloudTasks.ResumeQueue], or uploading
 	// [queue.yaml/xml](/appengine/docs/python/config/queueref).
 	// [UpdateQueue][google.cloud.tasks.v2beta2.CloudTasks.UpdateQueue] cannot be used to change `state`.
-	State Queue_State `protobuf:"varint,7,opt,name=state,enum=google.cloud.tasks.v2beta2.Queue_State" json:"state,omitempty"`
+	State Queue_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.tasks.v2beta2.Queue_State" json:"state,omitempty"`
 	// Output only. The last time this queue was purged.
 	//
 	// All tasks that were [created][google.cloud.tasks.v2beta2.Task.create_time] before this time
@@ -158,7 +158,7 @@ type Queue struct {
 	//
 	// Purge time will be truncated to the nearest microsecond. Purge
 	// time will be unset if the queue has never been purged.
-	PurgeTime            *timestamp.Timestamp `protobuf:"bytes,8,opt,name=purge_time,json=purgeTime" json:"purge_time,omitempty"`
+	PurgeTime            *timestamp.Timestamp `protobuf:"bytes,8,opt,name=purge_time,json=purgeTime,proto3" json:"purge_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -193,10 +193,10 @@ type isQueue_TargetType interface {
 }
 
 type Queue_AppEngineHttpTarget struct {
-	AppEngineHttpTarget *AppEngineHttpTarget `protobuf:"bytes,3,opt,name=app_engine_http_target,json=appEngineHttpTarget,oneof"`
+	AppEngineHttpTarget *AppEngineHttpTarget `protobuf:"bytes,3,opt,name=app_engine_http_target,json=appEngineHttpTarget,proto3,oneof"`
 }
 type Queue_PullTarget struct {
-	PullTarget *PullTarget `protobuf:"bytes,4,opt,name=pull_target,json=pullTarget,oneof"`
+	PullTarget *PullTarget `protobuf:"bytes,4,opt,name=pull_target,json=pullTarget,proto3,oneof"`
 }
 
 func (*Queue_AppEngineHttpTarget) isQueue_TargetType() {}
@@ -354,7 +354,7 @@ type RateLimits struct {
 	//
 	// This field has the same meaning as
 	// [rate in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#rate).
-	MaxTasksDispatchedPerSecond float64 `protobuf:"fixed64,1,opt,name=max_tasks_dispatched_per_second,json=maxTasksDispatchedPerSecond" json:"max_tasks_dispatched_per_second,omitempty"`
+	MaxTasksDispatchedPerSecond float64 `protobuf:"fixed64,1,opt,name=max_tasks_dispatched_per_second,json=maxTasksDispatchedPerSecond,proto3" json:"max_tasks_dispatched_per_second,omitempty"`
 	// Output only. The max burst size.
 	//
 	// Max burst size limits how fast tasks in queue are processed when
@@ -388,7 +388,7 @@ type RateLimits struct {
 	// [max_tasks_dispatched_per_second][google.cloud.tasks.v2beta2.RateLimits.max_tasks_dispatched_per_second]
 	// is updated.
 	//
-	MaxBurstSize int32 `protobuf:"varint,2,opt,name=max_burst_size,json=maxBurstSize" json:"max_burst_size,omitempty"`
+	MaxBurstSize int32 `protobuf:"varint,2,opt,name=max_burst_size,json=maxBurstSize,proto3" json:"max_burst_size,omitempty"`
 	// The maximum number of concurrent tasks that Cloud Tasks allows
 	// to be dispatched for this queue. After this threshold has been
 	// reached, Cloud Tasks stops dispatching tasks until the number of
@@ -408,7 +408,7 @@ type RateLimits struct {
 	//
 	// This field has the same meaning as
 	// [max_concurrent_requests in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#max_concurrent_requests).
-	MaxConcurrentTasks   int32    `protobuf:"varint,3,opt,name=max_concurrent_tasks,json=maxConcurrentTasks" json:"max_concurrent_tasks,omitempty"`
+	MaxConcurrentTasks   int32    `protobuf:"varint,3,opt,name=max_concurrent_tasks,json=maxConcurrentTasks,proto3" json:"max_concurrent_tasks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -497,7 +497,7 @@ type RetryConfig struct {
 	//
 	// This field has the same meaning as
 	// [task_age_limit in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
-	MaxRetryDuration *duration.Duration `protobuf:"bytes,3,opt,name=max_retry_duration,json=maxRetryDuration" json:"max_retry_duration,omitempty"`
+	MaxRetryDuration *duration.Duration `protobuf:"bytes,3,opt,name=max_retry_duration,json=maxRetryDuration,proto3" json:"max_retry_duration,omitempty"`
 	// A task will be [scheduled](Task.schedule_time) for retry between
 	// [min_backoff][google.cloud.tasks.v2beta2.RetryConfig.min_backoff] and
 	// [max_backoff][google.cloud.tasks.v2beta2.RetryConfig.max_backoff] duration after it fails,
@@ -515,7 +515,7 @@ type RetryConfig struct {
 	//
 	// This field has the same meaning as
 	// [min_backoff_seconds in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
-	MinBackoff *duration.Duration `protobuf:"bytes,4,opt,name=min_backoff,json=minBackoff" json:"min_backoff,omitempty"`
+	MinBackoff *duration.Duration `protobuf:"bytes,4,opt,name=min_backoff,json=minBackoff,proto3" json:"min_backoff,omitempty"`
 	// A task will be [scheduled](Task.schedule_time) for retry between
 	// [min_backoff][google.cloud.tasks.v2beta2.RetryConfig.min_backoff] and
 	// [max_backoff][google.cloud.tasks.v2beta2.RetryConfig.max_backoff] duration after it fails,
@@ -533,7 +533,7 @@ type RetryConfig struct {
 	//
 	// This field has the same meaning as
 	// [max_backoff_seconds in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
-	MaxBackoff *duration.Duration `protobuf:"bytes,5,opt,name=max_backoff,json=maxBackoff" json:"max_backoff,omitempty"`
+	MaxBackoff *duration.Duration `protobuf:"bytes,5,opt,name=max_backoff,json=maxBackoff,proto3" json:"max_backoff,omitempty"`
 	// The time between retries will double `max_doublings` times.
 	//
 	// A task's retry interval starts at
@@ -562,7 +562,7 @@ type RetryConfig struct {
 	//
 	// This field has the same meaning as
 	// [max_doublings in queue.yaml/xml](/appengine/docs/standard/python/config/queueref#retry_parameters).
-	MaxDoublings         int32    `protobuf:"varint,6,opt,name=max_doublings,json=maxDoublings" json:"max_doublings,omitempty"`
+	MaxDoublings         int32    `protobuf:"varint,6,opt,name=max_doublings,json=maxDoublings,proto3" json:"max_doublings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -597,10 +597,10 @@ type isRetryConfig_NumAttempts interface {
 }
 
 type RetryConfig_MaxAttempts struct {
-	MaxAttempts int32 `protobuf:"varint,1,opt,name=max_attempts,json=maxAttempts,oneof"`
+	MaxAttempts int32 `protobuf:"varint,1,opt,name=max_attempts,json=maxAttempts,proto3,oneof"`
 }
 type RetryConfig_UnlimitedAttempts struct {
-	UnlimitedAttempts bool `protobuf:"varint,2,opt,name=unlimited_attempts,json=unlimitedAttempts,oneof"`
+	UnlimitedAttempts bool `protobuf:"varint,2,opt,name=unlimited_attempts,json=unlimitedAttempts,proto3,oneof"`
 }
 
 func (*RetryConfig_MaxAttempts) isRetryConfig_NumAttempts()       {}
diff --git a/googleapis/cloud/tasks/v2beta2/target.pb.go b/googleapis/cloud/tasks/v2beta2/target.pb.go
index 5cee2df32c9cb412ffa812d9bcf7abe67521084e..d0feeef476b87c027d655c44f0d0fcd69effe8e0 100644
--- a/googleapis/cloud/tasks/v2beta2/target.pb.go
+++ b/googleapis/cloud/tasks/v2beta2/target.pb.go
@@ -119,7 +119,7 @@ type PullMessage struct {
 	// string or [bytes](/appengine/docs/standard/java/javadoc/com/google/appengine/api/taskqueue/TaskOptions.html#tag-byte:A-),
 	// only UTF-8 encoded tags can be used in Cloud Tasks. If a tag isn't UTF-8
 	// encoded, the tag will be empty when the task is returned by Cloud Tasks.
-	Tag                  string   `protobuf:"bytes,2,opt,name=tag" json:"tag,omitempty"`
+	Tag                  string   `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -183,7 +183,7 @@ type AppEngineHttpTarget struct {
 	// If set, `app_engine_routing_override` is used for all tasks in
 	// the queue, no matter what the setting is for the
 	// [task-level app_engine_routing][google.cloud.tasks.v2beta2.AppEngineHttpRequest.app_engine_routing].
-	AppEngineRoutingOverride *AppEngineRouting `protobuf:"bytes,1,opt,name=app_engine_routing_override,json=appEngineRoutingOverride" json:"app_engine_routing_override,omitempty"`
+	AppEngineRoutingOverride *AppEngineRouting `protobuf:"bytes,1,opt,name=app_engine_routing_override,json=appEngineRoutingOverride,proto3" json:"app_engine_routing_override,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{}          `json:"-"`
 	XXX_unrecognized         []byte            `json:"-"`
 	XXX_sizecache            int32             `json:"-"`
@@ -273,21 +273,21 @@ type AppEngineHttpRequest struct {
 	// and the documentation for the request handlers in the language your app is
 	// written in e.g.
 	// [Python Request Handler](/appengine/docs/python/tools/webapp/requesthandlerclass).
-	HttpMethod HttpMethod `protobuf:"varint,1,opt,name=http_method,json=httpMethod,enum=google.cloud.tasks.v2beta2.HttpMethod" json:"http_method,omitempty"`
+	HttpMethod HttpMethod `protobuf:"varint,1,opt,name=http_method,json=httpMethod,proto3,enum=google.cloud.tasks.v2beta2.HttpMethod" json:"http_method,omitempty"`
 	// Task-level setting for App Engine routing.
 	//
 	// If set,
 	// [app_engine_routing_override][google.cloud.tasks.v2beta2.AppEngineHttpTarget.app_engine_routing_override]
 	// is used for all tasks in the queue, no matter what the setting is for the
 	// [task-level app_engine_routing][google.cloud.tasks.v2beta2.AppEngineHttpRequest.app_engine_routing].
-	AppEngineRouting *AppEngineRouting `protobuf:"bytes,2,opt,name=app_engine_routing,json=appEngineRouting" json:"app_engine_routing,omitempty"`
+	AppEngineRouting *AppEngineRouting `protobuf:"bytes,2,opt,name=app_engine_routing,json=appEngineRouting,proto3" json:"app_engine_routing,omitempty"`
 	// The relative URL.
 	//
 	// The relative URL must begin with "/" and must be a valid HTTP relative URL.
 	// It can contain a path and query string arguments.
 	// If the relative URL is empty, then the root path "/" will be used.
 	// No spaces are allowed, and the maximum length allowed is 2083 characters.
-	RelativeUrl string `protobuf:"bytes,3,opt,name=relative_url,json=relativeUrl" json:"relative_url,omitempty"`
+	RelativeUrl string `protobuf:"bytes,3,opt,name=relative_url,json=relativeUrl,proto3" json:"relative_url,omitempty"`
 	// HTTP request headers.
 	//
 	// This map contains the header field names and values.
@@ -329,7 +329,7 @@ type AppEngineHttpRequest struct {
 	// Although there is no specific limit for the maximum number of headers or
 	// the size, there is a limit on the maximum size of the [Task][google.cloud.tasks.v2beta2.Task]. For more
 	// information, see the [CreateTask][google.cloud.tasks.v2beta2.CloudTasks.CreateTask] documentation.
-	Headers map[string]string `protobuf:"bytes,4,rep,name=headers" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Headers map[string]string `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Payload.
 	//
 	// The payload will be sent as the HTTP message body. A message
@@ -425,7 +425,7 @@ type AppEngineRouting struct {
 	// [service][google.cloud.tasks.v2beta2.AppEngineRouting.service],
 	// [version][google.cloud.tasks.v2beta2.AppEngineRouting.version], and
 	// [instance][google.cloud.tasks.v2beta2.AppEngineRouting.instance] are the empty string.
-	Service string `protobuf:"bytes,1,opt,name=service" json:"service,omitempty"`
+	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
 	// App version.
 	//
 	// By default, the task is sent to the version which is the default
@@ -442,7 +442,7 @@ type AppEngineRouting struct {
 	// [service][google.cloud.tasks.v2beta2.AppEngineRouting.service],
 	// [version][google.cloud.tasks.v2beta2.AppEngineRouting.version], and
 	// [instance][google.cloud.tasks.v2beta2.AppEngineRouting.instance] are the empty string.
-	Version string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	// App instance.
 	//
 	// By default, the task is sent to an instance which is available when
@@ -453,7 +453,7 @@ type AppEngineRouting struct {
 	// App Engine Flex does not support instances. For more information, see
 	// [App Engine Standard request routing](/appengine/docs/standard/python/how-requests-are-routed)
 	// and [App Engine Flex request routing](/appengine/docs/flexible/python/how-requests-are-routed).
-	Instance string `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"`
+	Instance string `protobuf:"bytes,3,opt,name=instance,proto3" json:"instance,omitempty"`
 	// Output only. The host that the task is sent to.
 	//
 	// For more information, see
@@ -520,7 +520,7 @@ type AppEngineRouting struct {
 	// [instance][google.cloud.tasks.v2beta2.AppEngineRouting.instance] is invalid, then the task
 	// will be sent to the default version of the default service when
 	// the task is attempted.
-	Host                 string   `protobuf:"bytes,4,opt,name=host" json:"host,omitempty"`
+	Host                 string   `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/tasks/v2beta2/task.pb.go b/googleapis/cloud/tasks/v2beta2/task.pb.go
index feffd2a07d4031c656d17c10c8e8eb4ce7572c73..6edb6bcbfa5462de5ec1881fde3e178c596ea097 100644
--- a/googleapis/cloud/tasks/v2beta2/task.pb.go
+++ b/googleapis/cloud/tasks/v2beta2/task.pb.go
@@ -90,7 +90,7 @@ type Task struct {
 	//   hyphens (-), or underscores (_). The maximum length is 500 characters.
 	//
 	// Optionally caller-specified in [CreateTask][google.cloud.tasks.v2beta2.CloudTasks.CreateTask].
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required.
 	//
 	// The task's payload is used by the task's target to process the task.
@@ -110,16 +110,16 @@ type Task struct {
 	// leased plus the [lease_duration][google.cloud.tasks.v2beta2.LeaseTasksRequest.lease_duration].
 	//
 	// `schedule_time` will be truncated to the nearest microsecond.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// Output only. The time that the task was created.
 	//
 	// `create_time` will be truncated to the nearest second.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The task status.
-	Status *TaskStatus `protobuf:"bytes,7,opt,name=status" json:"status,omitempty"`
+	Status *TaskStatus `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
 	// Output only. The view specifies which subset of the [Task][google.cloud.tasks.v2beta2.Task] has
 	// been returned.
-	View                 Task_View `protobuf:"varint,8,opt,name=view,enum=google.cloud.tasks.v2beta2.Task_View" json:"view,omitempty"`
+	View                 Task_View `protobuf:"varint,8,opt,name=view,proto3,enum=google.cloud.tasks.v2beta2.Task_View" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -154,10 +154,10 @@ type isTask_PayloadType interface {
 }
 
 type Task_AppEngineHttpRequest struct {
-	AppEngineHttpRequest *AppEngineHttpRequest `protobuf:"bytes,3,opt,name=app_engine_http_request,json=appEngineHttpRequest,oneof"`
+	AppEngineHttpRequest *AppEngineHttpRequest `protobuf:"bytes,3,opt,name=app_engine_http_request,json=appEngineHttpRequest,proto3,oneof"`
 }
 type Task_PullMessage struct {
-	PullMessage *PullMessage `protobuf:"bytes,4,opt,name=pull_message,json=pullMessage,oneof"`
+	PullMessage *PullMessage `protobuf:"bytes,4,opt,name=pull_message,json=pullMessage,proto3,oneof"`
 }
 
 func (*Task_AppEngineHttpRequest) isTask_PayloadType() {}
@@ -299,12 +299,12 @@ type TaskStatus struct {
 	//
 	// This count includes tasks which have been dispatched but haven't
 	// received a response.
-	AttemptDispatchCount int32 `protobuf:"varint,1,opt,name=attempt_dispatch_count,json=attemptDispatchCount" json:"attempt_dispatch_count,omitempty"`
+	AttemptDispatchCount int32 `protobuf:"varint,1,opt,name=attempt_dispatch_count,json=attemptDispatchCount,proto3" json:"attempt_dispatch_count,omitempty"`
 	// Output only. The number of attempts which have received a response.
 	//
 	// This field is not calculated for
 	// [pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
-	AttemptResponseCount int32 `protobuf:"varint,2,opt,name=attempt_response_count,json=attemptResponseCount" json:"attempt_response_count,omitempty"`
+	AttemptResponseCount int32 `protobuf:"varint,2,opt,name=attempt_response_count,json=attemptResponseCount,proto3" json:"attempt_response_count,omitempty"`
 	// Output only. The status of the task's first attempt.
 	//
 	// Only [dispatch_time][google.cloud.tasks.v2beta2.AttemptStatus.dispatch_time] will be set.
@@ -312,12 +312,12 @@ type TaskStatus struct {
 	//
 	// This field is not calculated for
 	// [pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
-	FirstAttemptStatus *AttemptStatus `protobuf:"bytes,3,opt,name=first_attempt_status,json=firstAttemptStatus" json:"first_attempt_status,omitempty"`
+	FirstAttemptStatus *AttemptStatus `protobuf:"bytes,3,opt,name=first_attempt_status,json=firstAttemptStatus,proto3" json:"first_attempt_status,omitempty"`
 	// Output only. The status of the task's last attempt.
 	//
 	// This field is not calculated for
 	// [pull tasks](google.cloud.tasks.v2beta2.PullTaskTarget).
-	LastAttemptStatus    *AttemptStatus `protobuf:"bytes,4,opt,name=last_attempt_status,json=lastAttemptStatus" json:"last_attempt_status,omitempty"`
+	LastAttemptStatus    *AttemptStatus `protobuf:"bytes,4,opt,name=last_attempt_status,json=lastAttemptStatus,proto3" json:"last_attempt_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -380,20 +380,20 @@ type AttemptStatus struct {
 	// Output only. The time that this attempt was scheduled.
 	//
 	// `schedule_time` will be truncated to the nearest microsecond.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// Output only. The time that this attempt was dispatched.
 	//
 	// `dispatch_time` will be truncated to the nearest microsecond.
-	DispatchTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=dispatch_time,json=dispatchTime" json:"dispatch_time,omitempty"`
+	DispatchTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=dispatch_time,json=dispatchTime,proto3" json:"dispatch_time,omitempty"`
 	// Output only. The time that this attempt response was received.
 	//
 	// `response_time` will be truncated to the nearest microsecond.
-	ResponseTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=response_time,json=responseTime" json:"response_time,omitempty"`
+	ResponseTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=response_time,json=responseTime,proto3" json:"response_time,omitempty"`
 	// Output only. The response from the target for this attempt.
 	//
 	// If the task has not been attempted or the task is currently running
 	// then the response status is unset.
-	ResponseStatus       *status.Status `protobuf:"bytes,4,opt,name=response_status,json=responseStatus" json:"response_status,omitempty"`
+	ResponseStatus       *status.Status `protobuf:"bytes,4,opt,name=response_status,json=responseStatus,proto3" json:"response_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
diff --git a/googleapis/cloud/texttospeech/v1/cloud_tts.pb.go b/googleapis/cloud/texttospeech/v1/cloud_tts.pb.go
index 6cc42be8f72da690d6b5ce931c7e4dd021a8c016..431f3d9556e0bcd663cca0f2b09ef15309dbddb9 100644
--- a/googleapis/cloud/texttospeech/v1/cloud_tts.pb.go
+++ b/googleapis/cloud/texttospeech/v1/cloud_tts.pb.go
@@ -112,7 +112,7 @@ type ListVoicesRequest struct {
 	// "no-*" (Norwegian) and "nb-*" (Norwegian Bokmal) voices; specifying "zh"
 	// will also get supported "cmn-*" voices; specifying "zh-hk" will also get
 	// supported "yue-*" voices.
-	LanguageCode         string   `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -152,7 +152,7 @@ func (m *ListVoicesRequest) GetLanguageCode() string {
 // The message returned to the client by the `ListVoices` method.
 type ListVoicesResponse struct {
 	// The list of voices.
-	Voices               []*Voice `protobuf:"bytes,1,rep,name=voices" json:"voices,omitempty"`
+	Voices               []*Voice `protobuf:"bytes,1,rep,name=voices,proto3" json:"voices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -194,13 +194,13 @@ type Voice struct {
 	// The languages that this voice supports, expressed as
 	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g.
 	// "en-US", "es-419", "cmn-tw").
-	LanguageCodes []string `protobuf:"bytes,1,rep,name=language_codes,json=languageCodes" json:"language_codes,omitempty"`
+	LanguageCodes []string `protobuf:"bytes,1,rep,name=language_codes,json=languageCodes,proto3" json:"language_codes,omitempty"`
 	// The name of this voice.  Each distinct voice has a unique name.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The gender of this voice.
-	SsmlGender SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,enum=google.cloud.texttospeech.v1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
+	SsmlGender SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,proto3,enum=google.cloud.texttospeech.v1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
 	// The natural sample rate (in hertz) for this voice.
-	NaturalSampleRateHertz int32    `protobuf:"varint,4,opt,name=natural_sample_rate_hertz,json=naturalSampleRateHertz" json:"natural_sample_rate_hertz,omitempty"`
+	NaturalSampleRateHertz int32    `protobuf:"varint,4,opt,name=natural_sample_rate_hertz,json=naturalSampleRateHertz,proto3" json:"natural_sample_rate_hertz,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -261,11 +261,11 @@ func (m *Voice) GetNaturalSampleRateHertz() int32 {
 // The top-level message sent by the client for the `SynthesizeSpeech` method.
 type SynthesizeSpeechRequest struct {
 	// Required. The Synthesizer requires either plain text or SSML as input.
-	Input *SynthesisInput `protobuf:"bytes,1,opt,name=input" json:"input,omitempty"`
+	Input *SynthesisInput `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
 	// Required. The desired voice of the synthesized audio.
-	Voice *VoiceSelectionParams `protobuf:"bytes,2,opt,name=voice" json:"voice,omitempty"`
+	Voice *VoiceSelectionParams `protobuf:"bytes,2,opt,name=voice,proto3" json:"voice,omitempty"`
 	// Required. The configuration of the synthesized audio.
-	AudioConfig          *AudioConfig `protobuf:"bytes,3,opt,name=audio_config,json=audioConfig" json:"audio_config,omitempty"`
+	AudioConfig          *AudioConfig `protobuf:"bytes,3,opt,name=audio_config,json=audioConfig,proto3" json:"audio_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -361,10 +361,10 @@ type isSynthesisInput_InputSource interface {
 }
 
 type SynthesisInput_Text struct {
-	Text string `protobuf:"bytes,1,opt,name=text,oneof"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
 }
 type SynthesisInput_Ssml struct {
-	Ssml string `protobuf:"bytes,2,opt,name=ssml,oneof"`
+	Ssml string `protobuf:"bytes,2,opt,name=ssml,proto3,oneof"`
 }
 
 func (*SynthesisInput_Text) isSynthesisInput_InputSource() {}
@@ -470,16 +470,16 @@ type VoiceSelectionParams struct {
 	// (e.g. using en-US rather than en-CA if there isn't a Canadian voice
 	// available), or even a different language, e.g. using "nb" (Norwegian
 	// Bokmal) instead of "no" (Norwegian)".
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// The name of the voice. Optional; if not set, the service will choose a
 	// voice based on the other parameters such as language_code and gender.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The preferred gender of the voice. Optional; if not set, the service will
 	// choose a voice based on the other parameters such as language_code and
 	// name. Note that this is only a preference, not requirement; if a
 	// voice of the appropriate gender is not available, the synthesizer should
 	// substitute a voice with a different gender rather than failing the request.
-	SsmlGender           SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,enum=google.cloud.texttospeech.v1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
+	SsmlGender           SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,proto3,enum=google.cloud.texttospeech.v1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -533,16 +533,16 @@ func (m *VoiceSelectionParams) GetSsmlGender() SsmlVoiceGender {
 // Description of audio data to be synthesized.
 type AudioConfig struct {
 	// Required. The format of the requested audio byte stream.
-	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,enum=google.cloud.texttospeech.v1.AudioEncoding" json:"audio_encoding,omitempty"`
+	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,proto3,enum=google.cloud.texttospeech.v1.AudioEncoding" json:"audio_encoding,omitempty"`
 	// Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
 	// native speed supported by the specific voice. 2.0 is twice as fast, and
 	// 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
 	// other values < 0.25 or > 4.0 will return an error.
-	SpeakingRate float64 `protobuf:"fixed64,2,opt,name=speaking_rate,json=speakingRate" json:"speaking_rate,omitempty"`
+	SpeakingRate float64 `protobuf:"fixed64,2,opt,name=speaking_rate,json=speakingRate,proto3" json:"speaking_rate,omitempty"`
 	// Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
 	// semitones from the original pitch. -20 means decrease 20 semitones from the
 	// original pitch.
-	Pitch float64 `protobuf:"fixed64,3,opt,name=pitch" json:"pitch,omitempty"`
+	Pitch float64 `protobuf:"fixed64,3,opt,name=pitch,proto3" json:"pitch,omitempty"`
 	// Optional volume gain (in dB) of the normal native volume supported by the
 	// specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
 	// 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
@@ -551,14 +551,14 @@ type AudioConfig struct {
 	// amplitude of the normal native signal amplitude. Strongly recommend not to
 	// exceed +10 (dB) as there's usually no effective increase in loudness for
 	// any value greater than that.
-	VolumeGainDb float64 `protobuf:"fixed64,4,opt,name=volume_gain_db,json=volumeGainDb" json:"volume_gain_db,omitempty"`
+	VolumeGainDb float64 `protobuf:"fixed64,4,opt,name=volume_gain_db,json=volumeGainDb,proto3" json:"volume_gain_db,omitempty"`
 	// The synthesis sample rate (in hertz) for this audio. Optional.  If this is
 	// different from the voice's natural sample rate, then the synthesizer will
 	// honor this request by converting to the desired sample rate (which might
 	// result in worse audio quality), unless the specified sample rate is not
 	// supported for the encoding chosen, in which case it will fail the request
 	// and return [google.rpc.Code.INVALID_ARGUMENT][].
-	SampleRateHertz      int32    `protobuf:"varint,5,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz      int32    `protobuf:"varint,5,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -725,8 +725,7 @@ func (c *textToSpeechClient) SynthesizeSpeech(ctx context.Context, in *Synthesiz
 	return out, nil
 }
 
-// Server API for TextToSpeech service
-
+// TextToSpeechServer is the server API for TextToSpeech service.
 type TextToSpeechServer interface {
 	// Returns a list of [Voice][google.cloud.texttospeech.v1.Voice]
 	// supported for synthesis.
diff --git a/googleapis/cloud/texttospeech/v1beta1/cloud_tts.pb.go b/googleapis/cloud/texttospeech/v1beta1/cloud_tts.pb.go
index bdfb5b678d4156611268e13f2510e596d9dcae73..72c97b1de0b93f3b0c653b69799e1cbf57e65634 100644
--- a/googleapis/cloud/texttospeech/v1beta1/cloud_tts.pb.go
+++ b/googleapis/cloud/texttospeech/v1beta1/cloud_tts.pb.go
@@ -60,7 +60,7 @@ func (x SsmlVoiceGender) String() string {
 	return proto.EnumName(SsmlVoiceGender_name, int32(x))
 }
 func (SsmlVoiceGender) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{0}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{0}
 }
 
 // Configuration to set up audio encoder. The encoding determines the output
@@ -99,7 +99,7 @@ func (x AudioEncoding) String() string {
 	return proto.EnumName(AudioEncoding_name, int32(x))
 }
 func (AudioEncoding) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{1}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{1}
 }
 
 // The top-level message sent by the client for the `ListVoices` method.
@@ -112,7 +112,7 @@ type ListVoicesRequest struct {
 	// "no-*" (Norwegian) and "nb-*" (Norwegian Bokmal) voices; specifying "zh"
 	// will also get supported "cmn-*" voices; specifying "zh-hk" will also get
 	// supported "yue-*" voices.
-	LanguageCode         string   `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -122,7 +122,7 @@ func (m *ListVoicesRequest) Reset()         { *m = ListVoicesRequest{} }
 func (m *ListVoicesRequest) String() string { return proto.CompactTextString(m) }
 func (*ListVoicesRequest) ProtoMessage()    {}
 func (*ListVoicesRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{0}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{0}
 }
 func (m *ListVoicesRequest) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ListVoicesRequest.Unmarshal(m, b)
@@ -152,7 +152,7 @@ func (m *ListVoicesRequest) GetLanguageCode() string {
 // The message returned to the client by the `ListVoices` method.
 type ListVoicesResponse struct {
 	// The list of voices.
-	Voices               []*Voice `protobuf:"bytes,1,rep,name=voices" json:"voices,omitempty"`
+	Voices               []*Voice `protobuf:"bytes,1,rep,name=voices,proto3" json:"voices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -162,7 +162,7 @@ func (m *ListVoicesResponse) Reset()         { *m = ListVoicesResponse{} }
 func (m *ListVoicesResponse) String() string { return proto.CompactTextString(m) }
 func (*ListVoicesResponse) ProtoMessage()    {}
 func (*ListVoicesResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{1}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{1}
 }
 func (m *ListVoicesResponse) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ListVoicesResponse.Unmarshal(m, b)
@@ -194,13 +194,13 @@ type Voice struct {
 	// The languages that this voice supports, expressed as
 	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tags (e.g.
 	// "en-US", "es-419", "cmn-tw").
-	LanguageCodes []string `protobuf:"bytes,1,rep,name=language_codes,json=languageCodes" json:"language_codes,omitempty"`
+	LanguageCodes []string `protobuf:"bytes,1,rep,name=language_codes,json=languageCodes,proto3" json:"language_codes,omitempty"`
 	// The name of this voice.  Each distinct voice has a unique name.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The gender of this voice.
-	SsmlGender SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,enum=google.cloud.texttospeech.v1beta1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
+	SsmlGender SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,proto3,enum=google.cloud.texttospeech.v1beta1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
 	// The natural sample rate (in hertz) for this voice.
-	NaturalSampleRateHertz int32    `protobuf:"varint,4,opt,name=natural_sample_rate_hertz,json=naturalSampleRateHertz" json:"natural_sample_rate_hertz,omitempty"`
+	NaturalSampleRateHertz int32    `protobuf:"varint,4,opt,name=natural_sample_rate_hertz,json=naturalSampleRateHertz,proto3" json:"natural_sample_rate_hertz,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -210,7 +210,7 @@ func (m *Voice) Reset()         { *m = Voice{} }
 func (m *Voice) String() string { return proto.CompactTextString(m) }
 func (*Voice) ProtoMessage()    {}
 func (*Voice) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{2}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{2}
 }
 func (m *Voice) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Voice.Unmarshal(m, b)
@@ -261,11 +261,11 @@ func (m *Voice) GetNaturalSampleRateHertz() int32 {
 // The top-level message sent by the client for the `SynthesizeSpeech` method.
 type SynthesizeSpeechRequest struct {
 	// Required. The Synthesizer requires either plain text or SSML as input.
-	Input *SynthesisInput `protobuf:"bytes,1,opt,name=input" json:"input,omitempty"`
+	Input *SynthesisInput `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
 	// Required. The desired voice of the synthesized audio.
-	Voice *VoiceSelectionParams `protobuf:"bytes,2,opt,name=voice" json:"voice,omitempty"`
+	Voice *VoiceSelectionParams `protobuf:"bytes,2,opt,name=voice,proto3" json:"voice,omitempty"`
 	// Required. The configuration of the synthesized audio.
-	AudioConfig          *AudioConfig `protobuf:"bytes,3,opt,name=audio_config,json=audioConfig" json:"audio_config,omitempty"`
+	AudioConfig          *AudioConfig `protobuf:"bytes,3,opt,name=audio_config,json=audioConfig,proto3" json:"audio_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -275,7 +275,7 @@ func (m *SynthesizeSpeechRequest) Reset()         { *m = SynthesizeSpeechRequest
 func (m *SynthesizeSpeechRequest) String() string { return proto.CompactTextString(m) }
 func (*SynthesizeSpeechRequest) ProtoMessage()    {}
 func (*SynthesizeSpeechRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{3}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{3}
 }
 func (m *SynthesizeSpeechRequest) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SynthesizeSpeechRequest.Unmarshal(m, b)
@@ -336,7 +336,7 @@ func (m *SynthesisInput) Reset()         { *m = SynthesisInput{} }
 func (m *SynthesisInput) String() string { return proto.CompactTextString(m) }
 func (*SynthesisInput) ProtoMessage()    {}
 func (*SynthesisInput) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{4}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{4}
 }
 func (m *SynthesisInput) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SynthesisInput.Unmarshal(m, b)
@@ -361,10 +361,10 @@ type isSynthesisInput_InputSource interface {
 }
 
 type SynthesisInput_Text struct {
-	Text string `protobuf:"bytes,1,opt,name=text,oneof"`
+	Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
 }
 type SynthesisInput_Ssml struct {
-	Ssml string `protobuf:"bytes,2,opt,name=ssml,oneof"`
+	Ssml string `protobuf:"bytes,2,opt,name=ssml,proto3,oneof"`
 }
 
 func (*SynthesisInput_Text) isSynthesisInput_InputSource() {}
@@ -470,16 +470,16 @@ type VoiceSelectionParams struct {
 	// (e.g. using en-US rather than en-CA if there isn't a Canadian voice
 	// available), or even a different language, e.g. using "nb" (Norwegian
 	// Bokmal) instead of "no" (Norwegian)".
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// The name of the voice. Optional; if not set, the service will choose a
 	// voice based on the other parameters such as language_code and gender.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The preferred gender of the voice. Optional; if not set, the service will
 	// choose a voice based on the other parameters such as language_code and
 	// name. Note that this is only a preference, not requirement; if a
 	// voice of the appropriate gender is not available, the synthesizer should
 	// substitute a voice with a different gender rather than failing the request.
-	SsmlGender           SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,enum=google.cloud.texttospeech.v1beta1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
+	SsmlGender           SsmlVoiceGender `protobuf:"varint,3,opt,name=ssml_gender,json=ssmlGender,proto3,enum=google.cloud.texttospeech.v1beta1.SsmlVoiceGender" json:"ssml_gender,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -489,7 +489,7 @@ func (m *VoiceSelectionParams) Reset()         { *m = VoiceSelectionParams{} }
 func (m *VoiceSelectionParams) String() string { return proto.CompactTextString(m) }
 func (*VoiceSelectionParams) ProtoMessage()    {}
 func (*VoiceSelectionParams) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{5}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{5}
 }
 func (m *VoiceSelectionParams) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_VoiceSelectionParams.Unmarshal(m, b)
@@ -533,16 +533,16 @@ func (m *VoiceSelectionParams) GetSsmlGender() SsmlVoiceGender {
 // Description of audio data to be synthesized.
 type AudioConfig struct {
 	// Required. The format of the requested audio byte stream.
-	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,enum=google.cloud.texttospeech.v1beta1.AudioEncoding" json:"audio_encoding,omitempty"`
+	AudioEncoding AudioEncoding `protobuf:"varint,1,opt,name=audio_encoding,json=audioEncoding,proto3,enum=google.cloud.texttospeech.v1beta1.AudioEncoding" json:"audio_encoding,omitempty"`
 	// Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
 	// native speed supported by the specific voice. 2.0 is twice as fast, and
 	// 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
 	// other values < 0.25 or > 4.0 will return an error.
-	SpeakingRate float64 `protobuf:"fixed64,2,opt,name=speaking_rate,json=speakingRate" json:"speaking_rate,omitempty"`
+	SpeakingRate float64 `protobuf:"fixed64,2,opt,name=speaking_rate,json=speakingRate,proto3" json:"speaking_rate,omitempty"`
 	// Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
 	// semitones from the original pitch. -20 means decrease 20 semitones from the
 	// original pitch.
-	Pitch float64 `protobuf:"fixed64,3,opt,name=pitch" json:"pitch,omitempty"`
+	Pitch float64 `protobuf:"fixed64,3,opt,name=pitch,proto3" json:"pitch,omitempty"`
 	// Optional volume gain (in dB) of the normal native volume supported by the
 	// specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
 	// 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
@@ -551,14 +551,18 @@ type AudioConfig struct {
 	// amplitude of the normal native signal amplitude. Strongly recommend not to
 	// exceed +10 (dB) as there's usually no effective increase in loudness for
 	// any value greater than that.
-	VolumeGainDb float64 `protobuf:"fixed64,4,opt,name=volume_gain_db,json=volumeGainDb" json:"volume_gain_db,omitempty"`
+	VolumeGainDb float64 `protobuf:"fixed64,4,opt,name=volume_gain_db,json=volumeGainDb,proto3" json:"volume_gain_db,omitempty"`
 	// The synthesis sample rate (in hertz) for this audio. Optional.  If this is
 	// different from the voice's natural sample rate, then the synthesizer will
 	// honor this request by converting to the desired sample rate (which might
 	// result in worse audio quality), unless the specified sample rate is not
 	// supported for the encoding chosen, in which case it will fail the request
 	// and return [google.rpc.Code.INVALID_ARGUMENT][].
-	SampleRateHertz      int32    `protobuf:"varint,5,opt,name=sample_rate_hertz,json=sampleRateHertz" json:"sample_rate_hertz,omitempty"`
+	SampleRateHertz int32 `protobuf:"varint,5,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
+	// An identifier which selects 'audio effects' profiles that are applied on
+	// (post synthesized) text to speech.
+	// Effects are applied on top of each other in the order they are given.
+	EffectsProfileId     []string `protobuf:"bytes,6,rep,name=effects_profile_id,json=effectsProfileId,proto3" json:"effects_profile_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -568,7 +572,7 @@ func (m *AudioConfig) Reset()         { *m = AudioConfig{} }
 func (m *AudioConfig) String() string { return proto.CompactTextString(m) }
 func (*AudioConfig) ProtoMessage()    {}
 func (*AudioConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{6}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{6}
 }
 func (m *AudioConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_AudioConfig.Unmarshal(m, b)
@@ -623,6 +627,13 @@ func (m *AudioConfig) GetSampleRateHertz() int32 {
 	return 0
 }
 
+func (m *AudioConfig) GetEffectsProfileId() []string {
+	if m != nil {
+		return m.EffectsProfileId
+	}
+	return nil
+}
+
 // The message returned to the client by the `SynthesizeSpeech` method.
 type SynthesizeSpeechResponse struct {
 	// The audio data bytes encoded as specified in the request, including the
@@ -639,7 +650,7 @@ func (m *SynthesizeSpeechResponse) Reset()         { *m = SynthesizeSpeechRespon
 func (m *SynthesizeSpeechResponse) String() string { return proto.CompactTextString(m) }
 func (*SynthesizeSpeechResponse) ProtoMessage()    {}
 func (*SynthesizeSpeechResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_cloud_tts_48487c666911cd00, []int{7}
+	return fileDescriptor_cloud_tts_b74274d69cd9534d, []int{7}
 }
 func (m *SynthesizeSpeechResponse) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SynthesizeSpeechResponse.Unmarshal(m, b)
@@ -725,8 +736,7 @@ func (c *textToSpeechClient) SynthesizeSpeech(ctx context.Context, in *Synthesiz
 	return out, nil
 }
 
-// Server API for TextToSpeech service
-
+// TextToSpeechServer is the server API for TextToSpeech service.
 type TextToSpeechServer interface {
 	// Returns a list of [Voice][google.cloud.texttospeech.v1beta1.Voice]
 	// supported for synthesis.
@@ -794,62 +804,64 @@ var _TextToSpeech_serviceDesc = grpc.ServiceDesc{
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/texttospeech/v1beta1/cloud_tts.proto", fileDescriptor_cloud_tts_48487c666911cd00)
-}
-
-var fileDescriptor_cloud_tts_48487c666911cd00 = []byte{
-	// 846 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4d, 0x6f, 0x1b, 0x45,
-	0x18, 0xee, 0xd8, 0x71, 0xda, 0xbe, 0x5e, 0x3b, 0xce, 0x28, 0xa2, 0x26, 0xa2, 0x28, 0xdd, 0x50,
-	0xc9, 0xca, 0xc1, 0xc6, 0x2e, 0x9f, 0xe9, 0x01, 0x1c, 0x7b, 0xeb, 0x5a, 0xf2, 0x17, 0xb3, 0x49,
-	0x2a, 0x71, 0x59, 0x4d, 0xd6, 0xc3, 0x66, 0xc5, 0x7a, 0x66, 0xf1, 0x8c, 0xa3, 0xd2, 0x23, 0xe2,
-	0xcc, 0x01, 0xfe, 0x02, 0x3f, 0x80, 0xdf, 0x02, 0x12, 0xbf, 0x80, 0x7f, 0xc0, 0x85, 0x23, 0x9a,
-	0x99, 0x4d, 0xea, 0x38, 0x88, 0x3a, 0x1c, 0xb8, 0xed, 0x3c, 0xe3, 0xe7, 0x9d, 0xe7, 0x7d, 0xe6,
-	0xf1, 0x3b, 0xd0, 0x8c, 0x84, 0x88, 0x12, 0xd6, 0x08, 0x13, 0xb1, 0x98, 0x36, 0x14, 0x7b, 0xa9,
-	0x94, 0x90, 0x29, 0x63, 0xe1, 0x79, 0xe3, 0xa2, 0x79, 0xc6, 0x14, 0x6d, 0xda, 0xad, 0x40, 0x29,
-	0x59, 0x4f, 0xe7, 0x42, 0x09, 0xfc, 0xc8, 0x52, 0xea, 0x06, 0xaf, 0x2f, 0x53, 0xea, 0x19, 0x65,
-	0xf7, 0x9d, 0xac, 0x2a, 0x4d, 0xe3, 0x06, 0xe5, 0x5c, 0x28, 0xaa, 0x62, 0xc1, 0xb3, 0x02, 0xee,
-	0x27, 0xb0, 0x3d, 0x88, 0xa5, 0x3a, 0x15, 0x71, 0xc8, 0x24, 0x61, 0xdf, 0x2c, 0x98, 0x54, 0x78,
-	0x1f, 0x4a, 0x09, 0xe5, 0xd1, 0x82, 0x46, 0x2c, 0x08, 0xc5, 0x94, 0x55, 0xd1, 0x1e, 0xaa, 0xdd,
-	0x27, 0xce, 0x25, 0xd8, 0x11, 0x53, 0xe6, 0x9e, 0x02, 0x5e, 0x66, 0xca, 0x54, 0x70, 0xc9, 0xf0,
-	0xe7, 0xb0, 0x79, 0x61, 0x90, 0x2a, 0xda, 0xcb, 0xd7, 0x8a, 0xad, 0x5a, 0xfd, 0x8d, 0x0a, 0xeb,
-	0xa6, 0x04, 0xc9, 0x78, 0xee, 0xaf, 0x08, 0x0a, 0x06, 0xc1, 0x8f, 0xa1, 0x7c, 0x4d, 0x86, 0xad,
-	0x79, 0x9f, 0x94, 0x96, 0x75, 0x48, 0x8c, 0x61, 0x83, 0xd3, 0x19, 0xab, 0xe6, 0x8c, 0x48, 0xf3,
-	0x8d, 0x7d, 0x28, 0x4a, 0x39, 0x4b, 0x82, 0x88, 0xf1, 0x29, 0x9b, 0x57, 0xf3, 0x7b, 0xa8, 0x56,
-	0x6e, 0xb5, 0xd6, 0xd0, 0xe2, 0xcb, 0x59, 0x62, 0x4e, 0xef, 0x19, 0x26, 0x01, 0x5d, 0xc6, 0x7e,
-	0xe3, 0x4f, 0xe1, 0x6d, 0x4e, 0xd5, 0x62, 0x4e, 0x93, 0x40, 0xd2, 0x59, 0x9a, 0xb0, 0x60, 0x4e,
-	0x15, 0x0b, 0xce, 0xd9, 0x5c, 0xbd, 0xaa, 0x6e, 0xec, 0xa1, 0x5a, 0x81, 0xbc, 0x95, 0xfd, 0xc0,
-	0x37, 0xfb, 0x84, 0x2a, 0xf6, 0x5c, 0xef, 0xba, 0xdf, 0xe7, 0xe0, 0x81, 0xff, 0x2d, 0x57, 0xe7,
-	0x4c, 0xc6, 0xaf, 0x98, 0x6f, 0xce, 0xbc, 0x74, 0xbb, 0x07, 0x85, 0x98, 0xa7, 0x0b, 0x65, 0x5c,
-	0x2e, 0xb6, 0x9a, 0xeb, 0xa8, 0xcc, 0x4a, 0xc9, 0xbe, 0x26, 0x12, 0xcb, 0xc7, 0x43, 0x28, 0x18,
-	0x0f, 0x8d, 0x13, 0xc5, 0xd6, 0xc7, 0xeb, 0x5a, 0xef, 0xb3, 0x84, 0x85, 0x3a, 0x14, 0x13, 0x3a,
-	0xa7, 0x33, 0x49, 0x6c, 0x15, 0xfc, 0x05, 0x38, 0x74, 0x31, 0x8d, 0x45, 0x10, 0x0a, 0xfe, 0x55,
-	0x1c, 0x19, 0x13, 0x8b, 0xad, 0xfa, 0x1a, 0x55, 0xdb, 0x9a, 0xd6, 0x31, 0x2c, 0x52, 0xa4, 0xaf,
-	0x17, 0xee, 0x00, 0xca, 0xd7, 0xa5, 0xe3, 0x1d, 0xd8, 0xd0, 0x25, 0x6c, 0xc2, 0x9e, 0xdf, 0x21,
-	0x66, 0xa5, 0x51, 0xed, 0xbb, 0xbd, 0x52, 0x8d, 0xea, 0xd5, 0x51, 0x19, 0x1c, 0xd3, 0x68, 0x20,
-	0xc5, 0x62, 0x1e, 0x32, 0xf7, 0x67, 0x04, 0x3b, 0xff, 0xd4, 0xc0, 0x5a, 0xf9, 0xfd, 0xdf, 0x62,
-	0xe3, 0xfe, 0x89, 0xa0, 0xb8, 0xe4, 0x08, 0x7e, 0x01, 0x65, 0xeb, 0x2b, 0xe3, 0xa1, 0x98, 0xc6,
-	0x3c, 0x32, 0xf2, 0xca, 0xad, 0xf7, 0xd7, 0x75, 0xd6, 0xcb, 0x78, 0xa4, 0x44, 0x97, 0x97, 0xba,
-	0x6d, 0x99, 0x32, 0xfa, 0x75, 0xcc, 0x23, 0x93, 0x4c, 0xd3, 0x1a, 0x22, 0xce, 0x25, 0xa8, 0xe3,
-	0x88, 0x77, 0xa0, 0x90, 0xc6, 0x2a, 0x3c, 0x37, 0xcd, 0x21, 0x62, 0x17, 0xf8, 0x3d, 0x28, 0x5f,
-	0x88, 0x64, 0x31, 0x63, 0x41, 0x44, 0x63, 0x1e, 0x4c, 0xcf, 0x4c, 0x9e, 0x11, 0x71, 0x2c, 0xda,
-	0xa3, 0x31, 0xef, 0x9e, 0xe1, 0x03, 0xd8, 0xbe, 0x19, 0xfc, 0x82, 0x09, 0xfe, 0x96, 0x5c, 0x49,
-	0xfc, 0x67, 0x50, 0xbd, 0x19, 0xf8, 0x6c, 0x48, 0xec, 0x43, 0xe9, 0x2a, 0x59, 0x8a, 0x71, 0x7b,
-	0xfb, 0x0e, 0x71, 0x2e, 0xa3, 0xa2, 0xb1, 0x83, 0x17, 0xb0, 0xb5, 0xe2, 0x2a, 0x7e, 0x04, 0x0f,
-	0x7d, 0x7f, 0x38, 0x08, 0x4e, 0xc7, 0xfd, 0x8e, 0x17, 0xf4, 0xbc, 0x51, 0xd7, 0x23, 0xc1, 0xc9,
-	0xc8, 0x9f, 0x78, 0x9d, 0xfe, 0xb3, 0xbe, 0xd7, 0xad, 0xdc, 0xc1, 0xf7, 0x60, 0x63, 0xd8, 0x1e,
-	0x78, 0x15, 0x84, 0x01, 0x36, 0x9f, 0x79, 0xe6, 0x3b, 0x87, 0x8b, 0x70, 0x77, 0xe4, 0x9d, 0x1c,
-	0x93, 0xf6, 0xa0, 0x92, 0x3f, 0x38, 0x86, 0xd2, 0x35, 0x1b, 0xf1, 0xbb, 0xb0, 0xdb, 0x3e, 0xe9,
-	0xf6, 0xc7, 0x81, 0x37, 0xea, 0x8c, 0xbb, 0xfd, 0x51, 0x6f, 0xa5, 0xa6, 0x03, 0xf7, 0x06, 0xfd,
-	0x91, 0xd7, 0x26, 0xcd, 0x8f, 0x2a, 0x08, 0xdf, 0x85, 0xfc, 0x70, 0xf2, 0xa4, 0x92, 0xd3, 0xf0,
-	0xb8, 0xd7, 0x0b, 0xc6, 0x93, 0x13, 0xbf, 0x92, 0x6f, 0xfd, 0x9e, 0x03, 0xe7, 0x98, 0xbd, 0x54,
-	0xc7, 0xc2, 0x36, 0x8b, 0x7f, 0x44, 0x00, 0xaf, 0x07, 0x24, 0xfe, 0x60, 0x8d, 0xdb, 0xbd, 0x31,
-	0x89, 0x77, 0x3f, 0xbc, 0x25, 0xcb, 0x1a, 0xec, 0x3e, 0xf8, 0xee, 0xb7, 0x3f, 0x7e, 0xca, 0x6d,
-	0xe3, 0xad, 0xab, 0x87, 0xc3, 0x0e, 0x57, 0xfc, 0x0b, 0x82, 0xca, 0xea, 0xb5, 0xe0, 0xc3, 0x5b,
-	0x4c, 0x9c, 0x95, 0xe1, 0xb5, 0xfb, 0xf4, 0x3f, 0x71, 0x33, 0x99, 0xfb, 0x46, 0xe6, 0x43, 0xb7,
-	0x7a, 0x25, 0x53, 0xf3, 0x0f, 0xe5, 0xd5, 0xef, 0x0f, 0xd1, 0xc1, 0xd1, 0x0f, 0x08, 0x1e, 0x87,
-	0x62, 0xf6, 0xe6, 0x73, 0x8e, 0xb6, 0x97, 0xfd, 0x9f, 0xe8, 0xe7, 0x6d, 0x82, 0xbe, 0x1c, 0x66,
-	0xbc, 0x48, 0xe8, 0x7f, 0x7f, 0x5d, 0xcc, 0xa3, 0x46, 0xc4, 0xb8, 0x79, 0xfc, 0x1a, 0x76, 0x8b,
-	0xa6, 0xb1, 0xfc, 0x97, 0x37, 0xf7, 0xe9, 0x32, 0xf8, 0x17, 0x42, 0x67, 0x9b, 0x86, 0xfc, 0xe4,
-	0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x09, 0xb8, 0x07, 0xd3, 0xaf, 0x07, 0x00, 0x00,
+	proto.RegisterFile("google/cloud/texttospeech/v1beta1/cloud_tts.proto", fileDescriptor_cloud_tts_b74274d69cd9534d)
+}
+
+var fileDescriptor_cloud_tts_b74274d69cd9534d = []byte{
+	// 875 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xdd, 0x6e, 0x1b, 0x45,
+	0x14, 0xee, 0xd8, 0x71, 0xda, 0x1e, 0xaf, 0x1d, 0x67, 0x14, 0x51, 0x13, 0x51, 0x94, 0x6e, 0xa8,
+	0x64, 0x45, 0xc8, 0xc6, 0x2e, 0xbf, 0xe9, 0x05, 0x38, 0xf6, 0xd6, 0xb5, 0xe4, 0x3f, 0x66, 0x93,
+	0x54, 0xe2, 0x66, 0x35, 0xd9, 0x9d, 0x6c, 0x56, 0xac, 0x67, 0x96, 0x9d, 0x71, 0x54, 0x7a, 0x89,
+	0xb8, 0xe6, 0x02, 0x9e, 0x00, 0x89, 0x07, 0xe0, 0x59, 0x40, 0xe2, 0x09, 0x78, 0x08, 0x2e, 0xd1,
+	0xce, 0x6c, 0x52, 0x27, 0x41, 0xd4, 0xe1, 0x82, 0xbb, 0x99, 0x73, 0xf6, 0x3b, 0xf3, 0x9d, 0x6f,
+	0xbe, 0x3d, 0x03, 0xed, 0x50, 0x88, 0x30, 0x66, 0x2d, 0x3f, 0x16, 0x8b, 0xa0, 0xa5, 0xd8, 0x4b,
+	0xa5, 0x84, 0x4c, 0x18, 0xf3, 0xcf, 0x5a, 0xe7, 0xed, 0x13, 0xa6, 0x68, 0xdb, 0xa4, 0x3c, 0xa5,
+	0x64, 0x33, 0x49, 0x85, 0x12, 0xf8, 0x91, 0x81, 0x34, 0x75, 0xbc, 0xb9, 0x0c, 0x69, 0xe6, 0x90,
+	0xed, 0x77, 0xf2, 0xaa, 0x34, 0x89, 0x5a, 0x94, 0x73, 0xa1, 0xa8, 0x8a, 0x04, 0xcf, 0x0b, 0xd8,
+	0x9f, 0xc2, 0xe6, 0x28, 0x92, 0xea, 0x58, 0x44, 0x3e, 0x93, 0x84, 0x7d, 0xb3, 0x60, 0x52, 0xe1,
+	0x5d, 0xa8, 0xc4, 0x94, 0x87, 0x0b, 0x1a, 0x32, 0xcf, 0x17, 0x01, 0xab, 0xa3, 0x1d, 0xd4, 0xb8,
+	0x4f, 0xac, 0x8b, 0x60, 0x4f, 0x04, 0xcc, 0x3e, 0x06, 0xbc, 0x8c, 0x94, 0x89, 0xe0, 0x92, 0xe1,
+	0x2f, 0x60, 0xfd, 0x5c, 0x47, 0xea, 0x68, 0xa7, 0xd8, 0x28, 0x77, 0x1a, 0xcd, 0x37, 0x32, 0x6c,
+	0xea, 0x12, 0x24, 0xc7, 0xd9, 0xbf, 0x21, 0x28, 0xe9, 0x08, 0x7e, 0x0c, 0xd5, 0x2b, 0x34, 0x4c,
+	0xcd, 0xfb, 0xa4, 0xb2, 0xcc, 0x43, 0x62, 0x0c, 0x6b, 0x9c, 0xce, 0x59, 0xbd, 0xa0, 0x49, 0xea,
+	0x35, 0x76, 0xa1, 0x2c, 0xe5, 0x3c, 0xf6, 0x42, 0xc6, 0x03, 0x96, 0xd6, 0x8b, 0x3b, 0xa8, 0x51,
+	0xed, 0x74, 0x56, 0xe0, 0xe2, 0xca, 0x79, 0xac, 0x4f, 0x1f, 0x68, 0x24, 0x81, 0xac, 0x8c, 0x59,
+	0xe3, 0xcf, 0xe0, 0x6d, 0x4e, 0xd5, 0x22, 0xa5, 0xb1, 0x27, 0xe9, 0x3c, 0x89, 0x99, 0x97, 0x52,
+	0xc5, 0xbc, 0x33, 0x96, 0xaa, 0x57, 0xf5, 0xb5, 0x1d, 0xd4, 0x28, 0x91, 0xb7, 0xf2, 0x0f, 0x5c,
+	0x9d, 0x27, 0x54, 0xb1, 0xe7, 0x59, 0xd6, 0xfe, 0xbe, 0x00, 0x0f, 0xdc, 0x6f, 0xb9, 0x3a, 0x63,
+	0x32, 0x7a, 0xc5, 0x5c, 0x7d, 0xe6, 0x85, 0xda, 0x03, 0x28, 0x45, 0x3c, 0x59, 0x28, 0xad, 0x72,
+	0xb9, 0xd3, 0x5e, 0x85, 0x65, 0x5e, 0x4a, 0x0e, 0x33, 0x20, 0x31, 0x78, 0x3c, 0x86, 0x92, 0xd6,
+	0x50, 0x2b, 0x51, 0xee, 0x7c, 0xb2, 0xaa, 0xf4, 0x2e, 0x8b, 0x99, 0x9f, 0x99, 0x62, 0x46, 0x53,
+	0x3a, 0x97, 0xc4, 0x54, 0xc1, 0x5f, 0x82, 0x45, 0x17, 0x41, 0x24, 0x3c, 0x5f, 0xf0, 0xd3, 0x28,
+	0xd4, 0x22, 0x96, 0x3b, 0xcd, 0x15, 0xaa, 0x76, 0x33, 0x58, 0x4f, 0xa3, 0x48, 0x99, 0xbe, 0xde,
+	0xd8, 0x23, 0xa8, 0x5e, 0xa5, 0x8e, 0xb7, 0x60, 0x2d, 0x2b, 0x61, 0x1c, 0xf6, 0xfc, 0x0e, 0xd1,
+	0xbb, 0x2c, 0x9a, 0xe9, 0x6e, 0xae, 0x34, 0x8b, 0x66, 0xbb, 0x83, 0x2a, 0x58, 0xba, 0x51, 0x4f,
+	0x8a, 0x45, 0xea, 0x33, 0xfb, 0x17, 0x04, 0x5b, 0xff, 0xd4, 0xc0, 0x4a, 0xfe, 0xfd, 0xdf, 0x6c,
+	0x63, 0xff, 0x5c, 0x80, 0xf2, 0x92, 0x22, 0xf8, 0x05, 0x54, 0x8d, 0xae, 0x8c, 0xfb, 0x22, 0x88,
+	0x78, 0xa8, 0xe9, 0x55, 0x3b, 0x1f, 0xac, 0xaa, 0xac, 0x93, 0xe3, 0x48, 0x85, 0x2e, 0x6f, 0xb3,
+	0xb6, 0x65, 0xc2, 0xe8, 0xd7, 0x11, 0x0f, 0xb5, 0x33, 0x75, 0x6b, 0x88, 0x58, 0x17, 0xc1, 0xcc,
+	0x8e, 0x78, 0x0b, 0x4a, 0x49, 0xa4, 0xfc, 0x33, 0xdd, 0x1c, 0x22, 0x66, 0x83, 0xdf, 0x83, 0xea,
+	0xb9, 0x88, 0x17, 0x73, 0xe6, 0x85, 0x34, 0xe2, 0x5e, 0x70, 0xa2, 0xfd, 0x8c, 0x88, 0x65, 0xa2,
+	0x03, 0x1a, 0xf1, 0xfe, 0x09, 0xde, 0x83, 0xcd, 0x9b, 0xc6, 0x2f, 0x69, 0xe3, 0x6f, 0xc8, 0xab,
+	0x8e, 0xc7, 0xef, 0x03, 0x66, 0xa7, 0xa7, 0xcc, 0x57, 0xd2, 0x4b, 0x52, 0x71, 0x1a, 0xc5, 0xcc,
+	0x8b, 0x82, 0xfa, 0xba, 0xfe, 0x81, 0x6b, 0x79, 0x66, 0x66, 0x12, 0xc3, 0xc0, 0xfe, 0x1c, 0xea,
+	0x37, 0x7f, 0x8f, 0x7c, 0xa4, 0xec, 0x42, 0xe5, 0xd2, 0x87, 0x8a, 0x71, 0xe3, 0x15, 0x8b, 0x58,
+	0x17, 0xc6, 0xca, 0x62, 0x7b, 0x2f, 0x60, 0xe3, 0xda, 0x1d, 0xe0, 0x47, 0xf0, 0xd0, 0x75, 0xc7,
+	0x23, 0xef, 0x78, 0x3a, 0xec, 0x39, 0xde, 0xc0, 0x99, 0xf4, 0x1d, 0xe2, 0x1d, 0x4d, 0xdc, 0x99,
+	0xd3, 0x1b, 0x3e, 0x1b, 0x3a, 0xfd, 0xda, 0x1d, 0x7c, 0x0f, 0xd6, 0xc6, 0xdd, 0x91, 0x53, 0x43,
+	0x18, 0x60, 0xfd, 0x99, 0xa3, 0xd7, 0x05, 0x5c, 0x86, 0xbb, 0x13, 0xe7, 0xe8, 0x90, 0x74, 0x47,
+	0xb5, 0xe2, 0xde, 0x21, 0x54, 0xae, 0x88, 0x8e, 0xdf, 0x85, 0xed, 0xee, 0x51, 0x7f, 0x38, 0xf5,
+	0x9c, 0x49, 0x6f, 0xda, 0x1f, 0x4e, 0x06, 0xd7, 0x6a, 0x5a, 0x70, 0x6f, 0x34, 0x9c, 0x38, 0x5d,
+	0xd2, 0xfe, 0xb8, 0x86, 0xf0, 0x5d, 0x28, 0x8e, 0x67, 0x4f, 0x6a, 0x85, 0x2c, 0x3c, 0x1d, 0x0c,
+	0xbc, 0xe9, 0xec, 0xc8, 0xad, 0x15, 0x3b, 0x7f, 0x14, 0xc0, 0x3a, 0x64, 0x2f, 0xd5, 0xa1, 0x30,
+	0xcd, 0xe2, 0x1f, 0x11, 0xc0, 0xeb, 0x71, 0x8a, 0x3f, 0x5c, 0xc1, 0x0b, 0x37, 0xe6, 0xf6, 0xf6,
+	0x47, 0xb7, 0x44, 0x19, 0x81, 0xed, 0x07, 0xdf, 0xfd, 0xfe, 0xe7, 0x4f, 0x85, 0x4d, 0xbc, 0x71,
+	0xf9, 0xcc, 0x98, 0x51, 0x8c, 0x7f, 0x45, 0x50, 0xbb, 0x7e, 0x2d, 0x78, 0xff, 0x16, 0xf3, 0xe9,
+	0xda, 0xa8, 0xdb, 0x7e, 0xfa, 0x9f, 0xb0, 0x39, 0xcd, 0x5d, 0x4d, 0xf3, 0xa1, 0x5d, 0xbf, 0xa4,
+	0x99, 0xe1, 0xf7, 0xe5, 0xe5, 0xf7, 0xfb, 0x68, 0xef, 0xe0, 0x07, 0x04, 0x8f, 0x7d, 0x31, 0x7f,
+	0xf3, 0x39, 0x07, 0x9b, 0xcb, 0xfa, 0xcf, 0xb2, 0xc7, 0x70, 0x86, 0xbe, 0x1a, 0xe7, 0xb8, 0x50,
+	0x64, 0xb3, 0xa2, 0x29, 0xd2, 0xb0, 0x15, 0x32, 0xae, 0x9f, 0xca, 0x96, 0x49, 0xd1, 0x24, 0x92,
+	0xff, 0xf2, 0x42, 0x3f, 0x5d, 0x0e, 0xfe, 0x85, 0xd0, 0xc9, 0xba, 0x06, 0x3f, 0xf9, 0x3b, 0x00,
+	0x00, 0xff, 0xff, 0x26, 0x28, 0xff, 0x42, 0xdd, 0x07, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/videointelligence/v1/video_intelligence.pb.go b/googleapis/cloud/videointelligence/v1/video_intelligence.pb.go
index 0b029416513ebd8238a1b1a19cf9307a277d63ef..df963ce5ff37b0da5c45f6ff638c84073c8e75c5 100644
--- a/googleapis/cloud/videointelligence/v1/video_intelligence.pb.go
+++ b/googleapis/cloud/videointelligence/v1/video_intelligence.pb.go
@@ -154,26 +154,26 @@ type AnnotateVideoRequest struct {
 	// 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.
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// The video data bytes.
 	// If unset, the input video(s) should be specified via `input_uri`.
 	// If set, `input_uri` should be unset.
 	InputContent []byte `protobuf:"bytes,6,opt,name=input_content,json=inputContent,proto3" json:"input_content,omitempty"`
 	// Requested video annotation features.
-	Features []Feature `protobuf:"varint,2,rep,packed,name=features,enum=google.cloud.videointelligence.v1.Feature" json:"features,omitempty"`
+	Features []Feature `protobuf:"varint,2,rep,packed,name=features,proto3,enum=google.cloud.videointelligence.v1.Feature" json:"features,omitempty"`
 	// Additional video context and/or feature-specific parameters.
-	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext" json:"video_context,omitempty"`
+	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext,proto3" json:"video_context,omitempty"`
 	// 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][google.rpc.Code.INVALID_ARGUMENT]). For more information, see
 	// [Request URIs](/storage/docs/reference-uris).
-	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	// 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.
-	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -250,15 +250,15 @@ type VideoContext struct {
 	// 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.
-	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
+	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
 	// Config for LABEL_DETECTION.
-	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig" json:"label_detection_config,omitempty"`
+	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig,proto3" json:"label_detection_config,omitempty"`
 	// Config for SHOT_CHANGE_DETECTION.
-	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig" json:"shot_change_detection_config,omitempty"`
+	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig,proto3" json:"shot_change_detection_config,omitempty"`
 	// Config for EXPLICIT_CONTENT_DETECTION.
-	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig" json:"explicit_content_detection_config,omitempty"`
+	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig,proto3" json:"explicit_content_detection_config,omitempty"`
 	// Config for FACE_DETECTION.
-	FaceDetectionConfig  *FaceDetectionConfig `protobuf:"bytes,5,opt,name=face_detection_config,json=faceDetectionConfig" json:"face_detection_config,omitempty"`
+	FaceDetectionConfig  *FaceDetectionConfig `protobuf:"bytes,5,opt,name=face_detection_config,json=faceDetectionConfig,proto3" json:"face_detection_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -328,15 +328,15 @@ type LabelDetectionConfig struct {
 	// What labels should be detected with LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
 	// If unspecified, defaults to `SHOT_MODE`.
-	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,enum=google.cloud.videointelligence.v1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
+	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,proto3,enum=google.cloud.videointelligence.v1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
 	// Whether the video has been shot from a stationary (i.e. non-moving) camera.
 	// When set to true, might improve detection accuracy for moving objects.
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
-	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera" json:"stationary_camera,omitempty"`
+	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera,proto3" json:"stationary_camera,omitempty"`
 	// Model to use for label detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -392,7 +392,7 @@ type ShotChangeDetectionConfig struct {
 	// Model to use for shot change detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,7 +434,7 @@ type ExplicitContentDetectionConfig struct {
 	// Model to use for explicit content detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -476,9 +476,9 @@ type FaceDetectionConfig struct {
 	// Model to use for face detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model string `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	// Whether bounding boxes be included in the face annotation output.
-	IncludeBoundingBoxes bool     `protobuf:"varint,2,opt,name=include_bounding_boxes,json=includeBoundingBoxes" json:"include_bounding_boxes,omitempty"`
+	IncludeBoundingBoxes bool     `protobuf:"varint,2,opt,name=include_bounding_boxes,json=includeBoundingBoxes,proto3" json:"include_bounding_boxes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -526,10 +526,10 @@ func (m *FaceDetectionConfig) GetIncludeBoundingBoxes() bool {
 type VideoSegment struct {
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the start of the segment (inclusive).
-	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset" json:"start_time_offset,omitempty"`
+	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the end of the segment (inclusive).
-	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset" json:"end_time_offset,omitempty"`
+	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -576,9 +576,9 @@ func (m *VideoSegment) GetEndTimeOffset() *duration.Duration {
 // Video segment level annotation results for label detection.
 type LabelSegment struct {
 	// Video segment where a label was detected.
-	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -626,9 +626,9 @@ func (m *LabelSegment) GetConfidence() float32 {
 type LabelFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -677,11 +677,11 @@ type Entity struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search
 	// API](https://developers.google.com/knowledge-graph/).
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Textual description, e.g. `Fixed-gear bicycle`.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Language code for `description` in BCP-47 format.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -735,16 +735,16 @@ func (m *Entity) GetLanguageCode() string {
 // Label annotation.
 type LabelAnnotation struct {
 	// Detected entity.
-	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
+	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
 	// Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in some
 	// cases there might be more than one categories e.g. `Terrier` could also be
 	// a `pet`.
-	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities" json:"category_entities,omitempty"`
+	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities,proto3" json:"category_entities,omitempty"`
 	// All video segments where a label was detected.
-	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments" json:"segments,omitempty"`
+	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
 	// All video frames where a label was detected.
-	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -806,9 +806,9 @@ func (m *LabelAnnotation) GetFrames() []*LabelFrame {
 type ExplicitContentFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Likelihood of the pornography content..
-	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,enum=google.cloud.videointelligence.v1.Likelihood" json:"pornography_likelihood,omitempty"`
+	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,proto3,enum=google.cloud.videointelligence.v1.Likelihood" json:"pornography_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}   `json:"-"`
 	XXX_unrecognized      []byte     `json:"-"`
 	XXX_sizecache         int32      `json:"-"`
@@ -857,7 +857,7 @@ func (m *ExplicitContentFrame) GetPornographyLikelihood() Likelihood {
 // present for that frame.
 type ExplicitContentAnnotation struct {
 	// All video frames where explicit content was detected.
-	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -899,13 +899,13 @@ func (m *ExplicitContentAnnotation) GetFrames() []*ExplicitContentFrame {
 // Range: [0, 1].
 type NormalizedBoundingBox struct {
 	// Left X coordinate.
-	Left float32 `protobuf:"fixed32,1,opt,name=left" json:"left,omitempty"`
+	Left float32 `protobuf:"fixed32,1,opt,name=left,proto3" json:"left,omitempty"`
 	// Top Y coordinate.
-	Top float32 `protobuf:"fixed32,2,opt,name=top" json:"top,omitempty"`
+	Top float32 `protobuf:"fixed32,2,opt,name=top,proto3" json:"top,omitempty"`
 	// Right X coordinate.
-	Right float32 `protobuf:"fixed32,3,opt,name=right" json:"right,omitempty"`
+	Right float32 `protobuf:"fixed32,3,opt,name=right,proto3" json:"right,omitempty"`
 	// Bottom Y coordinate.
-	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom" json:"bottom,omitempty"`
+	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -966,7 +966,7 @@ func (m *NormalizedBoundingBox) GetBottom() float32 {
 // Video segment level annotation results for face detection.
 type FaceSegment struct {
 	// Video segment where a face was detected.
-	Segment              *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment              *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1008,10 +1008,10 @@ type FaceFrame struct {
 	// Normalized Bounding boxes in a frame.
 	// There can be more than one boxes if the same face is detected in multiple
 	// locations within the current frame.
-	NormalizedBoundingBoxes []*NormalizedBoundingBox `protobuf:"bytes,1,rep,name=normalized_bounding_boxes,json=normalizedBoundingBoxes" json:"normalized_bounding_boxes,omitempty"`
+	NormalizedBoundingBoxes []*NormalizedBoundingBox `protobuf:"bytes,1,rep,name=normalized_bounding_boxes,json=normalizedBoundingBoxes,proto3" json:"normalized_bounding_boxes,omitempty"`
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the video frame for this location.
-	TimeOffset           *duration.Duration `protobuf:"bytes,2,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset           *duration.Duration `protobuf:"bytes,2,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1060,9 +1060,9 @@ type FaceAnnotation struct {
 	// Thumbnail of a representative face view (in JPEG format).
 	Thumbnail []byte `protobuf:"bytes,1,opt,name=thumbnail,proto3" json:"thumbnail,omitempty"`
 	// All video segments where a face was detected.
-	Segments []*FaceSegment `protobuf:"bytes,2,rep,name=segments" json:"segments,omitempty"`
+	Segments []*FaceSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
 	// All video frames where a face was detected.
-	Frames               []*FaceFrame `protobuf:"bytes,3,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*FaceFrame `protobuf:"bytes,3,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1117,25 +1117,25 @@ func (m *FaceAnnotation) GetFrames() []*FaceFrame {
 type VideoAnnotationResults struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Label annotations on video level or user specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations" json:"segment_label_annotations,omitempty"`
+	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations,proto3" json:"segment_label_annotations,omitempty"`
 	// Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations" json:"shot_label_annotations,omitempty"`
+	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations,proto3" json:"shot_label_annotations,omitempty"`
 	// Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations" json:"frame_label_annotations,omitempty"`
+	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations,proto3" json:"frame_label_annotations,omitempty"`
 	// Face annotations. There is exactly one element for each unique face.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,5,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,5,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// Shot annotations. Each shot is represented as a video segment.
-	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations" json:"shot_annotations,omitempty"`
+	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations,proto3" json:"shot_annotations,omitempty"`
 	// Explicit content annotation.
-	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation" json:"explicit_annotation,omitempty"`
+	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation,proto3" json:"explicit_annotation,omitempty"`
 	// If set, indicates an error. Note that for a single `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
-	Error                *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1226,7 +1226,7 @@ func (m *VideoAnnotationResults) GetError() *status.Status {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoResponse struct {
 	// Annotation results for all videos specified in `AnnotateVideoRequest`.
-	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults" json:"annotation_results,omitempty"`
+	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults,proto3" json:"annotation_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1267,14 +1267,14 @@ func (m *AnnotateVideoResponse) GetAnnotationResults() []*VideoAnnotationResults
 type VideoAnnotationProgress struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Approximate percentage processed thus far.
 	// Guaranteed to be 100 when fully processed.
-	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent update.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1337,7 +1337,7 @@ func (m *VideoAnnotationProgress) GetUpdateTime() *timestamp.Timestamp {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoProgress struct {
 	// Progress metadata for all videos specified in `AnnotateVideoRequest`.
-	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress" json:"annotation_progress,omitempty"`
+	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress,proto3" json:"annotation_progress,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1437,8 +1437,7 @@ func (c *videoIntelligenceServiceClient) AnnotateVideo(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for VideoIntelligenceService service
-
+// VideoIntelligenceServiceServer is the server API for VideoIntelligenceService service.
 type VideoIntelligenceServiceServer interface {
 	// Performs asynchronous video annotation. Progress and results can be
 	// retrieved through the `google.longrunning.Operations` interface.
diff --git a/googleapis/cloud/videointelligence/v1beta1/video_intelligence.pb.go b/googleapis/cloud/videointelligence/v1beta1/video_intelligence.pb.go
index dc11605a9b6ec08ffb41f36486f7764c64a14627..7a0595b9a82b69aeaa47db3405ee052e1678b3a1 100644
--- a/googleapis/cloud/videointelligence/v1beta1/video_intelligence.pb.go
+++ b/googleapis/cloud/videointelligence/v1beta1/video_intelligence.pb.go
@@ -192,25 +192,25 @@ type AnnotateVideoRequest struct {
 	// 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.
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// 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.
-	InputContent string `protobuf:"bytes,6,opt,name=input_content,json=inputContent" json:"input_content,omitempty"`
+	InputContent string `protobuf:"bytes,6,opt,name=input_content,json=inputContent,proto3" json:"input_content,omitempty"`
 	// Requested video annotation features.
-	Features []Feature `protobuf:"varint,2,rep,packed,name=features,enum=google.cloud.videointelligence.v1beta1.Feature" json:"features,omitempty"`
+	Features []Feature `protobuf:"varint,2,rep,packed,name=features,proto3,enum=google.cloud.videointelligence.v1beta1.Feature" json:"features,omitempty"`
 	// Additional video context and/or feature-specific parameters.
-	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext" json:"video_context,omitempty"`
+	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext,proto3" json:"video_context,omitempty"`
 	// 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][google.rpc.Code.INVALID_ARGUMENT]). For more information, see
 	// [Request URIs](/storage/docs/reference-uris).
-	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	// 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.
-	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -287,26 +287,26 @@ type VideoContext struct {
 	// 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.
-	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
+	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
 	// 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`.
-	LabelDetectionMode LabelDetectionMode `protobuf:"varint,2,opt,name=label_detection_mode,json=labelDetectionMode,enum=google.cloud.videointelligence.v1beta1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
+	LabelDetectionMode LabelDetectionMode `protobuf:"varint,2,opt,name=label_detection_mode,json=labelDetectionMode,proto3,enum=google.cloud.videointelligence.v1beta1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
 	// Whether the video has been shot from a stationary (i.e. non-moving) camera.
 	// When set to true, might improve detection accuracy for moving objects.
-	StationaryCamera bool `protobuf:"varint,3,opt,name=stationary_camera,json=stationaryCamera" json:"stationary_camera,omitempty"`
+	StationaryCamera bool `protobuf:"varint,3,opt,name=stationary_camera,json=stationaryCamera,proto3" json:"stationary_camera,omitempty"`
 	// Model to use for label detection.
 	// Supported values: "latest" and "stable" (the default).
-	LabelDetectionModel string `protobuf:"bytes,4,opt,name=label_detection_model,json=labelDetectionModel" json:"label_detection_model,omitempty"`
+	LabelDetectionModel string `protobuf:"bytes,4,opt,name=label_detection_model,json=labelDetectionModel,proto3" json:"label_detection_model,omitempty"`
 	// Model to use for face detection.
 	// Supported values: "latest" and "stable" (the default).
-	FaceDetectionModel string `protobuf:"bytes,5,opt,name=face_detection_model,json=faceDetectionModel" json:"face_detection_model,omitempty"`
+	FaceDetectionModel string `protobuf:"bytes,5,opt,name=face_detection_model,json=faceDetectionModel,proto3" json:"face_detection_model,omitempty"`
 	// Model to use for shot change detection.
 	// Supported values: "latest" and "stable" (the default).
-	ShotChangeDetectionModel string `protobuf:"bytes,6,opt,name=shot_change_detection_model,json=shotChangeDetectionModel" json:"shot_change_detection_model,omitempty"`
+	ShotChangeDetectionModel string `protobuf:"bytes,6,opt,name=shot_change_detection_model,json=shotChangeDetectionModel,proto3" json:"shot_change_detection_model,omitempty"`
 	// Model to use for safe search detection.
 	// Supported values: "latest" and "stable" (the default).
-	SafeSearchDetectionModel string   `protobuf:"bytes,7,opt,name=safe_search_detection_model,json=safeSearchDetectionModel" json:"safe_search_detection_model,omitempty"`
+	SafeSearchDetectionModel string   `protobuf:"bytes,7,opt,name=safe_search_detection_model,json=safeSearchDetectionModel,proto3" json:"safe_search_detection_model,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -388,9 +388,9 @@ func (m *VideoContext) GetSafeSearchDetectionModel() string {
 // Video segment.
 type VideoSegment struct {
 	// Start offset in microseconds (inclusive). Unset means 0.
-	StartTimeOffset int64 `protobuf:"varint,1,opt,name=start_time_offset,json=startTimeOffset" json:"start_time_offset,omitempty"`
+	StartTimeOffset int64 `protobuf:"varint,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
 	// End offset in microseconds (inclusive). Unset means 0.
-	EndTimeOffset        int64    `protobuf:"varint,2,opt,name=end_time_offset,json=endTimeOffset" json:"end_time_offset,omitempty"`
+	EndTimeOffset        int64    `protobuf:"varint,2,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -440,11 +440,11 @@ type LabelLocation struct {
 	// Set to [timestamp, timestamp] for frame-level labels.
 	// Otherwise, corresponds to one of `AnnotateSpec.segments`
 	// (if specified) or to shot boundaries (if requested).
-	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Label level.
-	Level                LabelLevel `protobuf:"varint,3,opt,name=level,enum=google.cloud.videointelligence.v1beta1.LabelLevel" json:"level,omitempty"`
+	Level                LabelLevel `protobuf:"varint,3,opt,name=level,proto3,enum=google.cloud.videointelligence.v1beta1.LabelLevel" json:"level,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -498,11 +498,11 @@ func (m *LabelLocation) GetLevel() LabelLevel {
 // Label annotation.
 type LabelAnnotation struct {
 	// Textual description, e.g. `Fixed-gear bicycle`.
-	Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
 	// Language code for `description` in BCP-47 format.
-	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Where the label was detected and with what confidence.
-	Locations            []*LabelLocation `protobuf:"bytes,3,rep,name=locations" json:"locations,omitempty"`
+	Locations            []*LabelLocation `protobuf:"bytes,3,rep,name=locations,proto3" json:"locations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -560,18 +560,18 @@ func (m *LabelAnnotation) GetLocations() []*LabelLocation {
 // for all other types of unsafe content.
 type SafeSearchAnnotation struct {
 	// Likelihood of adult content.
-	Adult Likelihood `protobuf:"varint,1,opt,name=adult,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"adult,omitempty"`
+	Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"adult,omitempty"`
 	// Likelihood that an obvious modification was made to the original
 	// version to make it appear funny or offensive.
-	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"spoof,omitempty"`
+	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"spoof,omitempty"`
 	// Likelihood of medical content.
-	Medical Likelihood `protobuf:"varint,3,opt,name=medical,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"medical,omitempty"`
+	Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"medical,omitempty"`
 	// Likelihood of violent content.
-	Violent Likelihood `protobuf:"varint,4,opt,name=violent,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"violent,omitempty"`
+	Violent Likelihood `protobuf:"varint,4,opt,name=violent,proto3,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"violent,omitempty"`
 	// Likelihood of racy content.
-	Racy Likelihood `protobuf:"varint,5,opt,name=racy,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"racy,omitempty"`
+	Racy Likelihood `protobuf:"varint,5,opt,name=racy,proto3,enum=google.cloud.videointelligence.v1beta1.Likelihood" json:"racy,omitempty"`
 	// Video time offset in microseconds.
-	TimeOffset           int64    `protobuf:"varint,6,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset           int64    `protobuf:"varint,6,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -646,13 +646,13 @@ func (m *SafeSearchAnnotation) GetTimeOffset() int64 {
 // Bounding box.
 type BoundingBox struct {
 	// Left X coordinate.
-	Left int32 `protobuf:"varint,1,opt,name=left" json:"left,omitempty"`
+	Left int32 `protobuf:"varint,1,opt,name=left,proto3" json:"left,omitempty"`
 	// Right X coordinate.
-	Right int32 `protobuf:"varint,2,opt,name=right" json:"right,omitempty"`
+	Right int32 `protobuf:"varint,2,opt,name=right,proto3" json:"right,omitempty"`
 	// Bottom Y coordinate.
-	Bottom int32 `protobuf:"varint,3,opt,name=bottom" json:"bottom,omitempty"`
+	Bottom int32 `protobuf:"varint,3,opt,name=bottom,proto3" json:"bottom,omitempty"`
 	// Top Y coordinate.
-	Top                  int32    `protobuf:"varint,4,opt,name=top" json:"top,omitempty"`
+	Top                  int32    `protobuf:"varint,4,opt,name=top,proto3" json:"top,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -713,9 +713,9 @@ func (m *BoundingBox) GetTop() int32 {
 // Face location.
 type FaceLocation struct {
 	// Bounding box in a frame.
-	BoundingBox *BoundingBox `protobuf:"bytes,1,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingBox `protobuf:"bytes,1,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// Video time offset in microseconds.
-	TimeOffset           int64    `protobuf:"varint,2,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset           int64    `protobuf:"varint,2,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -762,13 +762,13 @@ func (m *FaceLocation) GetTimeOffset() int64 {
 // Face annotation.
 type FaceAnnotation struct {
 	// Thumbnail of a representative face view (in JPEG format). Encoding: base64.
-	Thumbnail string `protobuf:"bytes,1,opt,name=thumbnail" json:"thumbnail,omitempty"`
+	Thumbnail string `protobuf:"bytes,1,opt,name=thumbnail,proto3" json:"thumbnail,omitempty"`
 	// All locations where a face was detected.
 	// Faces are detected and tracked on a per-video basis
 	// (as opposed to across multiple videos).
-	Segments []*VideoSegment `protobuf:"bytes,2,rep,name=segments" json:"segments,omitempty"`
+	Segments []*VideoSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
 	// Face locations at one frame per second.
-	Locations            []*FaceLocation `protobuf:"bytes,3,rep,name=locations" json:"locations,omitempty"`
+	Locations            []*FaceLocation `protobuf:"bytes,3,rep,name=locations,proto3" json:"locations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -823,18 +823,18 @@ func (m *FaceAnnotation) GetLocations() []*FaceLocation {
 type VideoAnnotationResults struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Label annotations. There is exactly one element for each unique label.
-	LabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=label_annotations,json=labelAnnotations" json:"label_annotations,omitempty"`
+	LabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
 	// Face annotations. There is exactly one element for each unique face.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,3,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,3,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// Shot annotations. Each shot is represented as a video segment.
-	ShotAnnotations []*VideoSegment `protobuf:"bytes,4,rep,name=shot_annotations,json=shotAnnotations" json:"shot_annotations,omitempty"`
+	ShotAnnotations []*VideoSegment `protobuf:"bytes,4,rep,name=shot_annotations,json=shotAnnotations,proto3" json:"shot_annotations,omitempty"`
 	// Safe search annotations.
-	SafeSearchAnnotations []*SafeSearchAnnotation `protobuf:"bytes,6,rep,name=safe_search_annotations,json=safeSearchAnnotations" json:"safe_search_annotations,omitempty"`
+	SafeSearchAnnotations []*SafeSearchAnnotation `protobuf:"bytes,6,rep,name=safe_search_annotations,json=safeSearchAnnotations,proto3" json:"safe_search_annotations,omitempty"`
 	// If set, indicates an error. Note that for a single `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
-	Error                *status.Status `protobuf:"bytes,5,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -911,7 +911,7 @@ func (m *VideoAnnotationResults) GetError() *status.Status {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoResponse struct {
 	// Annotation results for all videos specified in `AnnotateVideoRequest`.
-	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults" json:"annotation_results,omitempty"`
+	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults,proto3" json:"annotation_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -952,14 +952,14 @@ func (m *AnnotateVideoResponse) GetAnnotationResults() []*VideoAnnotationResults
 type VideoAnnotationProgress struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Approximate percentage processed thus far.
 	// Guaranteed to be 100 when fully processed.
-	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent update.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1022,7 +1022,7 @@ func (m *VideoAnnotationProgress) GetUpdateTime() *timestamp.Timestamp {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoProgress struct {
 	// Progress metadata for all videos specified in `AnnotateVideoRequest`.
-	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress" json:"annotation_progress,omitempty"`
+	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress,proto3" json:"annotation_progress,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1115,8 +1115,7 @@ func (c *videoIntelligenceServiceClient) AnnotateVideo(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for VideoIntelligenceService service
-
+// VideoIntelligenceServiceServer is the server API for VideoIntelligenceService service.
 type VideoIntelligenceServiceServer interface {
 	// Performs asynchronous video annotation. Progress and results can be
 	// retrieved through the `google.longrunning.Operations` interface.
diff --git a/googleapis/cloud/videointelligence/v1beta2/video_intelligence.pb.go b/googleapis/cloud/videointelligence/v1beta2/video_intelligence.pb.go
index f6cc1fa0356d2efd7d9b534a246231c1816ea886..ef4d619cfc198b9cfc9dfdb2f7e4676bf7311c3f 100644
--- a/googleapis/cloud/videointelligence/v1beta2/video_intelligence.pb.go
+++ b/googleapis/cloud/videointelligence/v1beta2/video_intelligence.pb.go
@@ -154,26 +154,26 @@ type AnnotateVideoRequest struct {
 	// 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.
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// The video data bytes.
 	// If unset, the input video(s) should be specified via `input_uri`.
 	// If set, `input_uri` should be unset.
 	InputContent []byte `protobuf:"bytes,6,opt,name=input_content,json=inputContent,proto3" json:"input_content,omitempty"`
 	// Requested video annotation features.
-	Features []Feature `protobuf:"varint,2,rep,packed,name=features,enum=google.cloud.videointelligence.v1beta2.Feature" json:"features,omitempty"`
+	Features []Feature `protobuf:"varint,2,rep,packed,name=features,proto3,enum=google.cloud.videointelligence.v1beta2.Feature" json:"features,omitempty"`
 	// Additional video context and/or feature-specific parameters.
-	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext" json:"video_context,omitempty"`
+	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext,proto3" json:"video_context,omitempty"`
 	// 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][google.rpc.Code.INVALID_ARGUMENT]). For more information, see
 	// [Request URIs](/storage/docs/reference-uris).
-	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	// 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.
-	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -250,15 +250,15 @@ type VideoContext struct {
 	// 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.
-	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
+	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
 	// Config for LABEL_DETECTION.
-	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig" json:"label_detection_config,omitempty"`
+	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig,proto3" json:"label_detection_config,omitempty"`
 	// Config for SHOT_CHANGE_DETECTION.
-	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig" json:"shot_change_detection_config,omitempty"`
+	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig,proto3" json:"shot_change_detection_config,omitempty"`
 	// Config for EXPLICIT_CONTENT_DETECTION.
-	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig" json:"explicit_content_detection_config,omitempty"`
+	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig,proto3" json:"explicit_content_detection_config,omitempty"`
 	// Config for FACE_DETECTION.
-	FaceDetectionConfig  *FaceDetectionConfig `protobuf:"bytes,5,opt,name=face_detection_config,json=faceDetectionConfig" json:"face_detection_config,omitempty"`
+	FaceDetectionConfig  *FaceDetectionConfig `protobuf:"bytes,5,opt,name=face_detection_config,json=faceDetectionConfig,proto3" json:"face_detection_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -328,15 +328,15 @@ type LabelDetectionConfig struct {
 	// What labels should be detected with LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
 	// If unspecified, defaults to `SHOT_MODE`.
-	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,enum=google.cloud.videointelligence.v1beta2.LabelDetectionMode" json:"label_detection_mode,omitempty"`
+	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,proto3,enum=google.cloud.videointelligence.v1beta2.LabelDetectionMode" json:"label_detection_mode,omitempty"`
 	// Whether the video has been shot from a stationary (i.e. non-moving) camera.
 	// When set to true, might improve detection accuracy for moving objects.
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
-	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera" json:"stationary_camera,omitempty"`
+	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera,proto3" json:"stationary_camera,omitempty"`
 	// Model to use for label detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -392,7 +392,7 @@ type ShotChangeDetectionConfig struct {
 	// Model to use for shot change detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,7 +434,7 @@ type ExplicitContentDetectionConfig struct {
 	// Model to use for explicit content detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -476,9 +476,9 @@ type FaceDetectionConfig struct {
 	// Model to use for face detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model string `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	// Whether bounding boxes be included in the face annotation output.
-	IncludeBoundingBoxes bool     `protobuf:"varint,2,opt,name=include_bounding_boxes,json=includeBoundingBoxes" json:"include_bounding_boxes,omitempty"`
+	IncludeBoundingBoxes bool     `protobuf:"varint,2,opt,name=include_bounding_boxes,json=includeBoundingBoxes,proto3" json:"include_bounding_boxes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -526,10 +526,10 @@ func (m *FaceDetectionConfig) GetIncludeBoundingBoxes() bool {
 type VideoSegment struct {
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the start of the segment (inclusive).
-	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset" json:"start_time_offset,omitempty"`
+	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the end of the segment (inclusive).
-	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset" json:"end_time_offset,omitempty"`
+	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -576,9 +576,9 @@ func (m *VideoSegment) GetEndTimeOffset() *duration.Duration {
 // Video segment level annotation results for label detection.
 type LabelSegment struct {
 	// Video segment where a label was detected.
-	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -626,9 +626,9 @@ func (m *LabelSegment) GetConfidence() float32 {
 type LabelFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -677,11 +677,11 @@ type Entity struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search
 	// API](https://developers.google.com/knowledge-graph/).
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Textual description, e.g. `Fixed-gear bicycle`.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Language code for `description` in BCP-47 format.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -735,16 +735,16 @@ func (m *Entity) GetLanguageCode() string {
 // Label annotation.
 type LabelAnnotation struct {
 	// Detected entity.
-	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
+	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
 	// Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in some
 	// cases there might be more than one categories e.g. `Terrier` could also be
 	// a `pet`.
-	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities" json:"category_entities,omitempty"`
+	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities,proto3" json:"category_entities,omitempty"`
 	// All video segments where a label was detected.
-	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments" json:"segments,omitempty"`
+	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
 	// All video frames where a label was detected.
-	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -806,9 +806,9 @@ func (m *LabelAnnotation) GetFrames() []*LabelFrame {
 type ExplicitContentFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Likelihood of the pornography content..
-	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,enum=google.cloud.videointelligence.v1beta2.Likelihood" json:"pornography_likelihood,omitempty"`
+	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,proto3,enum=google.cloud.videointelligence.v1beta2.Likelihood" json:"pornography_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}   `json:"-"`
 	XXX_unrecognized      []byte     `json:"-"`
 	XXX_sizecache         int32      `json:"-"`
@@ -857,7 +857,7 @@ func (m *ExplicitContentFrame) GetPornographyLikelihood() Likelihood {
 // present for that frame.
 type ExplicitContentAnnotation struct {
 	// All video frames where explicit content was detected.
-	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -899,13 +899,13 @@ func (m *ExplicitContentAnnotation) GetFrames() []*ExplicitContentFrame {
 // Range: [0, 1].
 type NormalizedBoundingBox struct {
 	// Left X coordinate.
-	Left float32 `protobuf:"fixed32,1,opt,name=left" json:"left,omitempty"`
+	Left float32 `protobuf:"fixed32,1,opt,name=left,proto3" json:"left,omitempty"`
 	// Top Y coordinate.
-	Top float32 `protobuf:"fixed32,2,opt,name=top" json:"top,omitempty"`
+	Top float32 `protobuf:"fixed32,2,opt,name=top,proto3" json:"top,omitempty"`
 	// Right X coordinate.
-	Right float32 `protobuf:"fixed32,3,opt,name=right" json:"right,omitempty"`
+	Right float32 `protobuf:"fixed32,3,opt,name=right,proto3" json:"right,omitempty"`
 	// Bottom Y coordinate.
-	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom" json:"bottom,omitempty"`
+	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -966,7 +966,7 @@ func (m *NormalizedBoundingBox) GetBottom() float32 {
 // Video segment level annotation results for face detection.
 type FaceSegment struct {
 	// Video segment where a face was detected.
-	Segment              *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment              *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1008,10 +1008,10 @@ type FaceFrame struct {
 	// Normalized Bounding boxes in a frame.
 	// There can be more than one boxes if the same face is detected in multiple
 	// locations within the current frame.
-	NormalizedBoundingBoxes []*NormalizedBoundingBox `protobuf:"bytes,1,rep,name=normalized_bounding_boxes,json=normalizedBoundingBoxes" json:"normalized_bounding_boxes,omitempty"`
+	NormalizedBoundingBoxes []*NormalizedBoundingBox `protobuf:"bytes,1,rep,name=normalized_bounding_boxes,json=normalizedBoundingBoxes,proto3" json:"normalized_bounding_boxes,omitempty"`
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the video frame for this location.
-	TimeOffset           *duration.Duration `protobuf:"bytes,2,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset           *duration.Duration `protobuf:"bytes,2,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1060,9 +1060,9 @@ type FaceAnnotation struct {
 	// Thumbnail of a representative face view (in JPEG format).
 	Thumbnail []byte `protobuf:"bytes,1,opt,name=thumbnail,proto3" json:"thumbnail,omitempty"`
 	// All video segments where a face was detected.
-	Segments []*FaceSegment `protobuf:"bytes,2,rep,name=segments" json:"segments,omitempty"`
+	Segments []*FaceSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
 	// All video frames where a face was detected.
-	Frames               []*FaceFrame `protobuf:"bytes,3,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*FaceFrame `protobuf:"bytes,3,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1117,25 +1117,25 @@ func (m *FaceAnnotation) GetFrames() []*FaceFrame {
 type VideoAnnotationResults struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Label annotations on video level or user specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations" json:"segment_label_annotations,omitempty"`
+	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations,proto3" json:"segment_label_annotations,omitempty"`
 	// Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations" json:"shot_label_annotations,omitempty"`
+	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations,proto3" json:"shot_label_annotations,omitempty"`
 	// Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations" json:"frame_label_annotations,omitempty"`
+	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations,proto3" json:"frame_label_annotations,omitempty"`
 	// Face annotations. There is exactly one element for each unique face.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,5,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,5,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// Shot annotations. Each shot is represented as a video segment.
-	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations" json:"shot_annotations,omitempty"`
+	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations,proto3" json:"shot_annotations,omitempty"`
 	// Explicit content annotation.
-	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation" json:"explicit_annotation,omitempty"`
+	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation,proto3" json:"explicit_annotation,omitempty"`
 	// If set, indicates an error. Note that for a single `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
-	Error                *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1226,7 +1226,7 @@ func (m *VideoAnnotationResults) GetError() *status.Status {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoResponse struct {
 	// Annotation results for all videos specified in `AnnotateVideoRequest`.
-	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults" json:"annotation_results,omitempty"`
+	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults,proto3" json:"annotation_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1267,14 +1267,14 @@ func (m *AnnotateVideoResponse) GetAnnotationResults() []*VideoAnnotationResults
 type VideoAnnotationProgress struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Approximate percentage processed thus far.
 	// Guaranteed to be 100 when fully processed.
-	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent update.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1337,7 +1337,7 @@ func (m *VideoAnnotationProgress) GetUpdateTime() *timestamp.Timestamp {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoProgress struct {
 	// Progress metadata for all videos specified in `AnnotateVideoRequest`.
-	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress" json:"annotation_progress,omitempty"`
+	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress,proto3" json:"annotation_progress,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1437,8 +1437,7 @@ func (c *videoIntelligenceServiceClient) AnnotateVideo(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for VideoIntelligenceService service
-
+// VideoIntelligenceServiceServer is the server API for VideoIntelligenceService service.
 type VideoIntelligenceServiceServer interface {
 	// Performs asynchronous video annotation. Progress and results can be
 	// retrieved through the `google.longrunning.Operations` interface.
diff --git a/googleapis/cloud/videointelligence/v1p1beta1/video_intelligence.pb.go b/googleapis/cloud/videointelligence/v1p1beta1/video_intelligence.pb.go
index eee7bd14608ba31857725ab5948e35b6c225d3e0..ea4c719d537187ec0fdbab34ba27b96401b1cf67 100644
--- a/googleapis/cloud/videointelligence/v1p1beta1/video_intelligence.pb.go
+++ b/googleapis/cloud/videointelligence/v1p1beta1/video_intelligence.pb.go
@@ -154,26 +154,26 @@ type AnnotateVideoRequest struct {
 	// 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.
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// The video data bytes.
 	// If unset, the input video(s) should be specified via `input_uri`.
 	// If set, `input_uri` should be unset.
 	InputContent []byte `protobuf:"bytes,6,opt,name=input_content,json=inputContent,proto3" json:"input_content,omitempty"`
 	// Requested video annotation features.
-	Features []Feature `protobuf:"varint,2,rep,packed,name=features,enum=google.cloud.videointelligence.v1p1beta1.Feature" json:"features,omitempty"`
+	Features []Feature `protobuf:"varint,2,rep,packed,name=features,proto3,enum=google.cloud.videointelligence.v1p1beta1.Feature" json:"features,omitempty"`
 	// Additional video context and/or feature-specific parameters.
-	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext" json:"video_context,omitempty"`
+	VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext,proto3" json:"video_context,omitempty"`
 	// 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][google.rpc.Code.INVALID_ARGUMENT]). For more information, see
 	// [Request URIs](/storage/docs/reference-uris).
-	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri" json:"output_uri,omitempty"`
+	OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
 	// 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.
-	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId" json:"location_id,omitempty"`
+	LocationId           string   `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -250,15 +250,15 @@ type VideoContext struct {
 	// 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.
-	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
+	Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
 	// Config for LABEL_DETECTION.
-	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig" json:"label_detection_config,omitempty"`
+	LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig,proto3" json:"label_detection_config,omitempty"`
 	// Config for SHOT_CHANGE_DETECTION.
-	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig" json:"shot_change_detection_config,omitempty"`
+	ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig,proto3" json:"shot_change_detection_config,omitempty"`
 	// Config for EXPLICIT_CONTENT_DETECTION.
-	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig" json:"explicit_content_detection_config,omitempty"`
+	ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig,proto3" json:"explicit_content_detection_config,omitempty"`
 	// Config for SPEECH_TRANSCRIPTION.
-	SpeechTranscriptionConfig *SpeechTranscriptionConfig `protobuf:"bytes,6,opt,name=speech_transcription_config,json=speechTranscriptionConfig" json:"speech_transcription_config,omitempty"`
+	SpeechTranscriptionConfig *SpeechTranscriptionConfig `protobuf:"bytes,6,opt,name=speech_transcription_config,json=speechTranscriptionConfig,proto3" json:"speech_transcription_config,omitempty"`
 	XXX_NoUnkeyedLiteral      struct{}                   `json:"-"`
 	XXX_unrecognized          []byte                     `json:"-"`
 	XXX_sizecache             int32                      `json:"-"`
@@ -328,15 +328,15 @@ type LabelDetectionConfig struct {
 	// What labels should be detected with LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
 	// If unspecified, defaults to `SHOT_MODE`.
-	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,enum=google.cloud.videointelligence.v1p1beta1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
+	LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,proto3,enum=google.cloud.videointelligence.v1p1beta1.LabelDetectionMode" json:"label_detection_mode,omitempty"`
 	// Whether the video has been shot from a stationary (i.e. non-moving) camera.
 	// When set to true, might improve detection accuracy for moving objects.
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
-	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera" json:"stationary_camera,omitempty"`
+	StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera,proto3" json:"stationary_camera,omitempty"`
 	// Model to use for label detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -392,7 +392,7 @@ type ShotChangeDetectionConfig struct {
 	// Model to use for shot change detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,7 +434,7 @@ type ExplicitContentDetectionConfig struct {
 	// Model to use for explicit content detection.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -475,10 +475,10 @@ func (m *ExplicitContentDetectionConfig) GetModel() string {
 type VideoSegment struct {
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the start of the segment (inclusive).
-	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset" json:"start_time_offset,omitempty"`
+	StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
 	// Time-offset, relative to the beginning of the video,
 	// corresponding to the end of the segment (inclusive).
-	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset" json:"end_time_offset,omitempty"`
+	EndTimeOffset        *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -525,9 +525,9 @@ func (m *VideoSegment) GetEndTimeOffset() *duration.Duration {
 // Video segment level annotation results for label detection.
 type LabelSegment struct {
 	// Video segment where a label was detected.
-	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment" json:"segment,omitempty"`
+	Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -575,9 +575,9 @@ func (m *LabelSegment) GetConfidence() float32 {
 type LabelFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Confidence that the label is accurate. Range: [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -626,11 +626,11 @@ type Entity struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search
 	// API](https://developers.google.com/knowledge-graph/).
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Textual description, e.g. `Fixed-gear bicycle`.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Language code for `description` in BCP-47 format.
-	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -684,16 +684,16 @@ func (m *Entity) GetLanguageCode() string {
 // Label annotation.
 type LabelAnnotation struct {
 	// Detected entity.
-	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
+	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
 	// Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in some
 	// cases there might be more than one categories e.g. `Terrier` could also be
 	// a `pet`.
-	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities" json:"category_entities,omitempty"`
+	CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities,proto3" json:"category_entities,omitempty"`
 	// All video segments where a label was detected.
-	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments" json:"segments,omitempty"`
+	Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
 	// All video frames where a label was detected.
-	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*LabelFrame `protobuf:"bytes,4,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -755,9 +755,9 @@ func (m *LabelAnnotation) GetFrames() []*LabelFrame {
 type ExplicitContentFrame struct {
 	// Time-offset, relative to the beginning of the video, corresponding to the
 	// video frame for this location.
-	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset" json:"time_offset,omitempty"`
+	TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"`
 	// Likelihood of the pornography content..
-	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,enum=google.cloud.videointelligence.v1p1beta1.Likelihood" json:"pornography_likelihood,omitempty"`
+	PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,proto3,enum=google.cloud.videointelligence.v1p1beta1.Likelihood" json:"pornography_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}   `json:"-"`
 	XXX_unrecognized      []byte     `json:"-"`
 	XXX_sizecache         int32      `json:"-"`
@@ -806,7 +806,7 @@ func (m *ExplicitContentFrame) GetPornographyLikelihood() Likelihood {
 // present for that frame.
 type ExplicitContentAnnotation struct {
 	// All video frames where explicit content was detected.
-	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames" json:"frames,omitempty"`
+	Frames               []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -848,13 +848,13 @@ func (m *ExplicitContentAnnotation) GetFrames() []*ExplicitContentFrame {
 // Range: [0, 1].
 type NormalizedBoundingBox struct {
 	// Left X coordinate.
-	Left float32 `protobuf:"fixed32,1,opt,name=left" json:"left,omitempty"`
+	Left float32 `protobuf:"fixed32,1,opt,name=left,proto3" json:"left,omitempty"`
 	// Top Y coordinate.
-	Top float32 `protobuf:"fixed32,2,opt,name=top" json:"top,omitempty"`
+	Top float32 `protobuf:"fixed32,2,opt,name=top,proto3" json:"top,omitempty"`
 	// Right X coordinate.
-	Right float32 `protobuf:"fixed32,3,opt,name=right" json:"right,omitempty"`
+	Right float32 `protobuf:"fixed32,3,opt,name=right,proto3" json:"right,omitempty"`
 	// Bottom Y coordinate.
-	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom" json:"bottom,omitempty"`
+	Bottom               float32  `protobuf:"fixed32,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -916,25 +916,25 @@ func (m *NormalizedBoundingBox) GetBottom() float32 {
 type VideoAnnotationResults struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Label annotations on video level or user specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations" json:"segment_label_annotations,omitempty"`
+	SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations,proto3" json:"segment_label_annotations,omitempty"`
 	// Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations" json:"shot_label_annotations,omitempty"`
+	ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations,proto3" json:"shot_label_annotations,omitempty"`
 	// Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations" json:"frame_label_annotations,omitempty"`
+	FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations,proto3" json:"frame_label_annotations,omitempty"`
 	// Shot annotations. Each shot is represented as a video segment.
-	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations" json:"shot_annotations,omitempty"`
+	ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations,proto3" json:"shot_annotations,omitempty"`
 	// Explicit content annotation.
-	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation" json:"explicit_annotation,omitempty"`
+	ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation,proto3" json:"explicit_annotation,omitempty"`
 	// Speech transcription.
-	SpeechTranscriptions []*SpeechTranscription `protobuf:"bytes,11,rep,name=speech_transcriptions,json=speechTranscriptions" json:"speech_transcriptions,omitempty"`
+	SpeechTranscriptions []*SpeechTranscription `protobuf:"bytes,11,rep,name=speech_transcriptions,json=speechTranscriptions,proto3" json:"speech_transcriptions,omitempty"`
 	// If set, indicates an error. Note that for a single `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
-	Error                *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1025,7 +1025,7 @@ func (m *VideoAnnotationResults) GetError() *status.Status {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoResponse struct {
 	// Annotation results for all videos specified in `AnnotateVideoRequest`.
-	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults" json:"annotation_results,omitempty"`
+	AnnotationResults    []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults,proto3" json:"annotation_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1066,14 +1066,14 @@ func (m *AnnotateVideoResponse) GetAnnotationResults() []*VideoAnnotationResults
 type VideoAnnotationProgress struct {
 	// Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
-	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri" json:"input_uri,omitempty"`
+	InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
 	// Approximate percentage processed thus far.
 	// Guaranteed to be 100 when fully processed.
-	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	// Time when the request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time of the most recent update.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1136,7 +1136,7 @@ func (m *VideoAnnotationProgress) GetUpdateTime() *timestamp.Timestamp {
 // call of the `google::longrunning::Operations` service.
 type AnnotateVideoProgress struct {
 	// Progress metadata for all videos specified in `AnnotateVideoRequest`.
-	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress" json:"annotation_progress,omitempty"`
+	AnnotationProgress   []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress,proto3" json:"annotation_progress,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1180,23 +1180,23 @@ type SpeechTranscriptionConfig struct {
 	// Example: "en-US".
 	// See [Language Support](https://cloud.google.com/speech/docs/languages)
 	// for a list of the currently supported language codes.
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// *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.
-	MaxAlternatives int32 `protobuf:"varint,2,opt,name=max_alternatives,json=maxAlternatives" json:"max_alternatives,omitempty"`
+	MaxAlternatives int32 `protobuf:"varint,2,opt,name=max_alternatives,json=maxAlternatives,proto3" json:"max_alternatives,omitempty"`
 	// *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.
-	FilterProfanity bool `protobuf:"varint,3,opt,name=filter_profanity,json=filterProfanity" json:"filter_profanity,omitempty"`
+	FilterProfanity bool `protobuf:"varint,3,opt,name=filter_profanity,json=filterProfanity,proto3" json:"filter_profanity,omitempty"`
 	// *Optional* A means to provide context to assist the speech recognition.
-	SpeechContexts []*SpeechContext `protobuf:"bytes,4,rep,name=speech_contexts,json=speechContexts" json:"speech_contexts,omitempty"`
+	SpeechContexts []*SpeechContext `protobuf:"bytes,4,rep,name=speech_contexts,json=speechContexts,proto3" json:"speech_contexts,omitempty"`
 	// *Optional* For file formats, such as MXF or MKV, supporting multiple audio
 	// tracks, specify up to two tracks. Default: track 0.
-	AudioTracks          []int32  `protobuf:"varint,6,rep,packed,name=audio_tracks,json=audioTracks" json:"audio_tracks,omitempty"`
+	AudioTracks          []int32  `protobuf:"varint,6,rep,packed,name=audio_tracks,json=audioTracks,proto3" json:"audio_tracks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1270,7 +1270,7 @@ type SpeechContext struct {
 	// 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).
-	Phrases              []string `protobuf:"bytes,1,rep,name=phrases" json:"phrases,omitempty"`
+	Phrases              []string `protobuf:"bytes,1,rep,name=phrases,proto3" json:"phrases,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1313,7 +1313,7 @@ type SpeechTranscription struct {
 	// maximum specified in `max_alternatives`).
 	// These alternatives are ordered in terms of accuracy, with the top (first)
 	// alternative being the most probable, as ranked by the recognizer.
-	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives" json:"alternatives,omitempty"`
+	Alternatives         []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -1353,16 +1353,16 @@ func (m *SpeechTranscription) GetAlternatives() []*SpeechRecognitionAlternative
 // Alternative hypotheses (a.k.a. n-best list).
 type SpeechRecognitionAlternative struct {
 	// Output only. Transcript text representing the words that the user spoke.
-	Transcript string `protobuf:"bytes,1,opt,name=transcript" json:"transcript,omitempty"`
+	Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"`
 	// 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 consistent.
 	// The default of 0.0 is a sentinel value indicating `confidence` was not set.
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Output only. A list of word-specific information for each recognized word.
-	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words                []*WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1421,14 +1421,14 @@ type WordInfo struct {
 	// corresponding to the start of the spoken word. This field is only set if
 	// `enable_word_time_offsets=true` and only in the top hypothesis. This is an
 	// experimental feature and the accuracy of the time offset can vary.
-	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Output only. Time offset relative to the beginning of the audio, and
 	// corresponding to the end of the spoken word. This field is only set if
 	// `enable_word_time_offsets=true` and only in the top hypothesis. This is an
 	// experimental feature and the accuracy of the time offset can vary.
-	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Output only. The word corresponding to this set of information.
-	Word                 string   `protobuf:"bytes,3,opt,name=word" json:"word,omitempty"`
+	Word                 string   `protobuf:"bytes,3,opt,name=word,proto3" json:"word,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1543,8 +1543,7 @@ func (c *videoIntelligenceServiceClient) AnnotateVideo(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for VideoIntelligenceService service
-
+// VideoIntelligenceServiceServer is the server API for VideoIntelligenceService service.
 type VideoIntelligenceServiceServer interface {
 	// Performs asynchronous video annotation. Progress and results can be
 	// retrieved through the `google.longrunning.Operations` interface.
diff --git a/googleapis/cloud/vision/v1/geometry.pb.go b/googleapis/cloud/vision/v1/geometry.pb.go
index 9dcccfc39d37e056dafe0322fc1258a9813c08a0..26a0296d68643be6389faf544f93be5bc8832faa 100644
--- a/googleapis/cloud/vision/v1/geometry.pb.go
+++ b/googleapis/cloud/vision/v1/geometry.pb.go
@@ -22,9 +22,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // NOTE: the vertex coordinates are in the same scale as the original image.
 type Vertex struct {
 	// X coordinate.
-	X int32 `protobuf:"varint,1,opt,name=x" json:"x,omitempty"`
+	X int32 `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y                    int32    `protobuf:"varint,2,opt,name=y" json:"y,omitempty"`
+	Y                    int32    `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -73,9 +73,9 @@ func (m *Vertex) GetY() int32 {
 // and range from 0 to 1.
 type NormalizedVertex struct {
 	// X coordinate.
-	X float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
+	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y                    float32  `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
+	Y                    float32  `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -122,9 +122,9 @@ func (m *NormalizedVertex) GetY() float32 {
 // A bounding polygon for the detected image annotation.
 type BoundingPoly struct {
 	// The bounding polygon vertices.
-	Vertices []*Vertex `protobuf:"bytes,1,rep,name=vertices" json:"vertices,omitempty"`
+	Vertices []*Vertex `protobuf:"bytes,1,rep,name=vertices,proto3" json:"vertices,omitempty"`
 	// The bounding polygon normalized vertices.
-	NormalizedVertices   []*NormalizedVertex `protobuf:"bytes,2,rep,name=normalized_vertices,json=normalizedVertices" json:"normalized_vertices,omitempty"`
+	NormalizedVertices   []*NormalizedVertex `protobuf:"bytes,2,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -173,11 +173,11 @@ func (m *BoundingPoly) GetNormalizedVertices() []*NormalizedVertex {
 // The position coordinates are in the same scale as the original image.
 type Position struct {
 	// X coordinate.
-	X float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
+	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
+	Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
 	// Z coordinate (or depth).
-	Z                    float32  `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"`
+	Z                    float32  `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1/image_annotator.pb.go b/googleapis/cloud/vision/v1/image_annotator.pb.go
index 56c0e2589a27670c4a66469f74aa19ac5b42c8af..034cf127a09171254f2ac6cf6e1aaee0c7cbbfbb 100644
--- a/googleapis/cloud/vision/v1/image_annotator.pb.go
+++ b/googleapis/cloud/vision/v1/image_annotator.pb.go
@@ -343,14 +343,14 @@ func (OperationMetadata_State) EnumDescriptor() ([]byte, []int) {
 // be specified in the `features` list.
 type Feature struct {
 	// The feature type.
-	Type Feature_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1.Feature_Type" json:"type,omitempty"`
+	Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1.Feature_Type" json:"type,omitempty"`
 	// Maximum number of results of this type. Does not apply to
 	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
-	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	// Model to use for the feature.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,7 +409,7 @@ type ImageSource struct {
 	// `gs://bucket_name/object_name`. Object versioning is not supported. See
 	// [Google Cloud Storage Request
 	// URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
-	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri" json:"gcs_image_uri,omitempty"`
+	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"`
 	// The URI of the source image. Can be either:
 	//
 	// 1. A Google Cloud Storage URI of the form
@@ -427,7 +427,7 @@ type ImageSource struct {
 	//
 	// When both `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
 	// precedence.
-	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -480,7 +480,7 @@ type Image struct {
 	// Google Cloud Storage image location, or publicly-accessible image
 	// URL. If both `content` and `source` are provided for an image, `content`
 	// takes precedence and is used to perform the image annotation request.
-	Source               *ImageSource `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"`
+	Source               *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -533,45 +533,45 @@ type FaceAnnotation struct {
 	// Note that one or more x and/or y coordinates may not be generated in the
 	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
 	// appears in the image to be annotated.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// The `fd_bounding_poly` bounding polygon is tighter than the
 	// `boundingPoly`, and encloses only the skin part of the face. Typically, it
 	// is used to eliminate the face from any image analysis that detects the
 	// "amount of skin" visible in an image. It is not based on the
 	// landmarker results, only on the initial face detection, hence
 	// the <code>fd</code> (face detection) prefix.
-	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly" json:"fd_bounding_poly,omitempty"`
+	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"`
 	// Detected face landmarks.
-	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks" json:"landmarks,omitempty"`
+	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"`
 	// 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].
-	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle" json:"roll_angle,omitempty"`
+	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"`
 	// 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].
-	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle" json:"pan_angle,omitempty"`
+	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"`
 	// Pitch angle, which indicates the upwards/downwards angle that the face is
 	// pointing relative to the image's horizontal plane. Range [-180,180].
-	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle" json:"tilt_angle,omitempty"`
+	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"`
 	// Detection confidence. Range [0, 1].
-	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence" json:"detection_confidence,omitempty"`
+	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"`
 	// Face landmarking confidence. Range [0, 1].
-	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence" json:"landmarking_confidence,omitempty"`
+	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"`
 	// Joy likelihood.
-	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"joy_likelihood,omitempty"`
+	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"joy_likelihood,omitempty"`
 	// Sorrow likelihood.
-	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"sorrow_likelihood,omitempty"`
+	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"sorrow_likelihood,omitempty"`
 	// Anger likelihood.
-	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"anger_likelihood,omitempty"`
+	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"anger_likelihood,omitempty"`
 	// Surprise likelihood.
-	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"surprise_likelihood,omitempty"`
+	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"surprise_likelihood,omitempty"`
 	// Under-exposed likelihood.
-	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"under_exposed_likelihood,omitempty"`
+	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"under_exposed_likelihood,omitempty"`
 	// Blurred likelihood.
-	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"blurred_likelihood,omitempty"`
+	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"blurred_likelihood,omitempty"`
 	// Headwear likelihood.
-	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,enum=google.cloud.vision.v1.Likelihood" json:"headwear_likelihood,omitempty"`
+	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1.Likelihood" json:"headwear_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -709,9 +709,9 @@ func (m *FaceAnnotation) GetHeadwearLikelihood() Likelihood {
 // A face-specific landmark (for example, a face feature).
 type FaceAnnotation_Landmark struct {
 	// Face landmark type.
-	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,enum=google.cloud.vision.v1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
+	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
 	// Face landmark position.
-	Position             *Position `protobuf:"bytes,4,opt,name=position" json:"position,omitempty"`
+	Position             *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -758,7 +758,7 @@ func (m *FaceAnnotation_Landmark) GetPosition() *Position {
 // Detected entity location information.
 type LocationInfo struct {
 	// lat/long location coordinates.
-	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng" json:"lat_lng,omitempty"`
+	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -798,11 +798,11 @@ func (m *LocationInfo) GetLatLng() *latlng.LatLng {
 // A `Property` consists of a user-supplied name/value pair.
 type Property struct {
 	// Name of the property.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Value of the property.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Value of numeric properties.
-	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value" json:"uint64_value,omitempty"`
+	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -858,38 +858,38 @@ type EntityAnnotation struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search
 	// API](https://developers.google.com/knowledge-graph/).
-	Mid string `protobuf:"bytes,1,opt,name=mid" json:"mid,omitempty"`
+	Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
 	// The language code for the locale in which the entity textual
 	// `description` is expressed.
-	Locale string `protobuf:"bytes,2,opt,name=locale" json:"locale,omitempty"`
+	Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"`
 	// Entity textual description, expressed in its `locale` language.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Overall score of the result. Range [0, 1].
-	Score float32 `protobuf:"fixed32,4,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
 	// **Deprecated. Use `score` instead.**
 	// The accuracy of the entity detection in an image.
 	// For example, for an image in which the "Eiffel Tower" entity is detected,
 	// this field represents the confidence that there is a tower in the query
 	// image. Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// The relevancy of the ICA (Image Content Annotation) label to the
 	// image. For example, the relevancy of "tower" is likely higher to an image
 	// 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].
-	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality" json:"topicality,omitempty"`
+	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"`
 	// Image region to which this entity belongs. Not produced
 	// for `LABEL_DETECTION` features.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// 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
 	// may indicate the location of the place where the image was taken.
 	// Location information is usually present for landmarks.
-	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations" json:"locations,omitempty"`
+	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"`
 	// Some entities may have optional user-supplied `Property` (name/value)
 	// fields, such a score or string that qualifies the entity.
-	Properties           []*Property `protobuf:"bytes,9,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -989,20 +989,20 @@ type SafeSearchAnnotation struct {
 	// Represents the adult content likelihood for the image. Adult content may
 	// contain elements such as nudity, pornographic images or cartoons, or
 	// sexual activities.
-	Adult Likelihood `protobuf:"varint,1,opt,name=adult,enum=google.cloud.vision.v1.Likelihood" json:"adult,omitempty"`
+	Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1.Likelihood" json:"adult,omitempty"`
 	// Spoof likelihood. The likelihood that an modification
 	// was made to the image's canonical version to make it appear
 	// funny or offensive.
-	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,enum=google.cloud.vision.v1.Likelihood" json:"spoof,omitempty"`
+	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1.Likelihood" json:"spoof,omitempty"`
 	// Likelihood that this is a medical image.
-	Medical Likelihood `protobuf:"varint,3,opt,name=medical,enum=google.cloud.vision.v1.Likelihood" json:"medical,omitempty"`
+	Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1.Likelihood" json:"medical,omitempty"`
 	// Likelihood that this image contains violent content.
-	Violence Likelihood `protobuf:"varint,4,opt,name=violence,enum=google.cloud.vision.v1.Likelihood" json:"violence,omitempty"`
+	Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1.Likelihood" json:"violence,omitempty"`
 	// Likelihood that the request image contains racy content. Racy content may
 	// include (but is not limited to) skimpy or sheer clothing, strategically
 	// covered nudity, lewd or provocative poses, or close-ups of sensitive
 	// body areas.
-	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,enum=google.cloud.vision.v1.Likelihood" json:"racy,omitempty"`
+	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1.Likelihood" json:"racy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1070,9 +1070,9 @@ func (m *SafeSearchAnnotation) GetRacy() Likelihood {
 // Rectangle determined by min and max `LatLng` pairs.
 type LatLongRect struct {
 	// Min lat/long pair.
-	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng" json:"min_lat_lng,omitempty"`
+	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"`
 	// Max lat/long pair.
-	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng" json:"max_lat_lng,omitempty"`
+	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1120,12 +1120,12 @@ func (m *LatLongRect) GetMaxLatLng() *latlng.LatLng {
 // the image that the color occupies in the image.
 type ColorInfo struct {
 	// RGB components of the color.
-	Color *color.Color `protobuf:"bytes,1,opt,name=color" json:"color,omitempty"`
+	Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
 	// Image-specific score for this color. Value in range [0, 1].
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// The fraction of pixels the color occupies in the image.
 	// Value in range [0, 1].
-	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction" json:"pixel_fraction,omitempty"`
+	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1179,7 +1179,7 @@ func (m *ColorInfo) GetPixelFraction() float32 {
 // Set of dominant colors and their corresponding scores.
 type DominantColorsAnnotation struct {
 	// RGB color values with their score and pixel fraction.
-	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors" json:"colors,omitempty"`
+	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1219,7 +1219,7 @@ func (m *DominantColorsAnnotation) GetColors() []*ColorInfo {
 // Stores image properties, such as dominant colors.
 type ImageProperties struct {
 	// If present, dominant colors completed successfully.
-	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors" json:"dominant_colors,omitempty"`
+	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1260,12 +1260,12 @@ func (m *ImageProperties) GetDominantColors() *DominantColorsAnnotation {
 type CropHint struct {
 	// The bounding polygon for the crop region. The coordinates of the bounding
 	// box are in the original image's scale, as returned in `ImageParams`.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// Confidence of this being a salient region.  Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Fraction of importance of this salient region with respect to the original
 	// image.
-	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction" json:"importance_fraction,omitempty"`
+	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1319,7 +1319,7 @@ func (m *CropHint) GetImportanceFraction() float32 {
 // Set of crop hints that are used to generate new crops when serving images.
 type CropHintsAnnotation struct {
 	// Crop hint results.
-	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints" json:"crop_hints,omitempty"`
+	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1364,7 +1364,7 @@ type CropHintsParams struct {
 	// best possible crop is returned. The number of provided aspect ratios is
 	// limited to a maximum of 16; any aspect ratios provided after the 16th are
 	// ignored.
-	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios" json:"aspect_ratios,omitempty"`
+	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1404,7 +1404,7 @@ func (m *CropHintsParams) GetAspectRatios() []float32 {
 // Parameters for web detection request.
 type WebDetectionParams struct {
 	// Whether to include results derived from the geo information in the image.
-	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults" json:"include_geo_results,omitempty"`
+	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1444,7 +1444,7 @@ func (m *WebDetectionParams) GetIncludeGeoResults() bool {
 // Image context and/or feature-specific parameters.
 type ImageContext struct {
 	// Not used.
-	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect" json:"lat_long_rect,omitempty"`
+	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"`
 	// List of languages to use for TEXT_DETECTION. In most cases, an empty value
 	// yields the best results since it enables automatic language detection. For
 	// languages based on the Latin alphabet, setting `language_hints` is not
@@ -1453,11 +1453,11 @@ type ImageContext struct {
 	// significant hindrance if the hint is wrong). Text detection returns an
 	// error if one or more of the specified languages is not one of the
 	// [supported languages](/vision/docs/languages).
-	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints" json:"language_hints,omitempty"`
+	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"`
 	// Parameters for crop hints annotation request.
-	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams" json:"crop_hints_params,omitempty"`
+	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"`
 	// Parameters for web detection.
-	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams" json:"web_detection_params,omitempty"`
+	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1519,11 +1519,11 @@ func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
 // image, with user-requested features.
 type AnnotateImageRequest struct {
 	// The image to be processed.
-	Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"`
+	Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
 	// Requested features.
-	Features []*Feature `protobuf:"bytes,2,rep,name=features" json:"features,omitempty"`
+	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
 	// Additional context that may accompany the image.
-	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext" json:"image_context,omitempty"`
+	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1578,10 +1578,10 @@ func (m *AnnotateImageRequest) GetImageContext() *ImageContext {
 // information about the source of that image.
 type ImageAnnotationContext struct {
 	// The URI of the file used to produce the image.
-	Uri string `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	// If the file was a PDF or TIFF, this field gives the page number within
 	// the file used to produce the image.
-	PageNumber           int32    `protobuf:"varint,2,opt,name=page_number,json=pageNumber" json:"page_number,omitempty"`
+	PageNumber           int32    `protobuf:"varint,2,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1628,35 +1628,35 @@ func (m *ImageAnnotationContext) GetPageNumber() int32 {
 // Response to an image annotation request.
 type AnnotateImageResponse struct {
 	// If present, face detection has completed successfully.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// If present, landmark detection has completed successfully.
-	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations" json:"landmark_annotations,omitempty"`
+	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"`
 	// If present, logo detection has completed successfully.
-	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations" json:"logo_annotations,omitempty"`
+	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"`
 	// If present, label detection has completed successfully.
-	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations" json:"label_annotations,omitempty"`
+	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
 	// If present, text (OCR) detection has completed successfully.
-	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations" json:"text_annotations,omitempty"`
+	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"`
 	// If present, text (OCR) detection or document (OCR) text detection has
 	// completed successfully.
 	// This annotation provides the structural hierarchy for the OCR detected
 	// text.
-	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation" json:"full_text_annotation,omitempty"`
+	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"`
 	// If present, safe-search annotation has completed successfully.
-	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation" json:"safe_search_annotation,omitempty"`
+	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"`
 	// If present, image properties were extracted successfully.
-	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation" json:"image_properties_annotation,omitempty"`
+	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"`
 	// If present, crop hints have completed successfully.
-	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation" json:"crop_hints_annotation,omitempty"`
+	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"`
 	// If present, web detection has completed successfully.
-	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection" json:"web_detection,omitempty"`
+	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"`
 	// 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.
-	Error *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	// If present, contextual information is needed to understand where this image
 	// comes from.
-	Context              *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context" json:"context,omitempty"`
+	Context              *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -1774,9 +1774,9 @@ func (m *AnnotateImageResponse) GetContext() *ImageAnnotationContext {
 // images, which individually have their own responses.
 type AnnotateFileResponse struct {
 	// Information about the file for which this response is generated.
-	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig" json:"input_config,omitempty"`
+	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
 	// Individual responses to images found within the file.
-	Responses            []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -1823,7 +1823,7 @@ func (m *AnnotateFileResponse) GetResponses() []*AnnotateImageResponse {
 // Multiple image annotation requests are batched into a single service call.
 type BatchAnnotateImagesRequest struct {
 	// Individual image annotation requests for this batch.
-	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -1863,7 +1863,7 @@ func (m *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest {
 // Response to a batch image annotation request.
 type BatchAnnotateImagesResponse struct {
 	// Individual responses to image annotation requests within the batch.
-	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -1903,13 +1903,13 @@ func (m *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse {
 // An offline file annotation request.
 type AsyncAnnotateFileRequest struct {
 	// Required. Information about the input file.
-	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig" json:"input_config,omitempty"`
+	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
 	// Required. Requested features.
-	Features []*Feature `protobuf:"bytes,2,rep,name=features" json:"features,omitempty"`
+	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
 	// Additional context that may accompany the image(s) in the file.
-	ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext" json:"image_context,omitempty"`
+	ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
 	// Required. The desired output location and metadata (e.g. format).
-	OutputConfig         *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
+	OutputConfig         *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1970,7 +1970,7 @@ func (m *AsyncAnnotateFileRequest) GetOutputConfig() *OutputConfig {
 // The response for a single offline file annotation request.
 type AsyncAnnotateFileResponse struct {
 	// The output location and metadata from AsyncAnnotateFileRequest.
-	OutputConfig         *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
+	OutputConfig         *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -2011,7 +2011,7 @@ func (m *AsyncAnnotateFileResponse) GetOutputConfig() *OutputConfig {
 // call.
 type AsyncBatchAnnotateFilesRequest struct {
 	// Individual async file annotation requests for this batch.
-	Requests             []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -2052,7 +2052,7 @@ func (m *AsyncBatchAnnotateFilesRequest) GetRequests() []*AsyncAnnotateFileReque
 type AsyncBatchAnnotateFilesResponse struct {
 	// The list of file annotation responses, one for each request in
 	// AsyncBatchAnnotateFilesRequest.
-	Responses            []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -2092,10 +2092,10 @@ func (m *AsyncBatchAnnotateFilesResponse) GetResponses() []*AsyncAnnotateFileRes
 // The desired input location and metadata.
 type InputConfig struct {
 	// The Google Cloud Storage location to read the input from.
-	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource" json:"gcs_source,omitempty"`
+	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3" json:"gcs_source,omitempty"`
 	// The type of the file. Currently only "application/pdf" and "image/tiff"
 	// are supported. Wildcards are not supported.
-	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2142,7 +2142,7 @@ func (m *InputConfig) GetMimeType() string {
 // The desired output location and metadata.
 type OutputConfig struct {
 	// The Google Cloud Storage location to write the output(s) to.
-	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination" json:"gcs_destination,omitempty"`
+	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3" json:"gcs_destination,omitempty"`
 	// The max number of response protos to put into each output JSON file on
 	// Google Cloud Storage.
 	// The valid range is [1, 100]. If not specified, the default value is 20.
@@ -2154,7 +2154,7 @@ type OutputConfig struct {
 	//
 	// Currently, batch_size only applies to GcsDestination, with potential future
 	// support for other output configurations.
-	BatchSize            int32    `protobuf:"varint,2,opt,name=batch_size,json=batchSize" json:"batch_size,omitempty"`
+	BatchSize            int32    `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2202,7 +2202,7 @@ func (m *OutputConfig) GetBatchSize() int32 {
 type GcsSource struct {
 	// Google Cloud Storage URI for the input file. This must only be a
 	// Google Cloud Storage object. Wildcards are not currently supported.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2256,7 +2256,7 @@ type GcsDestination struct {
 	// which contains some subset of the full list of AnnotateImageResponse.
 	// Multiple outputs can happen if, for example, the output JSON is too large
 	// and overflows into multiple sharded files.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2296,11 +2296,11 @@ func (m *GcsDestination) GetUri() string {
 // Contains metadata for the BatchAnnotateImages operation.
 type OperationMetadata struct {
 	// Current state of the batch operation.
-	State OperationMetadata_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.vision.v1.OperationMetadata_State" json:"state,omitempty"`
+	State OperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1.OperationMetadata_State" json:"state,omitempty"`
 	// The time when the batch request was received.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time when the operation result was last updated.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -2440,8 +2440,7 @@ func (c *imageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for ImageAnnotator service
-
+// ImageAnnotatorServer is the server API for ImageAnnotator service.
 type ImageAnnotatorServer interface {
 	// Run image detection and annotation for a batch of images.
 	BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error)
diff --git a/googleapis/cloud/vision/v1/text_annotation.pb.go b/googleapis/cloud/vision/v1/text_annotation.pb.go
index 9346860f04d6f62b84f1634632a410207a3a3444..e2558abc96d958f947bb5265939f67766493ae47 100644
--- a/googleapis/cloud/vision/v1/text_annotation.pb.go
+++ b/googleapis/cloud/vision/v1/text_annotation.pb.go
@@ -113,9 +113,9 @@ func (Block_BlockType) EnumDescriptor() ([]byte, []int) {
 // detail.
 type TextAnnotation struct {
 	// List of pages detected by OCR.
-	Pages []*Page `protobuf:"bytes,1,rep,name=pages" json:"pages,omitempty"`
+	Pages []*Page `protobuf:"bytes,1,rep,name=pages,proto3" json:"pages,omitempty"`
 	// UTF-8 text detected on the pages.
-	Text                 string   `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
+	Text                 string   `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -164,9 +164,9 @@ type TextAnnotation_DetectedLanguage struct {
 	// 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.
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Confidence of detected language. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -213,9 +213,9 @@ func (m *TextAnnotation_DetectedLanguage) GetConfidence() float32 {
 // Detected start or end of a structural component.
 type TextAnnotation_DetectedBreak struct {
 	// Detected break type.
-	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
+	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
 	// True if break prepends the element.
-	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix" json:"is_prefix,omitempty"`
+	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix,proto3" json:"is_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,9 +262,9 @@ func (m *TextAnnotation_DetectedBreak) GetIsPrefix() bool {
 // Additional information detected on the structural component.
 type TextAnnotation_TextProperty struct {
 	// A list of detected languages together with confidence.
-	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages" json:"detected_languages,omitempty"`
+	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
 	// Detected start or end of a text segment.
-	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak" json:"detected_break,omitempty"`
+	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak,proto3" json:"detected_break,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -311,17 +311,17 @@ func (m *TextAnnotation_TextProperty) GetDetectedBreak() *TextAnnotation_Detecte
 // Detected page from OCR.
 type Page struct {
 	// Additional information detected on the page.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// Page width. For PDFs the unit is points. For images (including
 	// TIFFs) the unit is pixels.
-	Width int32 `protobuf:"varint,2,opt,name=width" json:"width,omitempty"`
+	Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
 	// Page height. For PDFs the unit is points. For images (including
 	// TIFFs) the unit is pixels.
-	Height int32 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
+	Height int32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
 	// List of blocks of text, images etc on this page.
-	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks" json:"blocks,omitempty"`
+	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
 	// Confidence of the OCR results on the page. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -389,7 +389,7 @@ func (m *Page) GetConfidence() float32 {
 // Logical element on the page.
 type Block struct {
 	// Additional information detected for the block.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -410,13 +410,13 @@ type Block struct {
 	//         1----0
 	//
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of paragraphs in this block (if this blocks is of type text).
-	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs" json:"paragraphs,omitempty"`
+	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs,proto3" json:"paragraphs,omitempty"`
 	// Detected block type (text, image etc) for this block.
-	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,enum=google.cloud.vision.v1.Block_BlockType" json:"block_type,omitempty"`
+	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,proto3,enum=google.cloud.vision.v1.Block_BlockType" json:"block_type,omitempty"`
 	// Confidence of the OCR results on the block. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -484,7 +484,7 @@ func (m *Block) GetConfidence() float32 {
 // Structural unit of text representing a number of words in certain order.
 type Paragraph struct {
 	// Additional information detected for the paragraph.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -500,11 +500,11 @@ type Paragraph struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of words in this paragraph.
-	Words []*Word `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words []*Word `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	// Confidence of the OCR results for the paragraph. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -565,7 +565,7 @@ func (m *Paragraph) GetConfidence() float32 {
 // A word representation.
 type Word struct {
 	// Additional information detected for the word.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -581,12 +581,12 @@ type Word struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of symbols in the word.
 	// The order of the symbols follows the natural reading order.
-	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols" json:"symbols,omitempty"`
+	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols,proto3" json:"symbols,omitempty"`
 	// Confidence of the OCR results for the word. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -647,7 +647,7 @@ func (m *Word) GetConfidence() float32 {
 // A single symbol representation.
 type Symbol struct {
 	// Additional information detected for the symbol.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -663,11 +663,11 @@ type Symbol struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// The actual UTF-8 representation of the symbol.
-	Text string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
 	// Confidence of the OCR results for the symbol. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1/web_detection.pb.go b/googleapis/cloud/vision/v1/web_detection.pb.go
index 4da22b3c9ca9aef949d78d2290e4d0be15a737ff..ba251d127896e1bd7bfec04678b822f500522ac3 100644
--- a/googleapis/cloud/vision/v1/web_detection.pb.go
+++ b/googleapis/cloud/vision/v1/web_detection.pb.go
@@ -22,20 +22,20 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Relevant information for the image from the Internet.
 type WebDetection struct {
 	// Deduced entities from similar images on the Internet.
-	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities" json:"web_entities,omitempty"`
+	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities,proto3" json:"web_entities,omitempty"`
 	// Fully matching images from the Internet.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images from the Internet.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	// Web pages containing the matching images from the Internet.
-	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages" json:"pages_with_matching_images,omitempty"`
+	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages,proto3" json:"pages_with_matching_images,omitempty"`
 	// The visually similar image results.
-	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages" json:"visually_similar_images,omitempty"`
+	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages,proto3" json:"visually_similar_images,omitempty"`
 	// Best guess text labels for the request image.
-	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels" json:"best_guess_labels,omitempty"`
+	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels,proto3" json:"best_guess_labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -110,12 +110,12 @@ func (m *WebDetection) GetBestGuessLabels() []*WebDetection_WebLabel {
 // Entity deduced from similar images on the Internet.
 type WebDetection_WebEntity struct {
 	// Opaque entity ID.
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Overall relevancy score for the entity.
 	// Not normalized and not comparable across different image queries.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Canonical description of the entity, in English.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -169,9 +169,9 @@ func (m *WebDetection_WebEntity) GetDescription() string {
 // Metadata for online images.
 type WebDetection_WebImage struct {
 	// The result image URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the image.
-	Score                float32  `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -218,19 +218,19 @@ func (m *WebDetection_WebImage) GetScore() float32 {
 // Metadata for web pages.
 type WebDetection_WebPage struct {
 	// The result web page URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the web page.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Title for the web page, may contain HTML markups.
-	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle" json:"page_title,omitempty"`
+	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle,proto3" json:"page_title,omitempty"`
 	// Fully matching images on the page.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images on the page.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its
 	// crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}                 `json:"-"`
 	XXX_unrecognized      []byte                   `json:"-"`
 	XXX_sizecache         int32                    `json:"-"`
@@ -298,11 +298,11 @@ func (m *WebDetection_WebPage) GetPartialMatchingImages() []*WebDetection_WebIma
 // Label to provide extra metadata for the web detection.
 type WebDetection_WebLabel struct {
 	// Label for extra metadata.
-	Label string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"`
+	Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
 	// The BCP-47 language code for `label`, such as "en-US" or "sr-Latn".
 	// For more information, see
 	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p1beta1/geometry.pb.go b/googleapis/cloud/vision/v1p1beta1/geometry.pb.go
index a5ddec0401d0f460746932b2109e4eef93904d1f..ec045311760d97e00172730efa424c3e58012489 100644
--- a/googleapis/cloud/vision/v1p1beta1/geometry.pb.go
+++ b/googleapis/cloud/vision/v1p1beta1/geometry.pb.go
@@ -22,9 +22,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // NOTE: the vertex coordinates are in the same scale as the original image.
 type Vertex struct {
 	// X coordinate.
-	X int32 `protobuf:"varint,1,opt,name=x" json:"x,omitempty"`
+	X int32 `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y                    int32    `protobuf:"varint,2,opt,name=y" json:"y,omitempty"`
+	Y                    int32    `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -71,7 +71,7 @@ func (m *Vertex) GetY() int32 {
 // A bounding polygon for the detected image annotation.
 type BoundingPoly struct {
 	// The bounding polygon vertices.
-	Vertices             []*Vertex `protobuf:"bytes,1,rep,name=vertices" json:"vertices,omitempty"`
+	Vertices             []*Vertex `protobuf:"bytes,1,rep,name=vertices,proto3" json:"vertices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -113,11 +113,11 @@ func (m *BoundingPoly) GetVertices() []*Vertex {
 // The position coordinates are in the same scale as the original image.
 type Position struct {
 	// X coordinate.
-	X float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
+	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
+	Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
 	// Z coordinate (or depth).
-	Z                    float32  `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"`
+	Z                    float32  `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p1beta1/image_annotator.pb.go b/googleapis/cloud/vision/v1p1beta1/image_annotator.pb.go
index f1208baefe22b4b712b464d6c0a64266504646eb..f42b092d292be1ddc102fd1c1d899f71932e9426 100644
--- a/googleapis/cloud/vision/v1p1beta1/image_annotator.pb.go
+++ b/googleapis/cloud/vision/v1p1beta1/image_annotator.pb.go
@@ -300,13 +300,13 @@ func (FaceAnnotation_Landmark_Type) EnumDescriptor() ([]byte, []int) {
 // vertical to operate on and the number of top-scoring results to return.
 type Feature struct {
 	// The feature type.
-	Type Feature_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1p1beta1.Feature_Type" json:"type,omitempty"`
+	Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.Feature_Type" json:"type,omitempty"`
 	// Maximum number of results of this type.
-	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	// Model to use for the feature.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -365,7 +365,7 @@ type ImageSource struct {
 	// [Google Cloud Storage Request
 	// URIs](https://cloud.google.com/storage/docs/reference-uris)).
 	// NOTE: Cloud Storage object versioning is not supported.
-	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri" json:"gcs_image_uri,omitempty"`
+	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"`
 	// Image URI which supports:
 	// 1) Google Cloud Storage image URI, which must be in the following form:
 	// `gs://bucket_name/object_name` (for details, see
@@ -376,7 +376,7 @@ type ImageSource struct {
 	// This is preferred over the legacy `gcs_image_uri` above. When both
 	// `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
 	// precedence.
-	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -429,7 +429,7 @@ type Image struct {
 	// Google Cloud Storage image location. If both `content` and `source`
 	// are provided for an image, `content` takes precedence and is
 	// used to perform the image annotation request.
-	Source               *ImageSource `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"`
+	Source               *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -482,45 +482,45 @@ type FaceAnnotation struct {
 	// Note that one or more x and/or y coordinates may not be generated in the
 	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
 	// appears in the image to be annotated.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// The `fd_bounding_poly` bounding polygon is tighter than the
 	// `boundingPoly`, and encloses only the skin part of the face. Typically, it
 	// is used to eliminate the face from any image analysis that detects the
 	// "amount of skin" visible in an image. It is not based on the
 	// landmarker results, only on the initial face detection, hence
 	// the <code>fd</code> (face detection) prefix.
-	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly" json:"fd_bounding_poly,omitempty"`
+	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"`
 	// Detected face landmarks.
-	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks" json:"landmarks,omitempty"`
+	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"`
 	// 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].
-	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle" json:"roll_angle,omitempty"`
+	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"`
 	// 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].
-	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle" json:"pan_angle,omitempty"`
+	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"`
 	// Pitch angle, which indicates the upwards/downwards angle that the face is
 	// pointing relative to the image's horizontal plane. Range [-180,180].
-	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle" json:"tilt_angle,omitempty"`
+	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"`
 	// Detection confidence. Range [0, 1].
-	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence" json:"detection_confidence,omitempty"`
+	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"`
 	// Face landmarking confidence. Range [0, 1].
-	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence" json:"landmarking_confidence,omitempty"`
+	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"`
 	// Joy likelihood.
-	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"joy_likelihood,omitempty"`
+	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"joy_likelihood,omitempty"`
 	// Sorrow likelihood.
-	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
+	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
 	// Anger likelihood.
-	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"anger_likelihood,omitempty"`
+	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"anger_likelihood,omitempty"`
 	// Surprise likelihood.
-	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"surprise_likelihood,omitempty"`
+	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"surprise_likelihood,omitempty"`
 	// Under-exposed likelihood.
-	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
+	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
 	// Blurred likelihood.
-	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"blurred_likelihood,omitempty"`
+	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"blurred_likelihood,omitempty"`
 	// Headwear likelihood.
-	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"headwear_likelihood,omitempty"`
+	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"headwear_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -658,9 +658,9 @@ func (m *FaceAnnotation) GetHeadwearLikelihood() Likelihood {
 // A face-specific landmark (for example, a face feature).
 type FaceAnnotation_Landmark struct {
 	// Face landmark type.
-	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,enum=google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
+	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
 	// Face landmark position.
-	Position             *Position `protobuf:"bytes,4,opt,name=position" json:"position,omitempty"`
+	Position             *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -707,7 +707,7 @@ func (m *FaceAnnotation_Landmark) GetPosition() *Position {
 // Detected entity location information.
 type LocationInfo struct {
 	// lat/long location coordinates.
-	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng" json:"lat_lng,omitempty"`
+	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -747,11 +747,11 @@ func (m *LocationInfo) GetLatLng() *latlng.LatLng {
 // A `Property` consists of a user-supplied name/value pair.
 type Property struct {
 	// Name of the property.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Value of the property.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Value of numeric properties.
-	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value" json:"uint64_value,omitempty"`
+	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -806,37 +806,37 @@ func (m *Property) GetUint64Value() uint64 {
 type EntityAnnotation struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
-	Mid string `protobuf:"bytes,1,opt,name=mid" json:"mid,omitempty"`
+	Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
 	// The language code for the locale in which the entity textual
 	// `description` is expressed.
-	Locale string `protobuf:"bytes,2,opt,name=locale" json:"locale,omitempty"`
+	Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"`
 	// Entity textual description, expressed in its `locale` language.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Overall score of the result. Range [0, 1].
-	Score float32 `protobuf:"fixed32,4,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
 	// The accuracy of the entity detection in an image.
 	// For example, for an image in which the "Eiffel Tower" entity is detected,
 	// this field represents the confidence that there is a tower in the query
 	// image. Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// The relevancy of the ICA (Image Content Annotation) label to the
 	// image. For example, the relevancy of "tower" is likely higher to an image
 	// 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].
-	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality" json:"topicality,omitempty"`
+	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"`
 	// Image region to which this entity belongs. Not produced
 	// for `LABEL_DETECTION` features.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// 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
 	// may indicate the location of the place where the image was taken.
 	// Location information is usually present for landmarks.
-	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations" json:"locations,omitempty"`
+	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"`
 	// Some entities may have optional user-supplied `Property` (name/value)
 	// fields, such a score or string that qualifies the entity.
-	Properties           []*Property `protobuf:"bytes,9,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -936,20 +936,20 @@ type SafeSearchAnnotation struct {
 	// Represents the adult content likelihood for the image. Adult content may
 	// contain elements such as nudity, pornographic images or cartoons, or
 	// sexual activities.
-	Adult Likelihood `protobuf:"varint,1,opt,name=adult,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"adult,omitempty"`
+	Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"adult,omitempty"`
 	// Spoof likelihood. The likelihood that an modification
 	// was made to the image's canonical version to make it appear
 	// funny or offensive.
-	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"spoof,omitempty"`
+	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"spoof,omitempty"`
 	// Likelihood that this is a medical image.
-	Medical Likelihood `protobuf:"varint,3,opt,name=medical,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"medical,omitempty"`
+	Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"medical,omitempty"`
 	// Likelihood that this image contains violent content.
-	Violence Likelihood `protobuf:"varint,4,opt,name=violence,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"violence,omitempty"`
+	Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"violence,omitempty"`
 	// Likelihood that the request image contains racy content. Racy content may
 	// include (but is not limited to) skimpy or sheer clothing, strategically
 	// covered nudity, lewd or provocative poses, or close-ups of sensitive
 	// body areas.
-	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"racy,omitempty"`
+	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"racy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1017,9 +1017,9 @@ func (m *SafeSearchAnnotation) GetRacy() Likelihood {
 // Rectangle determined by min and max `LatLng` pairs.
 type LatLongRect struct {
 	// Min lat/long pair.
-	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng" json:"min_lat_lng,omitempty"`
+	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"`
 	// Max lat/long pair.
-	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng" json:"max_lat_lng,omitempty"`
+	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1067,12 +1067,12 @@ func (m *LatLongRect) GetMaxLatLng() *latlng.LatLng {
 // the image that the color occupies in the image.
 type ColorInfo struct {
 	// RGB components of the color.
-	Color *color.Color `protobuf:"bytes,1,opt,name=color" json:"color,omitempty"`
+	Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
 	// Image-specific score for this color. Value in range [0, 1].
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// The fraction of pixels the color occupies in the image.
 	// Value in range [0, 1].
-	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction" json:"pixel_fraction,omitempty"`
+	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1126,7 +1126,7 @@ func (m *ColorInfo) GetPixelFraction() float32 {
 // Set of dominant colors and their corresponding scores.
 type DominantColorsAnnotation struct {
 	// RGB color values with their score and pixel fraction.
-	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors" json:"colors,omitempty"`
+	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1166,7 +1166,7 @@ func (m *DominantColorsAnnotation) GetColors() []*ColorInfo {
 // Stores image properties, such as dominant colors.
 type ImageProperties struct {
 	// If present, dominant colors completed successfully.
-	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors" json:"dominant_colors,omitempty"`
+	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1207,12 +1207,12 @@ func (m *ImageProperties) GetDominantColors() *DominantColorsAnnotation {
 type CropHint struct {
 	// The bounding polygon for the crop region. The coordinates of the bounding
 	// box are in the original image's scale, as returned in `ImageParams`.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// Confidence of this being a salient region.  Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Fraction of importance of this salient region with respect to the original
 	// image.
-	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction" json:"importance_fraction,omitempty"`
+	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1266,7 +1266,7 @@ func (m *CropHint) GetImportanceFraction() float32 {
 // Set of crop hints that are used to generate new crops when serving images.
 type CropHintsAnnotation struct {
 	// Crop hint results.
-	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints" json:"crop_hints,omitempty"`
+	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1311,7 +1311,7 @@ type CropHintsParams struct {
 	// best possible crop is returned. The number of provided aspect ratios is
 	// limited to a maximum of 16; any aspect ratios provided after the 16th are
 	// ignored.
-	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios" json:"aspect_ratios,omitempty"`
+	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1351,7 +1351,7 @@ func (m *CropHintsParams) GetAspectRatios() []float32 {
 // Parameters for web detection request.
 type WebDetectionParams struct {
 	// Whether to include results derived from the geo information in the image.
-	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults" json:"include_geo_results,omitempty"`
+	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1391,7 +1391,7 @@ func (m *WebDetectionParams) GetIncludeGeoResults() bool {
 // Image context and/or feature-specific parameters.
 type ImageContext struct {
 	// lat/long rectangle that specifies the location of the image.
-	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect" json:"lat_long_rect,omitempty"`
+	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"`
 	// List of languages to use for TEXT_DETECTION. In most cases, an empty value
 	// yields the best results since it enables automatic language detection. For
 	// languages based on the Latin alphabet, setting `language_hints` is not
@@ -1400,11 +1400,11 @@ type ImageContext struct {
 	// significant hindrance if the hint is wrong). Text detection returns an
 	// error if one or more of the specified languages is not one of the
 	// [supported languages](/vision/docs/languages).
-	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints" json:"language_hints,omitempty"`
+	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"`
 	// Parameters for crop hints annotation request.
-	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams" json:"crop_hints_params,omitempty"`
+	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"`
 	// Parameters for web detection.
-	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams" json:"web_detection_params,omitempty"`
+	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1466,11 +1466,11 @@ func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
 // image, with user-requested features.
 type AnnotateImageRequest struct {
 	// The image to be processed.
-	Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"`
+	Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
 	// Requested features.
-	Features []*Feature `protobuf:"bytes,2,rep,name=features" json:"features,omitempty"`
+	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
 	// Additional context that may accompany the image.
-	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext" json:"image_context,omitempty"`
+	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1524,32 +1524,32 @@ func (m *AnnotateImageRequest) GetImageContext() *ImageContext {
 // Response to an image annotation request.
 type AnnotateImageResponse struct {
 	// If present, face detection has completed successfully.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// If present, landmark detection has completed successfully.
-	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations" json:"landmark_annotations,omitempty"`
+	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"`
 	// If present, logo detection has completed successfully.
-	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations" json:"logo_annotations,omitempty"`
+	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"`
 	// If present, label detection has completed successfully.
-	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations" json:"label_annotations,omitempty"`
+	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
 	// If present, text (OCR) detection has completed successfully.
-	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations" json:"text_annotations,omitempty"`
+	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"`
 	// If present, text (OCR) detection or document (OCR) text detection has
 	// completed successfully.
 	// This annotation provides the structural hierarchy for the OCR detected
 	// text.
-	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation" json:"full_text_annotation,omitempty"`
+	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"`
 	// If present, safe-search annotation has completed successfully.
-	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation" json:"safe_search_annotation,omitempty"`
+	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"`
 	// If present, image properties were extracted successfully.
-	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation" json:"image_properties_annotation,omitempty"`
+	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"`
 	// If present, crop hints have completed successfully.
-	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation" json:"crop_hints_annotation,omitempty"`
+	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"`
 	// If present, web detection has completed successfully.
-	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection" json:"web_detection,omitempty"`
+	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"`
 	// 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.
-	Error                *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error                *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1659,7 +1659,7 @@ func (m *AnnotateImageResponse) GetError() *status.Status {
 // Multiple image annotation requests are batched into a single service call.
 type BatchAnnotateImagesRequest struct {
 	// Individual image annotation requests for this batch.
-	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -1699,7 +1699,7 @@ func (m *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest {
 // Response to a batch image annotation request.
 type BatchAnnotateImagesResponse struct {
 	// Individual responses to image annotation requests within the batch.
-	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -1797,8 +1797,7 @@ func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *Batc
 	return out, nil
 }
 
-// Server API for ImageAnnotator service
-
+// ImageAnnotatorServer is the server API for ImageAnnotator service.
 type ImageAnnotatorServer interface {
 	// Run image detection and annotation for a batch of images.
 	BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error)
diff --git a/googleapis/cloud/vision/v1p1beta1/text_annotation.pb.go b/googleapis/cloud/vision/v1p1beta1/text_annotation.pb.go
index a3261184c8a1916933650b8e6ecaa88f827f6dc9..9cdbb97563a7ba1fc4f3dc4d9cb2b0ecb9555b66 100644
--- a/googleapis/cloud/vision/v1p1beta1/text_annotation.pb.go
+++ b/googleapis/cloud/vision/v1p1beta1/text_annotation.pb.go
@@ -114,9 +114,9 @@ func (Block_BlockType) EnumDescriptor() ([]byte, []int) {
 // message definition below for more detail.
 type TextAnnotation struct {
 	// List of pages detected by OCR.
-	Pages []*Page `protobuf:"bytes,1,rep,name=pages" json:"pages,omitempty"`
+	Pages []*Page `protobuf:"bytes,1,rep,name=pages,proto3" json:"pages,omitempty"`
 	// UTF-8 text detected on the pages.
-	Text                 string   `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
+	Text                 string   `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -165,9 +165,9 @@ type TextAnnotation_DetectedLanguage struct {
 	// 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.
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Confidence of detected language. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -214,9 +214,9 @@ func (m *TextAnnotation_DetectedLanguage) GetConfidence() float32 {
 // Detected start or end of a structural component.
 type TextAnnotation_DetectedBreak struct {
 	// Detected break type.
-	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1p1beta1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
+	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
 	// True if break prepends the element.
-	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix" json:"is_prefix,omitempty"`
+	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix,proto3" json:"is_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -263,9 +263,9 @@ func (m *TextAnnotation_DetectedBreak) GetIsPrefix() bool {
 // Additional information detected on the structural component.
 type TextAnnotation_TextProperty struct {
 	// A list of detected languages together with confidence.
-	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages" json:"detected_languages,omitempty"`
+	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
 	// Detected start or end of a text segment.
-	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak" json:"detected_break,omitempty"`
+	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak,proto3" json:"detected_break,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -312,15 +312,15 @@ func (m *TextAnnotation_TextProperty) GetDetectedBreak() *TextAnnotation_Detecte
 // Detected page from OCR.
 type Page struct {
 	// Additional information detected on the page.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// Page width in pixels.
-	Width int32 `protobuf:"varint,2,opt,name=width" json:"width,omitempty"`
+	Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
 	// Page height in pixels.
-	Height int32 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
+	Height int32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
 	// List of blocks of text, images etc on this page.
-	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks" json:"blocks,omitempty"`
+	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
 	// Confidence of the OCR results on the page. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -388,7 +388,7 @@ func (m *Page) GetConfidence() float32 {
 // Logical element on the page.
 type Block struct {
 	// Additional information detected for the block.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -404,13 +404,13 @@ type Block struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of paragraphs in this block (if this blocks is of type text).
-	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs" json:"paragraphs,omitempty"`
+	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs,proto3" json:"paragraphs,omitempty"`
 	// Detected block type (text, image etc) for this block.
-	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,enum=google.cloud.vision.v1p1beta1.Block_BlockType" json:"block_type,omitempty"`
+	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,proto3,enum=google.cloud.vision.v1p1beta1.Block_BlockType" json:"block_type,omitempty"`
 	// Confidence of the OCR results on the block. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -478,7 +478,7 @@ func (m *Block) GetConfidence() float32 {
 // Structural unit of text representing a number of words in certain order.
 type Paragraph struct {
 	// Additional information detected for the paragraph.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -494,11 +494,11 @@ type Paragraph struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of words in this paragraph.
-	Words []*Word `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words []*Word `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	// Confidence of the OCR results for the paragraph. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -559,7 +559,7 @@ func (m *Paragraph) GetConfidence() float32 {
 // A word representation.
 type Word struct {
 	// Additional information detected for the word.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -575,12 +575,12 @@ type Word struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of symbols in the word.
 	// The order of the symbols follows the natural reading order.
-	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols" json:"symbols,omitempty"`
+	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols,proto3" json:"symbols,omitempty"`
 	// Confidence of the OCR results for the word. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -641,7 +641,7 @@ func (m *Word) GetConfidence() float32 {
 // A single symbol representation.
 type Symbol struct {
 	// Additional information detected for the symbol.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -657,11 +657,11 @@ type Symbol struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// The actual UTF-8 representation of the symbol.
-	Text string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
 	// Confidence of the OCR results for the symbol. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p1beta1/web_detection.pb.go b/googleapis/cloud/vision/v1p1beta1/web_detection.pb.go
index d17c77b458ba6a19318c86a67a3b1978568a36ae..faa8a7861335f2c69a08c130425d3d57716fd651 100644
--- a/googleapis/cloud/vision/v1p1beta1/web_detection.pb.go
+++ b/googleapis/cloud/vision/v1p1beta1/web_detection.pb.go
@@ -22,20 +22,20 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Relevant information for the image from the Internet.
 type WebDetection struct {
 	// Deduced entities from similar images on the Internet.
-	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities" json:"web_entities,omitempty"`
+	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities,proto3" json:"web_entities,omitempty"`
 	// Fully matching images from the Internet.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images from the Internet.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	// Web pages containing the matching images from the Internet.
-	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages" json:"pages_with_matching_images,omitempty"`
+	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages,proto3" json:"pages_with_matching_images,omitempty"`
 	// The visually similar image results.
-	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages" json:"visually_similar_images,omitempty"`
+	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages,proto3" json:"visually_similar_images,omitempty"`
 	// Best guess text labels for the request image.
-	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels" json:"best_guess_labels,omitempty"`
+	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels,proto3" json:"best_guess_labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -110,12 +110,12 @@ func (m *WebDetection) GetBestGuessLabels() []*WebDetection_WebLabel {
 // Entity deduced from similar images on the Internet.
 type WebDetection_WebEntity struct {
 	// Opaque entity ID.
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Overall relevancy score for the entity.
 	// Not normalized and not comparable across different image queries.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Canonical description of the entity, in English.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -169,9 +169,9 @@ func (m *WebDetection_WebEntity) GetDescription() string {
 // Metadata for online images.
 type WebDetection_WebImage struct {
 	// The result image URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the image.
-	Score                float32  `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -218,19 +218,19 @@ func (m *WebDetection_WebImage) GetScore() float32 {
 // Metadata for web pages.
 type WebDetection_WebPage struct {
 	// The result web page URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the web page.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Title for the web page, may contain HTML markups.
-	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle" json:"page_title,omitempty"`
+	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle,proto3" json:"page_title,omitempty"`
 	// Fully matching images on the page.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images on the page.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its
 	// crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}                 `json:"-"`
 	XXX_unrecognized      []byte                   `json:"-"`
 	XXX_sizecache         int32                    `json:"-"`
@@ -298,11 +298,11 @@ func (m *WebDetection_WebPage) GetPartialMatchingImages() []*WebDetection_WebIma
 // Label to provide extra metadata for the web detection.
 type WebDetection_WebLabel struct {
 	// Label for extra metadata.
-	Label string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"`
+	Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
 	// The BCP-47 language code for `label`, such as "en-US" or "sr-Latn".
 	// For more information, see
 	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p2beta1/geometry.pb.go b/googleapis/cloud/vision/v1p2beta1/geometry.pb.go
index 75d44ad3718f8042655535662c280841952ebcd8..6f31b29d9bd20ddb3bfba59c1366fdbd7a5e2e93 100644
--- a/googleapis/cloud/vision/v1p2beta1/geometry.pb.go
+++ b/googleapis/cloud/vision/v1p2beta1/geometry.pb.go
@@ -22,9 +22,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // NOTE: the vertex coordinates are in the same scale as the original image.
 type Vertex struct {
 	// X coordinate.
-	X int32 `protobuf:"varint,1,opt,name=x" json:"x,omitempty"`
+	X int32 `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y                    int32    `protobuf:"varint,2,opt,name=y" json:"y,omitempty"`
+	Y                    int32    `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -73,9 +73,9 @@ func (m *Vertex) GetY() int32 {
 // and range from 0 to 1.
 type NormalizedVertex struct {
 	// X coordinate.
-	X float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
+	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y                    float32  `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
+	Y                    float32  `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -122,9 +122,9 @@ func (m *NormalizedVertex) GetY() float32 {
 // A bounding polygon for the detected image annotation.
 type BoundingPoly struct {
 	// The bounding polygon vertices.
-	Vertices []*Vertex `protobuf:"bytes,1,rep,name=vertices" json:"vertices,omitempty"`
+	Vertices []*Vertex `protobuf:"bytes,1,rep,name=vertices,proto3" json:"vertices,omitempty"`
 	// The bounding polygon normalized vertices.
-	NormalizedVertices   []*NormalizedVertex `protobuf:"bytes,2,rep,name=normalized_vertices,json=normalizedVertices" json:"normalized_vertices,omitempty"`
+	NormalizedVertices   []*NormalizedVertex `protobuf:"bytes,2,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -173,11 +173,11 @@ func (m *BoundingPoly) GetNormalizedVertices() []*NormalizedVertex {
 // The position coordinates are in the same scale as the original image.
 type Position struct {
 	// X coordinate.
-	X float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
+	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
 	// Y coordinate.
-	Y float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
+	Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
 	// Z coordinate (or depth).
-	Z                    float32  `protobuf:"fixed32,3,opt,name=z" json:"z,omitempty"`
+	Z                    float32  `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p2beta1/image_annotator.pb.go b/googleapis/cloud/vision/v1p2beta1/image_annotator.pb.go
index 2d65e0c5e1e8e2b0da62cab63f6ede78356faa7e..7071eddc75363b7a3e0849b4c9d537e7800847cd 100644
--- a/googleapis/cloud/vision/v1p2beta1/image_annotator.pb.go
+++ b/googleapis/cloud/vision/v1p2beta1/image_annotator.pb.go
@@ -343,14 +343,14 @@ func (OperationMetadata_State) EnumDescriptor() ([]byte, []int) {
 // be specified in the `features` list.
 type Feature struct {
 	// The feature type.
-	Type Feature_Type `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1p2beta1.Feature_Type" json:"type,omitempty"`
+	Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p2beta1.Feature_Type" json:"type,omitempty"`
 	// Maximum number of results of this type. Does not apply to
 	// `TEXT_DETECTION`, `DOCUMENT_TEXT_DETECTION`, or `CROP_HINTS`.
-	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults" json:"max_results,omitempty"`
+	MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
 	// Model to use for the feature.
 	// Supported values: "builtin/stable" (the default if unset) and
 	// "builtin/latest".
-	Model                string   `protobuf:"bytes,3,opt,name=model" json:"model,omitempty"`
+	Model                string   `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,7 +409,7 @@ type ImageSource struct {
 	// `gs://bucket_name/object_name`. Object versioning is not supported. See
 	// [Google Cloud Storage Request
 	// URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
-	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri" json:"gcs_image_uri,omitempty"`
+	GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"`
 	// The URI of the source image. Can be either:
 	//
 	// 1. A Google Cloud Storage URI of the form
@@ -427,7 +427,7 @@ type ImageSource struct {
 	//
 	// When both `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
 	// precedence.
-	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri" json:"image_uri,omitempty"`
+	ImageUri             string   `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -480,7 +480,7 @@ type Image struct {
 	// Google Cloud Storage image location, or publicly-accessible image
 	// URL. If both `content` and `source` are provided for an image, `content`
 	// takes precedence and is used to perform the image annotation request.
-	Source               *ImageSource `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"`
+	Source               *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -533,45 +533,45 @@ type FaceAnnotation struct {
 	// Note that one or more x and/or y coordinates may not be generated in the
 	// `BoundingPoly` (the polygon will be unbounded) if only a partial face
 	// appears in the image to be annotated.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// The `fd_bounding_poly` bounding polygon is tighter than the
 	// `boundingPoly`, and encloses only the skin part of the face. Typically, it
 	// is used to eliminate the face from any image analysis that detects the
 	// "amount of skin" visible in an image. It is not based on the
 	// landmarker results, only on the initial face detection, hence
 	// the <code>fd</code> (face detection) prefix.
-	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly" json:"fd_bounding_poly,omitempty"`
+	FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"`
 	// Detected face landmarks.
-	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks" json:"landmarks,omitempty"`
+	Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"`
 	// 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].
-	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle" json:"roll_angle,omitempty"`
+	RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"`
 	// 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].
-	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle" json:"pan_angle,omitempty"`
+	PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"`
 	// Pitch angle, which indicates the upwards/downwards angle that the face is
 	// pointing relative to the image's horizontal plane. Range [-180,180].
-	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle" json:"tilt_angle,omitempty"`
+	TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"`
 	// Detection confidence. Range [0, 1].
-	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence" json:"detection_confidence,omitempty"`
+	DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"`
 	// Face landmarking confidence. Range [0, 1].
-	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence" json:"landmarking_confidence,omitempty"`
+	LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"`
 	// Joy likelihood.
-	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"joy_likelihood,omitempty"`
+	JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"joy_likelihood,omitempty"`
 	// Sorrow likelihood.
-	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
+	SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
 	// Anger likelihood.
-	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"anger_likelihood,omitempty"`
+	AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"anger_likelihood,omitempty"`
 	// Surprise likelihood.
-	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"surprise_likelihood,omitempty"`
+	SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"surprise_likelihood,omitempty"`
 	// Under-exposed likelihood.
-	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
+	UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
 	// Blurred likelihood.
-	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"blurred_likelihood,omitempty"`
+	BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"blurred_likelihood,omitempty"`
 	// Headwear likelihood.
-	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"headwear_likelihood,omitempty"`
+	HeadwearLikelihood   Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"headwear_likelihood,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -709,9 +709,9 @@ func (m *FaceAnnotation) GetHeadwearLikelihood() Likelihood {
 // A face-specific landmark (for example, a face feature).
 type FaceAnnotation_Landmark struct {
 	// Face landmark type.
-	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,enum=google.cloud.vision.v1p2beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
+	Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p2beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
 	// Face landmark position.
-	Position             *Position `protobuf:"bytes,4,opt,name=position" json:"position,omitempty"`
+	Position             *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -758,7 +758,7 @@ func (m *FaceAnnotation_Landmark) GetPosition() *Position {
 // Detected entity location information.
 type LocationInfo struct {
 	// lat/long location coordinates.
-	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng" json:"lat_lng,omitempty"`
+	LatLng               *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -798,11 +798,11 @@ func (m *LocationInfo) GetLatLng() *latlng.LatLng {
 // A `Property` consists of a user-supplied name/value pair.
 type Property struct {
 	// Name of the property.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Value of the property.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Value of numeric properties.
-	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value" json:"uint64_value,omitempty"`
+	Uint64Value          uint64   `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -858,38 +858,38 @@ type EntityAnnotation struct {
 	// Opaque entity ID. Some IDs may be available in
 	// [Google Knowledge Graph Search
 	// API](https://developers.google.com/knowledge-graph/).
-	Mid string `protobuf:"bytes,1,opt,name=mid" json:"mid,omitempty"`
+	Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
 	// The language code for the locale in which the entity textual
 	// `description` is expressed.
-	Locale string `protobuf:"bytes,2,opt,name=locale" json:"locale,omitempty"`
+	Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"`
 	// Entity textual description, expressed in its `locale` language.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Overall score of the result. Range [0, 1].
-	Score float32 `protobuf:"fixed32,4,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
 	// **Deprecated. Use `score` instead.**
 	// The accuracy of the entity detection in an image.
 	// For example, for an image in which the "Eiffel Tower" entity is detected,
 	// this field represents the confidence that there is a tower in the query
 	// image. Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// The relevancy of the ICA (Image Content Annotation) label to the
 	// image. For example, the relevancy of "tower" is likely higher to an image
 	// 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].
-	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality" json:"topicality,omitempty"`
+	Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"`
 	// Image region to which this entity belongs. Not produced
 	// for `LABEL_DETECTION` features.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// 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
 	// may indicate the location of the place where the image was taken.
 	// Location information is usually present for landmarks.
-	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations" json:"locations,omitempty"`
+	Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"`
 	// Some entities may have optional user-supplied `Property` (name/value)
 	// fields, such a score or string that qualifies the entity.
-	Properties           []*Property `protobuf:"bytes,9,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -989,20 +989,20 @@ type SafeSearchAnnotation struct {
 	// Represents the adult content likelihood for the image. Adult content may
 	// contain elements such as nudity, pornographic images or cartoons, or
 	// sexual activities.
-	Adult Likelihood `protobuf:"varint,1,opt,name=adult,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"adult,omitempty"`
+	Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"adult,omitempty"`
 	// Spoof likelihood. The likelihood that an modification
 	// was made to the image's canonical version to make it appear
 	// funny or offensive.
-	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"spoof,omitempty"`
+	Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"spoof,omitempty"`
 	// Likelihood that this is a medical image.
-	Medical Likelihood `protobuf:"varint,3,opt,name=medical,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"medical,omitempty"`
+	Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"medical,omitempty"`
 	// Likelihood that this image contains violent content.
-	Violence Likelihood `protobuf:"varint,4,opt,name=violence,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"violence,omitempty"`
+	Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"violence,omitempty"`
 	// Likelihood that the request image contains racy content. Racy content may
 	// include (but is not limited to) skimpy or sheer clothing, strategically
 	// covered nudity, lewd or provocative poses, or close-ups of sensitive
 	// body areas.
-	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"racy,omitempty"`
+	Racy                 Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p2beta1.Likelihood" json:"racy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1070,9 +1070,9 @@ func (m *SafeSearchAnnotation) GetRacy() Likelihood {
 // Rectangle determined by min and max `LatLng` pairs.
 type LatLongRect struct {
 	// Min lat/long pair.
-	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng" json:"min_lat_lng,omitempty"`
+	MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"`
 	// Max lat/long pair.
-	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng" json:"max_lat_lng,omitempty"`
+	MaxLatLng            *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1120,12 +1120,12 @@ func (m *LatLongRect) GetMaxLatLng() *latlng.LatLng {
 // the image that the color occupies in the image.
 type ColorInfo struct {
 	// RGB components of the color.
-	Color *color.Color `protobuf:"bytes,1,opt,name=color" json:"color,omitempty"`
+	Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
 	// Image-specific score for this color. Value in range [0, 1].
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// The fraction of pixels the color occupies in the image.
 	// Value in range [0, 1].
-	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction" json:"pixel_fraction,omitempty"`
+	PixelFraction        float32  `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1179,7 +1179,7 @@ func (m *ColorInfo) GetPixelFraction() float32 {
 // Set of dominant colors and their corresponding scores.
 type DominantColorsAnnotation struct {
 	// RGB color values with their score and pixel fraction.
-	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors" json:"colors,omitempty"`
+	Colors               []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1219,7 +1219,7 @@ func (m *DominantColorsAnnotation) GetColors() []*ColorInfo {
 // Stores image properties, such as dominant colors.
 type ImageProperties struct {
 	// If present, dominant colors completed successfully.
-	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors" json:"dominant_colors,omitempty"`
+	DominantColors       *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -1260,12 +1260,12 @@ func (m *ImageProperties) GetDominantColors() *DominantColorsAnnotation {
 type CropHint struct {
 	// The bounding polygon for the crop region. The coordinates of the bounding
 	// box are in the original image's scale, as returned in `ImageParams`.
-	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly" json:"bounding_poly,omitempty"`
+	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
 	// Confidence of this being a salient region.  Range [0, 1].
-	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	// Fraction of importance of this salient region with respect to the original
 	// image.
-	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction" json:"importance_fraction,omitempty"`
+	ImportanceFraction   float32  `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1319,7 +1319,7 @@ func (m *CropHint) GetImportanceFraction() float32 {
 // Set of crop hints that are used to generate new crops when serving images.
 type CropHintsAnnotation struct {
 	// Crop hint results.
-	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints" json:"crop_hints,omitempty"`
+	CropHints            []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1364,7 +1364,7 @@ type CropHintsParams struct {
 	// best possible crop is returned. The number of provided aspect ratios is
 	// limited to a maximum of 16; any aspect ratios provided after the 16th are
 	// ignored.
-	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios" json:"aspect_ratios,omitempty"`
+	AspectRatios         []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1404,7 +1404,7 @@ func (m *CropHintsParams) GetAspectRatios() []float32 {
 // Parameters for web detection request.
 type WebDetectionParams struct {
 	// Whether to include results derived from the geo information in the image.
-	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults" json:"include_geo_results,omitempty"`
+	IncludeGeoResults    bool     `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1444,7 +1444,7 @@ func (m *WebDetectionParams) GetIncludeGeoResults() bool {
 // Image context and/or feature-specific parameters.
 type ImageContext struct {
 	// Not used.
-	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect" json:"lat_long_rect,omitempty"`
+	LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"`
 	// List of languages to use for TEXT_DETECTION. In most cases, an empty value
 	// yields the best results since it enables automatic language detection. For
 	// languages based on the Latin alphabet, setting `language_hints` is not
@@ -1453,11 +1453,11 @@ type ImageContext struct {
 	// significant hindrance if the hint is wrong). Text detection returns an
 	// error if one or more of the specified languages is not one of the
 	// [supported languages](/vision/docs/languages).
-	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints" json:"language_hints,omitempty"`
+	LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"`
 	// Parameters for crop hints annotation request.
-	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams" json:"crop_hints_params,omitempty"`
+	CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"`
 	// Parameters for web detection.
-	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams" json:"web_detection_params,omitempty"`
+	WebDetectionParams   *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1519,11 +1519,11 @@ func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
 // image, with user-requested features.
 type AnnotateImageRequest struct {
 	// The image to be processed.
-	Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"`
+	Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
 	// Requested features.
-	Features []*Feature `protobuf:"bytes,2,rep,name=features" json:"features,omitempty"`
+	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
 	// Additional context that may accompany the image.
-	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext" json:"image_context,omitempty"`
+	ImageContext         *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1578,10 +1578,10 @@ func (m *AnnotateImageRequest) GetImageContext() *ImageContext {
 // information about the source of that image.
 type ImageAnnotationContext struct {
 	// The URI of the file used to produce the image.
-	Uri string `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	// If the file was a PDF or TIFF, this field gives the page number within
 	// the file used to produce the image.
-	PageNumber           int32    `protobuf:"varint,2,opt,name=page_number,json=pageNumber" json:"page_number,omitempty"`
+	PageNumber           int32    `protobuf:"varint,2,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1628,35 +1628,35 @@ func (m *ImageAnnotationContext) GetPageNumber() int32 {
 // Response to an image annotation request.
 type AnnotateImageResponse struct {
 	// If present, face detection has completed successfully.
-	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations" json:"face_annotations,omitempty"`
+	FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
 	// If present, landmark detection has completed successfully.
-	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations" json:"landmark_annotations,omitempty"`
+	LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"`
 	// If present, logo detection has completed successfully.
-	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations" json:"logo_annotations,omitempty"`
+	LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"`
 	// If present, label detection has completed successfully.
-	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations" json:"label_annotations,omitempty"`
+	LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
 	// If present, text (OCR) detection has completed successfully.
-	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations" json:"text_annotations,omitempty"`
+	TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"`
 	// If present, text (OCR) detection or document (OCR) text detection has
 	// completed successfully.
 	// This annotation provides the structural hierarchy for the OCR detected
 	// text.
-	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation" json:"full_text_annotation,omitempty"`
+	FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"`
 	// If present, safe-search annotation has completed successfully.
-	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation" json:"safe_search_annotation,omitempty"`
+	SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"`
 	// If present, image properties were extracted successfully.
-	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation" json:"image_properties_annotation,omitempty"`
+	ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"`
 	// If present, crop hints have completed successfully.
-	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation" json:"crop_hints_annotation,omitempty"`
+	CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"`
 	// If present, web detection has completed successfully.
-	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection" json:"web_detection,omitempty"`
+	WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"`
 	// 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.
-	Error *status.Status `protobuf:"bytes,9,opt,name=error" json:"error,omitempty"`
+	Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
 	// If present, contextual information is needed to understand where this image
 	// comes from.
-	Context              *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context" json:"context,omitempty"`
+	Context              *ImageAnnotationContext `protobuf:"bytes,21,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -1774,9 +1774,9 @@ func (m *AnnotateImageResponse) GetContext() *ImageAnnotationContext {
 // images, which individually have their own responses.
 type AnnotateFileResponse struct {
 	// Information about the file for which this response is generated.
-	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig" json:"input_config,omitempty"`
+	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
 	// Individual responses to images found within the file.
-	Responses            []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AnnotateImageResponse `protobuf:"bytes,2,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -1823,7 +1823,7 @@ func (m *AnnotateFileResponse) GetResponses() []*AnnotateImageResponse {
 // Multiple image annotation requests are batched into a single service call.
 type BatchAnnotateImagesRequest struct {
 	// Individual image annotation requests for this batch.
-	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -1863,7 +1863,7 @@ func (m *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest {
 // Response to a batch image annotation request.
 type BatchAnnotateImagesResponse struct {
 	// Individual responses to image annotation requests within the batch.
-	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -1903,13 +1903,13 @@ func (m *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse {
 // An offline file annotation request.
 type AsyncAnnotateFileRequest struct {
 	// Required. Information about the input file.
-	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig" json:"input_config,omitempty"`
+	InputConfig *InputConfig `protobuf:"bytes,1,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
 	// Required. Requested features.
-	Features []*Feature `protobuf:"bytes,2,rep,name=features" json:"features,omitempty"`
+	Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
 	// Additional context that may accompany the image(s) in the file.
-	ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext" json:"image_context,omitempty"`
+	ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
 	// Required. The desired output location and metadata (e.g. format).
-	OutputConfig         *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
+	OutputConfig         *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1970,7 +1970,7 @@ func (m *AsyncAnnotateFileRequest) GetOutputConfig() *OutputConfig {
 // The response for a single offline file annotation request.
 type AsyncAnnotateFileResponse struct {
 	// The output location and metadata from AsyncAnnotateFileRequest.
-	OutputConfig         *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
+	OutputConfig         *OutputConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -2011,7 +2011,7 @@ func (m *AsyncAnnotateFileResponse) GetOutputConfig() *OutputConfig {
 // call.
 type AsyncBatchAnnotateFilesRequest struct {
 	// Individual async file annotation requests for this batch.
-	Requests             []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*AsyncAnnotateFileRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -2052,7 +2052,7 @@ func (m *AsyncBatchAnnotateFilesRequest) GetRequests() []*AsyncAnnotateFileReque
 type AsyncBatchAnnotateFilesResponse struct {
 	// The list of file annotation responses, one for each request in
 	// AsyncBatchAnnotateFilesRequest.
-	Responses            []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*AsyncAnnotateFileResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -2092,10 +2092,10 @@ func (m *AsyncBatchAnnotateFilesResponse) GetResponses() []*AsyncAnnotateFileRes
 // The desired input location and metadata.
 type InputConfig struct {
 	// The Google Cloud Storage location to read the input from.
-	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource" json:"gcs_source,omitempty"`
+	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3" json:"gcs_source,omitempty"`
 	// The type of the file. Currently only "application/pdf" and "image/tiff"
 	// are supported. Wildcards are not supported.
-	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2142,7 +2142,7 @@ func (m *InputConfig) GetMimeType() string {
 // The desired output location and metadata.
 type OutputConfig struct {
 	// The Google Cloud Storage location to write the output(s) to.
-	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination" json:"gcs_destination,omitempty"`
+	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3" json:"gcs_destination,omitempty"`
 	// The max number of response protos to put into each output JSON file on GCS.
 	// The valid range is [1, 100]. If not specified, the default value is 20.
 	//
@@ -2153,7 +2153,7 @@ type OutputConfig struct {
 	//
 	// Currently, batch_size only applies to GcsDestination, with potential future
 	// support for other output configurations.
-	BatchSize            int32    `protobuf:"varint,2,opt,name=batch_size,json=batchSize" json:"batch_size,omitempty"`
+	BatchSize            int32    `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2201,7 +2201,7 @@ func (m *OutputConfig) GetBatchSize() int32 {
 type GcsSource struct {
 	// Google Cloud Storage URI for the input file. This must only be a GCS
 	// object. Wildcards are not currently supported.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2255,7 +2255,7 @@ type GcsDestination struct {
 	// which contains some subset of the full list of AnnotateImageResponse.
 	// Multiple outputs can happen if, for example, the output JSON is too large
 	// and overflows into multiple sharded files.
-	Uri                  string   `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"`
+	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2295,11 +2295,11 @@ func (m *GcsDestination) GetUri() string {
 // Contains metadata for the BatchAnnotateImages operation.
 type OperationMetadata struct {
 	// Current state of the batch operation.
-	State OperationMetadata_State `protobuf:"varint,1,opt,name=state,enum=google.cloud.vision.v1p2beta1.OperationMetadata_State" json:"state,omitempty"`
+	State OperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1p2beta1.OperationMetadata_State" json:"state,omitempty"`
 	// The time when the batch request was received.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time when the operation result was last updated.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -2439,8 +2439,7 @@ func (c *imageAnnotatorClient) AsyncBatchAnnotateFiles(ctx context.Context, in *
 	return out, nil
 }
 
-// Server API for ImageAnnotator service
-
+// ImageAnnotatorServer is the server API for ImageAnnotator service.
 type ImageAnnotatorServer interface {
 	// Run image detection and annotation for a batch of images.
 	BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error)
diff --git a/googleapis/cloud/vision/v1p2beta1/text_annotation.pb.go b/googleapis/cloud/vision/v1p2beta1/text_annotation.pb.go
index 2e3e9d872db8f6ee9aa033163f490097fce26c61..0475576e5076c93077b66d02dc42106766662373 100644
--- a/googleapis/cloud/vision/v1p2beta1/text_annotation.pb.go
+++ b/googleapis/cloud/vision/v1p2beta1/text_annotation.pb.go
@@ -113,9 +113,9 @@ func (Block_BlockType) EnumDescriptor() ([]byte, []int) {
 // detail.
 type TextAnnotation struct {
 	// List of pages detected by OCR.
-	Pages []*Page `protobuf:"bytes,1,rep,name=pages" json:"pages,omitempty"`
+	Pages []*Page `protobuf:"bytes,1,rep,name=pages,proto3" json:"pages,omitempty"`
 	// UTF-8 text detected on the pages.
-	Text                 string   `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
+	Text                 string   `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -164,9 +164,9 @@ type TextAnnotation_DetectedLanguage struct {
 	// 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.
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Confidence of detected language. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -213,9 +213,9 @@ func (m *TextAnnotation_DetectedLanguage) GetConfidence() float32 {
 // Detected start or end of a structural component.
 type TextAnnotation_DetectedBreak struct {
 	// Detected break type.
-	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1p2beta1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
+	Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p2beta1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
 	// True if break prepends the element.
-	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix" json:"is_prefix,omitempty"`
+	IsPrefix             bool     `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix,proto3" json:"is_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,9 +262,9 @@ func (m *TextAnnotation_DetectedBreak) GetIsPrefix() bool {
 // Additional information detected on the structural component.
 type TextAnnotation_TextProperty struct {
 	// A list of detected languages together with confidence.
-	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages" json:"detected_languages,omitempty"`
+	DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
 	// Detected start or end of a text segment.
-	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak" json:"detected_break,omitempty"`
+	DetectedBreak        *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak,proto3" json:"detected_break,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -311,17 +311,17 @@ func (m *TextAnnotation_TextProperty) GetDetectedBreak() *TextAnnotation_Detecte
 // Detected page from OCR.
 type Page struct {
 	// Additional information detected on the page.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// Page width. For PDFs the unit is points. For images (including
 	// TIFFs) the unit is pixels.
-	Width int32 `protobuf:"varint,2,opt,name=width" json:"width,omitempty"`
+	Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
 	// Page height. For PDFs the unit is points. For images (including
 	// TIFFs) the unit is pixels.
-	Height int32 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
+	Height int32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
 	// List of blocks of text, images etc on this page.
-	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks" json:"blocks,omitempty"`
+	Blocks []*Block `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
 	// Confidence of the OCR results on the page. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -389,7 +389,7 @@ func (m *Page) GetConfidence() float32 {
 // Logical element on the page.
 type Block struct {
 	// Additional information detected for the block.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -410,13 +410,13 @@ type Block struct {
 	//         1----0
 	//
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of paragraphs in this block (if this blocks is of type text).
-	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs" json:"paragraphs,omitempty"`
+	Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs,proto3" json:"paragraphs,omitempty"`
 	// Detected block type (text, image etc) for this block.
-	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,enum=google.cloud.vision.v1p2beta1.Block_BlockType" json:"block_type,omitempty"`
+	BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,proto3,enum=google.cloud.vision.v1p2beta1.Block_BlockType" json:"block_type,omitempty"`
 	// Confidence of the OCR results on the block. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -484,7 +484,7 @@ func (m *Block) GetConfidence() float32 {
 // Structural unit of text representing a number of words in certain order.
 type Paragraph struct {
 	// Additional information detected for the paragraph.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -500,11 +500,11 @@ type Paragraph struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of words in this paragraph.
-	Words []*Word `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
+	Words []*Word `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
 	// Confidence of the OCR results for the paragraph. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -565,7 +565,7 @@ func (m *Paragraph) GetConfidence() float32 {
 // A word representation.
 type Word struct {
 	// Additional information detected for the word.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -581,12 +581,12 @@ type Word struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// List of symbols in the word.
 	// The order of the symbols follows the natural reading order.
-	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols" json:"symbols,omitempty"`
+	Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols,proto3" json:"symbols,omitempty"`
 	// Confidence of the OCR results for the word. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -647,7 +647,7 @@ func (m *Word) GetConfidence() float32 {
 // A single symbol representation.
 type Symbol struct {
 	// Additional information detected for the symbol.
-	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// 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
@@ -663,11 +663,11 @@ type Symbol struct {
 	//      |    |
 	//      1----0
 	//   and the vertice order will still be (0, 1, 2, 3).
-	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
+	BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
 	// The actual UTF-8 representation of the symbol.
-	Text string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
+	Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
 	// Confidence of the OCR results for the symbol. Range [0, 1].
-	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence" json:"confidence,omitempty"`
+	Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/vision/v1p2beta1/web_detection.pb.go b/googleapis/cloud/vision/v1p2beta1/web_detection.pb.go
index bc00971cd9471cbed1990ce8a419da006cbf4bc3..d5bf295f7a542d8ce41540fbe5b07fe80f2b9817 100644
--- a/googleapis/cloud/vision/v1p2beta1/web_detection.pb.go
+++ b/googleapis/cloud/vision/v1p2beta1/web_detection.pb.go
@@ -22,20 +22,20 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Relevant information for the image from the Internet.
 type WebDetection struct {
 	// Deduced entities from similar images on the Internet.
-	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities" json:"web_entities,omitempty"`
+	WebEntities []*WebDetection_WebEntity `protobuf:"bytes,1,rep,name=web_entities,json=webEntities,proto3" json:"web_entities,omitempty"`
 	// Fully matching images from the Internet.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,2,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images from the Internet.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,3,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	// Web pages containing the matching images from the Internet.
-	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages" json:"pages_with_matching_images,omitempty"`
+	PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages,proto3" json:"pages_with_matching_images,omitempty"`
 	// The visually similar image results.
-	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages" json:"visually_similar_images,omitempty"`
+	VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages,proto3" json:"visually_similar_images,omitempty"`
 	// Best guess text labels for the request image.
-	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels" json:"best_guess_labels,omitempty"`
+	BestGuessLabels      []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels,proto3" json:"best_guess_labels,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -110,12 +110,12 @@ func (m *WebDetection) GetBestGuessLabels() []*WebDetection_WebLabel {
 // Entity deduced from similar images on the Internet.
 type WebDetection_WebEntity struct {
 	// Opaque entity ID.
-	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	// Overall relevancy score for the entity.
 	// Not normalized and not comparable across different image queries.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Canonical description of the entity, in English.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -169,9 +169,9 @@ func (m *WebDetection_WebEntity) GetDescription() string {
 // Metadata for online images.
 type WebDetection_WebImage struct {
 	// The result image URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the image.
-	Score                float32  `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score                float32  `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -218,19 +218,19 @@ func (m *WebDetection_WebImage) GetScore() float32 {
 // Metadata for web pages.
 type WebDetection_WebPage struct {
 	// The result web page URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// (Deprecated) Overall relevancy score for the web page.
-	Score float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"`
+	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
 	// Title for the web page, may contain HTML markups.
-	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle" json:"page_title,omitempty"`
+	PageTitle string `protobuf:"bytes,3,opt,name=page_title,json=pageTitle,proto3" json:"page_title,omitempty"`
 	// Fully matching images on the page.
 	// Can include resized copies of the query image.
-	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages" json:"full_matching_images,omitempty"`
+	FullMatchingImages []*WebDetection_WebImage `protobuf:"bytes,4,rep,name=full_matching_images,json=fullMatchingImages,proto3" json:"full_matching_images,omitempty"`
 	// Partial matching images on the page.
 	// Those images are similar enough to share some key-point features. For
 	// example an original image will likely have partial matching for its
 	// crops.
-	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages" json:"partial_matching_images,omitempty"`
+	PartialMatchingImages []*WebDetection_WebImage `protobuf:"bytes,5,rep,name=partial_matching_images,json=partialMatchingImages,proto3" json:"partial_matching_images,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{}                 `json:"-"`
 	XXX_unrecognized      []byte                   `json:"-"`
 	XXX_sizecache         int32                    `json:"-"`
@@ -298,11 +298,11 @@ func (m *WebDetection_WebPage) GetPartialMatchingImages() []*WebDetection_WebIma
 // Label to provide extra metadata for the web detection.
 type WebDetection_WebLabel struct {
 	// Label for extra metadata.
-	Label string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"`
+	Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
 	// The BCP-47 language code for `label`, such as "en-US" or "sr-Latn".
 	// For more information, see
 	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode         string   `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/crawled_url.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/crawled_url.pb.go
index 91588924c901541f300e9a9b58662b91bebe22db..7d8e495c43523d2f78ac316f7c313c957ac0f273 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/crawled_url.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/crawled_url.pb.go
@@ -26,13 +26,13 @@ type CrawledUrl struct {
 	// Output only.
 	// The http method of the request that was used to visit the URL, in
 	// uppercase.
-	HttpMethod string `protobuf:"bytes,1,opt,name=http_method,json=httpMethod" json:"http_method,omitempty"`
+	HttpMethod string `protobuf:"bytes,1,opt,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"`
 	// Output only.
 	// The URL that was crawled.
-	Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
 	// Output only.
 	// The body of the request that was used to visit the URL.
-	Body                 string   `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"`
+	Body                 string   `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/finding.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/finding.pb.go
index 1929d030f3244ac281b33da123b25e237561d27a..47b53a745f17f82e5d7dbb61f8f9278aa7788375 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/finding.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/finding.pb.go
@@ -94,53 +94,53 @@ type Finding struct {
 	// The resource name of the Finding. The name follows the format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanruns/{scanRunId}/findings/{findingId}'.
 	// The finding IDs are generated by the system.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Output only.
 	// The type of the Finding.
-	FindingType Finding_FindingType `protobuf:"varint,2,opt,name=finding_type,json=findingType,enum=google.cloud.websecurityscanner.v1alpha.Finding_FindingType" json:"finding_type,omitempty"`
+	FindingType Finding_FindingType `protobuf:"varint,2,opt,name=finding_type,json=findingType,proto3,enum=google.cloud.websecurityscanner.v1alpha.Finding_FindingType" json:"finding_type,omitempty"`
 	// Output only.
 	// The http method of the request that triggered the vulnerability, in
 	// uppercase.
-	HttpMethod string `protobuf:"bytes,3,opt,name=http_method,json=httpMethod" json:"http_method,omitempty"`
+	HttpMethod string `protobuf:"bytes,3,opt,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"`
 	// Output only.
 	// The URL produced by the server-side fuzzer and used in the request that
 	// triggered the vulnerability.
-	FuzzedUrl string `protobuf:"bytes,4,opt,name=fuzzed_url,json=fuzzedUrl" json:"fuzzed_url,omitempty"`
+	FuzzedUrl string `protobuf:"bytes,4,opt,name=fuzzed_url,json=fuzzedUrl,proto3" json:"fuzzed_url,omitempty"`
 	// Output only.
 	// The body of the request that triggered the vulnerability.
-	Body string `protobuf:"bytes,5,opt,name=body" json:"body,omitempty"`
+	Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
 	// Output only.
 	// The description of the vulnerability.
-	Description string `protobuf:"bytes,6,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
 	// Output only.
 	// The URL containing human-readable payload that user can leverage to
 	// reproduce the vulnerability.
-	ReproductionUrl string `protobuf:"bytes,7,opt,name=reproduction_url,json=reproductionUrl" json:"reproduction_url,omitempty"`
+	ReproductionUrl string `protobuf:"bytes,7,opt,name=reproduction_url,json=reproductionUrl,proto3" json:"reproduction_url,omitempty"`
 	// Output only.
 	// If the vulnerability was originated from nested IFrame, the immediate
 	// parent IFrame is reported.
-	FrameUrl string `protobuf:"bytes,8,opt,name=frame_url,json=frameUrl" json:"frame_url,omitempty"`
+	FrameUrl string `protobuf:"bytes,8,opt,name=frame_url,json=frameUrl,proto3" json:"frame_url,omitempty"`
 	// Output only.
 	// The URL where the browser lands when the vulnerability is detected.
-	FinalUrl string `protobuf:"bytes,9,opt,name=final_url,json=finalUrl" json:"final_url,omitempty"`
+	FinalUrl string `protobuf:"bytes,9,opt,name=final_url,json=finalUrl,proto3" json:"final_url,omitempty"`
 	// Output only.
 	// The tracking ID uniquely identifies a vulnerability instance across
 	// multiple ScanRuns.
-	TrackingId string `protobuf:"bytes,10,opt,name=tracking_id,json=trackingId" json:"tracking_id,omitempty"`
+	TrackingId string `protobuf:"bytes,10,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"`
 	// Output only.
 	// An addon containing information about outdated libraries.
-	OutdatedLibrary *OutdatedLibrary `protobuf:"bytes,11,opt,name=outdated_library,json=outdatedLibrary" json:"outdated_library,omitempty"`
+	OutdatedLibrary *OutdatedLibrary `protobuf:"bytes,11,opt,name=outdated_library,json=outdatedLibrary,proto3" json:"outdated_library,omitempty"`
 	// Output only.
 	// An addon containing detailed information regarding any resource causing the
 	// vulnerability such as JavaScript sources, image, audio files, etc.
-	ViolatingResource *ViolatingResource `protobuf:"bytes,12,opt,name=violating_resource,json=violatingResource" json:"violating_resource,omitempty"`
+	ViolatingResource *ViolatingResource `protobuf:"bytes,12,opt,name=violating_resource,json=violatingResource,proto3" json:"violating_resource,omitempty"`
 	// Output only.
 	// An addon containing information about request parameters which were found
 	// to be vulnerable.
-	VulnerableParameters *VulnerableParameters `protobuf:"bytes,13,opt,name=vulnerable_parameters,json=vulnerableParameters" json:"vulnerable_parameters,omitempty"`
+	VulnerableParameters *VulnerableParameters `protobuf:"bytes,13,opt,name=vulnerable_parameters,json=vulnerableParameters,proto3" json:"vulnerable_parameters,omitempty"`
 	// Output only.
 	// An addon containing information reported for an XSS, if any.
-	Xss                  *Xss     `protobuf:"bytes,14,opt,name=xss" json:"xss,omitempty"`
+	Xss                  *Xss     `protobuf:"bytes,14,opt,name=xss,proto3" json:"xss,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/finding_addon.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/finding_addon.pb.go
index 5fff24a2a476d85cba113d56306ff22d309a4efa..4f8c883e048ea19156315a5eb60fb137db2cb83b 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/finding_addon.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/finding_addon.pb.go
@@ -22,11 +22,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Information reported for an outdated library.
 type OutdatedLibrary struct {
 	// The name of the outdated library.
-	LibraryName string `protobuf:"bytes,1,opt,name=library_name,json=libraryName" json:"library_name,omitempty"`
+	LibraryName string `protobuf:"bytes,1,opt,name=library_name,json=libraryName,proto3" json:"library_name,omitempty"`
 	// The version number.
-	Version string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	// URLs to learn more information about the vulnerabilities in the library.
-	LearnMoreUrls        []string `protobuf:"bytes,3,rep,name=learn_more_urls,json=learnMoreUrls" json:"learn_more_urls,omitempty"`
+	LearnMoreUrls        []string `protobuf:"bytes,3,rep,name=learn_more_urls,json=learnMoreUrls,proto3" json:"learn_more_urls,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -81,9 +81,9 @@ func (m *OutdatedLibrary) GetLearnMoreUrls() []string {
 // as JavaScript sources, image, audio files, etc.
 type ViolatingResource struct {
 	// The MIME type of this resource.
-	ContentType string `protobuf:"bytes,1,opt,name=content_type,json=contentType" json:"content_type,omitempty"`
+	ContentType string `protobuf:"bytes,1,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
 	// URL of this violating resource.
-	ResourceUrl          string   `protobuf:"bytes,2,opt,name=resource_url,json=resourceUrl" json:"resource_url,omitempty"`
+	ResourceUrl          string   `protobuf:"bytes,2,opt,name=resource_url,json=resourceUrl,proto3" json:"resource_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -130,7 +130,7 @@ func (m *ViolatingResource) GetResourceUrl() string {
 // Information about vulnerable request parameters.
 type VulnerableParameters struct {
 	// The vulnerable parameter names.
-	ParameterNames       []string `protobuf:"bytes,1,rep,name=parameter_names,json=parameterNames" json:"parameter_names,omitempty"`
+	ParameterNames       []string `protobuf:"bytes,1,rep,name=parameter_names,json=parameterNames,proto3" json:"parameter_names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -170,9 +170,9 @@ func (m *VulnerableParameters) GetParameterNames() []string {
 // Information reported for an XSS.
 type Xss struct {
 	// Stack traces leading to the point where the XSS occurred.
-	StackTraces []string `protobuf:"bytes,1,rep,name=stack_traces,json=stackTraces" json:"stack_traces,omitempty"`
+	StackTraces []string `protobuf:"bytes,1,rep,name=stack_traces,json=stackTraces,proto3" json:"stack_traces,omitempty"`
 	// An error message generated by a javascript breakage.
-	ErrorMessage         string   `protobuf:"bytes,2,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
+	ErrorMessage         string   `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/finding_type_stats.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/finding_type_stats.pb.go
index b9965e9a048e842bfbbc408cc4478f5331d6301b..5a5c81f3d7e1b3f63b3022b2224aca47c31fdd38 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/finding_type_stats.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/finding_type_stats.pb.go
@@ -24,10 +24,10 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type FindingTypeStats struct {
 	// Output only.
 	// The finding type associated with the stats.
-	FindingType Finding_FindingType `protobuf:"varint,1,opt,name=finding_type,json=findingType,enum=google.cloud.websecurityscanner.v1alpha.Finding_FindingType" json:"finding_type,omitempty"`
+	FindingType Finding_FindingType `protobuf:"varint,1,opt,name=finding_type,json=findingType,proto3,enum=google.cloud.websecurityscanner.v1alpha.Finding_FindingType" json:"finding_type,omitempty"`
 	// Output only.
 	// The count of findings belonging to this finding type.
-	FindingCount         int32    `protobuf:"varint,2,opt,name=finding_count,json=findingCount" json:"finding_count,omitempty"`
+	FindingCount         int32    `protobuf:"varint,2,opt,name=finding_count,json=findingCount,proto3" json:"finding_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/scan_config.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/scan_config.pb.go
index 6c9af0d58660d854e53be59f019e6fda47448d85..cc1eece0f3128b6c3f4a9b73940253f721fa7fbc 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/scan_config.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/scan_config.pb.go
@@ -90,31 +90,31 @@ type ScanConfig struct {
 	// The resource name of the ScanConfig. The name follows the format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}'. The ScanConfig IDs are
 	// generated by the system.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required.
 	// The user provided display name of the ScanConfig.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The maximum QPS during scanning. A valid value ranges from 5 to 20
 	// inclusively. If the field is unspecified or its value is set 0, server will
 	// default to 15. Other values outside of [5, 20] range will be rejected with
 	// INVALID_ARGUMENT error.
-	MaxQps int32 `protobuf:"varint,3,opt,name=max_qps,json=maxQps" json:"max_qps,omitempty"`
+	MaxQps int32 `protobuf:"varint,3,opt,name=max_qps,json=maxQps,proto3" json:"max_qps,omitempty"`
 	// Required.
 	// The starting URLs from which the scanner finds site pages.
-	StartingUrls []string `protobuf:"bytes,4,rep,name=starting_urls,json=startingUrls" json:"starting_urls,omitempty"`
+	StartingUrls []string `protobuf:"bytes,4,rep,name=starting_urls,json=startingUrls,proto3" json:"starting_urls,omitempty"`
 	// The authentication configuration. If specified, service will use the
 	// authentication configuration during scanning.
-	Authentication *ScanConfig_Authentication `protobuf:"bytes,5,opt,name=authentication" json:"authentication,omitempty"`
+	Authentication *ScanConfig_Authentication `protobuf:"bytes,5,opt,name=authentication,proto3" json:"authentication,omitempty"`
 	// The user agent used during scanning.
-	UserAgent ScanConfig_UserAgent `protobuf:"varint,6,opt,name=user_agent,json=userAgent,enum=google.cloud.websecurityscanner.v1alpha.ScanConfig_UserAgent" json:"user_agent,omitempty"`
+	UserAgent ScanConfig_UserAgent `protobuf:"varint,6,opt,name=user_agent,json=userAgent,proto3,enum=google.cloud.websecurityscanner.v1alpha.ScanConfig_UserAgent" json:"user_agent,omitempty"`
 	// The blacklist URL patterns as described in
 	// https://cloud.google.com/security-scanner/docs/excluded-urls
-	BlacklistPatterns []string `protobuf:"bytes,7,rep,name=blacklist_patterns,json=blacklistPatterns" json:"blacklist_patterns,omitempty"`
+	BlacklistPatterns []string `protobuf:"bytes,7,rep,name=blacklist_patterns,json=blacklistPatterns,proto3" json:"blacklist_patterns,omitempty"`
 	// The schedule of the ScanConfig.
-	Schedule *ScanConfig_Schedule `protobuf:"bytes,8,opt,name=schedule" json:"schedule,omitempty"`
+	Schedule *ScanConfig_Schedule `protobuf:"bytes,8,opt,name=schedule,proto3" json:"schedule,omitempty"`
 	// Set of Cloud Platforms targeted by the scan. If empty, APP_ENGINE will be
 	// used as a default.
-	TargetPlatforms      []ScanConfig_TargetPlatform `protobuf:"varint,9,rep,packed,name=target_platforms,json=targetPlatforms,enum=google.cloud.websecurityscanner.v1alpha.ScanConfig_TargetPlatform" json:"target_platforms,omitempty"`
+	TargetPlatforms      []ScanConfig_TargetPlatform `protobuf:"varint,9,rep,packed,name=target_platforms,json=targetPlatforms,proto3,enum=google.cloud.websecurityscanner.v1alpha.ScanConfig_TargetPlatform" json:"target_platforms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -250,10 +250,10 @@ type isScanConfig_Authentication_Authentication interface {
 }
 
 type ScanConfig_Authentication_GoogleAccount_ struct {
-	GoogleAccount *ScanConfig_Authentication_GoogleAccount `protobuf:"bytes,1,opt,name=google_account,json=googleAccount,oneof"`
+	GoogleAccount *ScanConfig_Authentication_GoogleAccount `protobuf:"bytes,1,opt,name=google_account,json=googleAccount,proto3,oneof"`
 }
 type ScanConfig_Authentication_CustomAccount_ struct {
-	CustomAccount *ScanConfig_Authentication_CustomAccount `protobuf:"bytes,2,opt,name=custom_account,json=customAccount,oneof"`
+	CustomAccount *ScanConfig_Authentication_CustomAccount `protobuf:"bytes,2,opt,name=custom_account,json=customAccount,proto3,oneof"`
 }
 
 func (*ScanConfig_Authentication_GoogleAccount_) isScanConfig_Authentication_Authentication() {}
@@ -358,12 +358,12 @@ func _ScanConfig_Authentication_OneofSizer(msg proto.Message) (n int) {
 type ScanConfig_Authentication_GoogleAccount struct {
 	// Required.
 	// The user name of the Google account.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// Input only.
 	// Required.
 	// The password of the Google account. The credential is stored encrypted
 	// and not returned in any response.
-	Password             string   `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password             string   `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -413,15 +413,15 @@ func (m *ScanConfig_Authentication_GoogleAccount) GetPassword() string {
 type ScanConfig_Authentication_CustomAccount struct {
 	// Required.
 	// The user name of the custom account.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// Input only.
 	// Required.
 	// The password of the custom account. The credential is stored encrypted
 	// and not returned in any response.
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	// Required.
 	// The login form URL of the website.
-	LoginUrl             string   `protobuf:"bytes,3,opt,name=login_url,json=loginUrl" json:"login_url,omitempty"`
+	LoginUrl             string   `protobuf:"bytes,3,opt,name=login_url,json=loginUrl,proto3" json:"login_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -480,10 +480,10 @@ type ScanConfig_Schedule struct {
 	// refreshed by the server after each run. If unspecified, it will default
 	// to current server time, which means the scan will be scheduled to start
 	// immediately.
-	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=schedule_time,json=scheduleTime" json:"schedule_time,omitempty"`
+	ScheduleTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=schedule_time,json=scheduleTime,proto3" json:"schedule_time,omitempty"`
 	// Required.
 	// The duration of time between executions in days.
-	IntervalDurationDays int32    `protobuf:"varint,2,opt,name=interval_duration_days,json=intervalDurationDays" json:"interval_duration_days,omitempty"`
+	IntervalDurationDays int32    `protobuf:"varint,2,opt,name=interval_duration_days,json=intervalDurationDays,proto3" json:"interval_duration_days,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/scan_run.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/scan_run.pb.go
index 2f77de68f7b92084161ee24d88c0872914e9618f..323002594b6cbed9699ded495aafee55db36b617 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/scan_run.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/scan_run.pb.go
@@ -96,40 +96,40 @@ type ScanRun struct {
 	// The resource name of the ScanRun. The name follows the format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
 	// The ScanRun IDs are generated by the system.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Output only.
 	// The execution state of the ScanRun.
-	ExecutionState ScanRun_ExecutionState `protobuf:"varint,2,opt,name=execution_state,json=executionState,enum=google.cloud.websecurityscanner.v1alpha.ScanRun_ExecutionState" json:"execution_state,omitempty"`
+	ExecutionState ScanRun_ExecutionState `protobuf:"varint,2,opt,name=execution_state,json=executionState,proto3,enum=google.cloud.websecurityscanner.v1alpha.ScanRun_ExecutionState" json:"execution_state,omitempty"`
 	// Output only.
 	// The result state of the ScanRun. This field is only available after the
 	// execution state reaches "FINISHED".
-	ResultState ScanRun_ResultState `protobuf:"varint,3,opt,name=result_state,json=resultState,enum=google.cloud.websecurityscanner.v1alpha.ScanRun_ResultState" json:"result_state,omitempty"`
+	ResultState ScanRun_ResultState `protobuf:"varint,3,opt,name=result_state,json=resultState,proto3,enum=google.cloud.websecurityscanner.v1alpha.ScanRun_ResultState" json:"result_state,omitempty"`
 	// Output only.
 	// The time at which the ScanRun started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Output only.
 	// The time at which the ScanRun reached termination state - that the ScanRun
 	// is either finished or stopped by user.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Output only.
 	// The number of URLs crawled during this ScanRun. If the scan is in progress,
 	// the value represents the number of URLs crawled up to now.
-	UrlsCrawledCount int64 `protobuf:"varint,6,opt,name=urls_crawled_count,json=urlsCrawledCount" json:"urls_crawled_count,omitempty"`
+	UrlsCrawledCount int64 `protobuf:"varint,6,opt,name=urls_crawled_count,json=urlsCrawledCount,proto3" json:"urls_crawled_count,omitempty"`
 	// Output only.
 	// The number of URLs tested during this ScanRun. If the scan is in progress,
 	// the value represents the number of URLs tested up to now. The number of
 	// URLs tested is usually larger than the number URLS crawled because
 	// typically a crawled URL is tested with multiple test payloads.
-	UrlsTestedCount int64 `protobuf:"varint,7,opt,name=urls_tested_count,json=urlsTestedCount" json:"urls_tested_count,omitempty"`
+	UrlsTestedCount int64 `protobuf:"varint,7,opt,name=urls_tested_count,json=urlsTestedCount,proto3" json:"urls_tested_count,omitempty"`
 	// Output only.
 	// Whether the scan run has found any vulnerabilities.
-	HasVulnerabilities bool `protobuf:"varint,8,opt,name=has_vulnerabilities,json=hasVulnerabilities" json:"has_vulnerabilities,omitempty"`
+	HasVulnerabilities bool `protobuf:"varint,8,opt,name=has_vulnerabilities,json=hasVulnerabilities,proto3" json:"has_vulnerabilities,omitempty"`
 	// Output only.
 	// The percentage of total completion ranging from 0 to 100.
 	// If the scan is in queue, the value is 0.
 	// If the scan is running, the value ranges from 0 to 100.
 	// If the scan is finished, the value is 100.
-	ProgressPercent      int32    `protobuf:"varint,9,opt,name=progress_percent,json=progressPercent" json:"progress_percent,omitempty"`
+	ProgressPercent      int32    `protobuf:"varint,9,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/cloud/websecurityscanner/v1alpha/web_security_scanner.pb.go b/googleapis/cloud/websecurityscanner/v1alpha/web_security_scanner.pb.go
index af4ca037d3b7bc5ae4f2193ef422b421e57c6455..ac208fa384c423289e05c87edb6da38e76470a4c 100644
--- a/googleapis/cloud/websecurityscanner/v1alpha/web_security_scanner.pb.go
+++ b/googleapis/cloud/websecurityscanner/v1alpha/web_security_scanner.pb.go
@@ -31,10 +31,10 @@ type CreateScanConfigRequest struct {
 	// Required.
 	// The parent resource name where the scan is created, which should be a
 	// project resource name in the format 'projects/{projectId}'.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required.
 	// The ScanConfig to be created.
-	ScanConfig           *ScanConfig `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig" json:"scan_config,omitempty"`
+	ScanConfig           *ScanConfig `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig,proto3" json:"scan_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -83,7 +83,7 @@ type DeleteScanConfigRequest struct {
 	// Required.
 	// The resource name of the ScanConfig to be deleted. The name follows the
 	// format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -125,7 +125,7 @@ type GetScanConfigRequest struct {
 	// Required.
 	// The resource name of the ScanConfig to be returned. The name follows the
 	// format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -167,15 +167,15 @@ type ListScanConfigsRequest struct {
 	// Required.
 	// The parent resource name, which should be a project resource name in the
 	// format 'projects/{projectId}'.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// A token identifying a page of results to be returned. This should be a
 	// `next_page_token` value returned from a previous List request.
 	// If unspecified, the first page of results is returned.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of ScanConfigs to return, can be limited by server.
 	// If not specified or not positive, the implementation will select a
 	// reasonable value.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -232,12 +232,12 @@ type UpdateScanConfigRequest struct {
 	// The ScanConfig to be updated. The name field must be set to identify the
 	// resource to be updated. The values of fields not covered by the mask
 	// will be ignored.
-	ScanConfig *ScanConfig `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig" json:"scan_config,omitempty"`
+	ScanConfig *ScanConfig `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig,proto3" json:"scan_config,omitempty"`
 	// Required.
 	// The update mask applies to the resource. For the `FieldMask` definition,
 	// see
 	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -284,10 +284,10 @@ func (m *UpdateScanConfigRequest) GetUpdateMask() *field_mask.FieldMask {
 // Response for the `ListScanConfigs` method.
 type ListScanConfigsResponse struct {
 	// The list of ScanConfigs returned.
-	ScanConfigs []*ScanConfig `protobuf:"bytes,1,rep,name=scan_configs,json=scanConfigs" json:"scan_configs,omitempty"`
+	ScanConfigs []*ScanConfig `protobuf:"bytes,1,rep,name=scan_configs,json=scanConfigs,proto3" json:"scan_configs,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -336,7 +336,7 @@ type StartScanRunRequest struct {
 	// Required.
 	// The resource name of the ScanConfig to be used. The name follows the
 	// format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -379,7 +379,7 @@ type GetScanRunRequest struct {
 	// The resource name of the ScanRun to be returned. The name follows the
 	// format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -421,15 +421,15 @@ type ListScanRunsRequest struct {
 	// Required.
 	// The parent resource name, which should be a scan resource name in the
 	// format 'projects/{projectId}/scanConfigs/{scanConfigId}'.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// A token identifying a page of results to be returned. This should be a
 	// `next_page_token` value returned from a previous List request.
 	// If unspecified, the first page of results is returned.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of ScanRuns to return, can be limited by server.
 	// If not specified or not positive, the implementation will select a
 	// reasonable value.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -483,10 +483,10 @@ func (m *ListScanRunsRequest) GetPageSize() int32 {
 // Response for the `ListScanRuns` method.
 type ListScanRunsResponse struct {
 	// The list of ScanRuns returned.
-	ScanRuns []*ScanRun `protobuf:"bytes,1,rep,name=scan_runs,json=scanRuns" json:"scan_runs,omitempty"`
+	ScanRuns []*ScanRun `protobuf:"bytes,1,rep,name=scan_runs,json=scanRuns,proto3" json:"scan_runs,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -536,7 +536,7 @@ type StopScanRunRequest struct {
 	// The resource name of the ScanRun to be stopped. The name follows the
 	// format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -579,15 +579,15 @@ type ListCrawledUrlsRequest struct {
 	// The parent resource name, which should be a scan run resource name in the
 	// format
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// A token identifying a page of results to be returned. This should be a
 	// `next_page_token` value returned from a previous List request.
 	// If unspecified, the first page of results is returned.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of CrawledUrls to return, can be limited by server.
 	// If not specified or not positive, the implementation will select a
 	// reasonable value.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -641,10 +641,10 @@ func (m *ListCrawledUrlsRequest) GetPageSize() int32 {
 // Response for the `ListCrawledUrls` method.
 type ListCrawledUrlsResponse struct {
 	// The list of CrawledUrls returned.
-	CrawledUrls []*CrawledUrl `protobuf:"bytes,1,rep,name=crawled_urls,json=crawledUrls" json:"crawled_urls,omitempty"`
+	CrawledUrls []*CrawledUrl `protobuf:"bytes,1,rep,name=crawled_urls,json=crawledUrls,proto3" json:"crawled_urls,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -694,7 +694,7 @@ type GetFindingRequest struct {
 	// The resource name of the Finding to be returned. The name follows the
 	// format of
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}/findings/{findingId}'.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -737,20 +737,20 @@ type ListFindingsRequest struct {
 	// The parent resource name, which should be a scan run resource name in the
 	// format
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The filter expression. The expression must be in the format: <field>
 	// <operator> <value>.
 	// Supported field: 'finding_type'.
 	// Supported operator: '='.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// A token identifying a page of results to be returned. This should be a
 	// `next_page_token` value returned from a previous List request.
 	// If unspecified, the first page of results is returned.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of Findings to return, can be limited by server.
 	// If not specified or not positive, the implementation will select a
 	// reasonable value.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -811,10 +811,10 @@ func (m *ListFindingsRequest) GetPageSize() int32 {
 // Response for the `ListFindings` method.
 type ListFindingsResponse struct {
 	// The list of Findings returned.
-	Findings []*Finding `protobuf:"bytes,1,rep,name=findings" json:"findings,omitempty"`
+	Findings []*Finding `protobuf:"bytes,1,rep,name=findings,proto3" json:"findings,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -864,7 +864,7 @@ type ListFindingTypeStatsRequest struct {
 	// The parent resource name, which should be a scan run resource name in the
 	// format
 	// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.
-	Parent               string   `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -904,7 +904,7 @@ func (m *ListFindingTypeStatsRequest) GetParent() string {
 // Response for the `ListFindingTypeStats` method.
 type ListFindingTypeStatsResponse struct {
 	// The list of FindingTypeStats returned.
-	FindingTypeStats     []*FindingTypeStats `protobuf:"bytes,1,rep,name=finding_type_stats,json=findingTypeStats" json:"finding_type_stats,omitempty"`
+	FindingTypeStats     []*FindingTypeStats `protobuf:"bytes,1,rep,name=finding_type_stats,json=findingTypeStats,proto3" json:"finding_type_stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1128,8 +1128,7 @@ func (c *webSecurityScannerClient) ListFindingTypeStats(ctx context.Context, in
 	return out, nil
 }
 
-// Server API for WebSecurityScanner service
-
+// WebSecurityScannerServer is the server API for WebSecurityScanner service.
 type WebSecurityScannerServer interface {
 	// Creates a new ScanConfig.
 	CreateScanConfig(context.Context, *CreateScanConfigRequest) (*ScanConfig, error)
diff --git a/googleapis/container/v1/cluster_service.pb.go b/googleapis/container/v1/cluster_service.pb.go
index cad7d1350298a9b9feeebffd0ad08f6fa2f9fdb0..7fcb2380e54ac07b615473b85cd8a58d09f7f1a9 100644
--- a/googleapis/container/v1/cluster_service.pb.go
+++ b/googleapis/container/v1/cluster_service.pb.go
@@ -319,12 +319,12 @@ type NodeConfig struct {
 	//
 	// If unspecified, the default machine type is
 	// `n1-standard-1`.
-	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"`
+	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
 	// 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.
-	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb" json:"disk_size_gb,omitempty"`
+	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"`
 	// The set of Google API scopes to be made available on all of the
 	// node VMs under the "default" service account.
 	//
@@ -339,10 +339,10 @@ type NodeConfig struct {
 	//
 	// If unspecified, no scopes are added, unless Cloud Logging or Cloud
 	// Monitoring are enabled, in which case their required scopes will be added.
-	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes" json:"oauth_scopes,omitempty"`
+	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"`
 	// 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.
-	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// 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
@@ -356,10 +356,10 @@ type NodeConfig struct {
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The image type to use for this node. Note that for a given image type,
 	// the latest version of it will be used.
-	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType" json:"image_type,omitempty"`
+	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"`
 	// 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.
@@ -368,34 +368,34 @@ type NodeConfig struct {
 	// and conflicts should be avoided.
 	// For more information, including usage and the valid values, see:
 	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
-	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount" json:"local_ssd_count,omitempty"`
+	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount,proto3" json:"local_ssd_count,omitempty"`
 	// 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.
-	Tags []string `protobuf:"bytes,8,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"`
 	// Whether the nodes are created as preemptible VM instances. See:
 	// https://cloud.google.com/compute/docs/instances/preemptible for more
 	// information about preemptible VM instances.
-	Preemptible bool `protobuf:"varint,10,opt,name=preemptible" json:"preemptible,omitempty"`
+	Preemptible bool `protobuf:"varint,10,opt,name=preemptible,proto3" json:"preemptible,omitempty"`
 	// A list of hardware accelerators to be attached to each node.
 	// See https://cloud.google.com/compute/docs/gpus for more information about
 	// support for GPUs.
-	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators" json:"accelerators,omitempty"`
+	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
 	// Minimum CPU platform to be used by this instance. The instance may be
 	// scheduled on the specified or newer CPU platform. Applicable values are the
 	// friendly names of CPU platforms, such as
 	// <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
 	// <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
 	// information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
-	MinCpuPlatform       string   `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform" json:"min_cpu_platform,omitempty"`
+	MinCpuPlatform       string   `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -516,24 +516,24 @@ type MasterAuth struct {
 	// 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.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// 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.
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	// Configuration for client certificate authentication on the cluster.  If no
 	// configuration is specified, a client certificate is issued.
-	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig" json:"client_certificate_config,omitempty"`
+	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig,proto3" json:"client_certificate_config,omitempty"`
 	// [Output only] Base64-encoded public certificate that is the root of
 	// trust for the cluster.
-	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate" json:"cluster_ca_certificate,omitempty"`
+	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate,proto3" json:"cluster_ca_certificate,omitempty"`
 	// [Output only] Base64-encoded public certificate used by clients to
 	// authenticate to the cluster endpoint.
-	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate" json:"client_certificate,omitempty"`
+	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate,proto3" json:"client_certificate,omitempty"`
 	// [Output only] Base64-encoded private key used by clients to authenticate
 	// to the cluster endpoint.
-	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey" json:"client_key,omitempty"`
+	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -608,7 +608,7 @@ func (m *MasterAuth) GetClientKey() string {
 // Configuration for client certificates on the cluster.
 type ClientCertificateConfig struct {
 	// Issue a client certificate.
-	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate" json:"issue_client_certificate,omitempty"`
+	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate,proto3" json:"issue_client_certificate,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -650,17 +650,17 @@ func (m *ClientCertificateConfig) GetIssueClientCertificate() bool {
 type AddonsConfig struct {
 	// Configuration for the HTTP (L7) load balancing controller addon, which
 	// makes it easy to set up HTTP load balancers for services in a cluster.
-	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing" json:"http_load_balancing,omitempty"`
+	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing,proto3" json:"http_load_balancing,omitempty"`
 	// 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.
-	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling" json:"horizontal_pod_autoscaling,omitempty"`
+	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling,proto3" json:"horizontal_pod_autoscaling,omitempty"`
 	// Configuration for the Kubernetes Dashboard.
-	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard" json:"kubernetes_dashboard,omitempty"`
+	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard,proto3" json:"kubernetes_dashboard,omitempty"`
 	// Configuration for NetworkPolicy. This only tracks whether the addon
 	// is enabled or not on the Master, it does not track whether network policy
 	// is enabled for the nodes.
-	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig" json:"network_policy_config,omitempty"`
+	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig,proto3" json:"network_policy_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -724,7 +724,7 @@ type HttpLoadBalancing struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -768,7 +768,7 @@ type HorizontalPodAutoscaling struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -808,7 +808,7 @@ func (m *HorizontalPodAutoscaling) GetDisabled() bool {
 // Configuration for the Kubernetes Dashboard.
 type KubernetesDashboard struct {
 	// Whether the Kubernetes Dashboard is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -850,7 +850,7 @@ func (m *KubernetesDashboard) GetDisabled() bool {
 // is enabled for the nodes.
 type NetworkPolicyConfig struct {
 	// Whether NetworkPolicy is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -894,10 +894,10 @@ func (m *NetworkPolicyConfig) GetDisabled() bool {
 // Google Compute Engine Public IPs and Google Prod IPs.
 type MasterAuthorizedNetworksConfig struct {
 	// Whether or not master authorized networks is enabled.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// cidr_blocks define up to 10 external networks that could access
 	// Kubernetes master through HTTPS.
-	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks" json:"cidr_blocks,omitempty"`
+	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks,proto3" json:"cidr_blocks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
 	XXX_unrecognized     []byte                                      `json:"-"`
 	XXX_sizecache        int32                                       `json:"-"`
@@ -944,9 +944,9 @@ func (m *MasterAuthorizedNetworksConfig) GetCidrBlocks() []*MasterAuthorizedNetw
 // CidrBlock contains an optional name and one CIDR block.
 type MasterAuthorizedNetworksConfig_CidrBlock struct {
 	// display_name is an optional field for users to identify CIDR blocks.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// cidr_block must be specified in CIDR notation.
-	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock" json:"cidr_block,omitempty"`
+	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -999,7 +999,7 @@ type LegacyAbac struct {
 	// identities in the system, including service accounts, nodes, and
 	// controllers, will have statically granted permissions beyond those
 	// provided by the RBAC configuration or IAM.
-	Enabled              bool     `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1040,9 +1040,9 @@ func (m *LegacyAbac) GetEnabled() bool {
 // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
 type NetworkPolicy struct {
 	// The selected network policy provider.
-	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,enum=google.container.v1.NetworkPolicy_Provider" json:"provider,omitempty"`
+	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,proto3,enum=google.container.v1.NetworkPolicy_Provider" json:"provider,omitempty"`
 	// Whether network policy is enabled on the cluster.
-	Enabled              bool     `protobuf:"varint,2,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1089,21 +1089,21 @@ func (m *NetworkPolicy) GetEnabled() bool {
 // Configuration for controlling how IPs are allocated in the cluster.
 type IPAllocationPolicy struct {
 	// Whether alias IPs will be used for pod IPs in the cluster.
-	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases" json:"use_ip_aliases,omitempty"`
+	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases,proto3" json:"use_ip_aliases,omitempty"`
 	// Whether a new subnetwork will be created automatically for the cluster.
 	//
 	// This field is only applicable when `use_ip_aliases` is true.
-	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork" json:"create_subnetwork,omitempty"`
+	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork,proto3" json:"create_subnetwork,omitempty"`
 	// A custom subnetwork name to be used if `create_subnetwork` is true.  If
 	// this field is empty, then an automatic name will be chosen for the new
 	// subnetwork.
-	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName" json:"subnetwork_name,omitempty"`
+	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName,proto3" json:"subnetwork_name,omitempty"`
 	// This field is deprecated, use cluster_ipv4_cidr_block.
-	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// This field is deprecated, use node_ipv4_cidr_block.
-	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr" json:"node_ipv4_cidr,omitempty"`
+	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr,proto3" json:"node_ipv4_cidr,omitempty"`
 	// This field is deprecated, use services_ipv4_cidr_block.
-	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// The name of the secondary range to be used for the cluster CIDR
 	// block.  The secondary range will be used for pod IP
 	// addresses. This must be an existing secondary range associated
@@ -1111,7 +1111,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable with use_ip_aliases is true and
 	// create_subnetwork is false.
-	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName" json:"cluster_secondary_range_name,omitempty"`
+	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName,proto3" json:"cluster_secondary_range_name,omitempty"`
 	// The name of the secondary range to be used as for the services
 	// CIDR block.  The secondary range will be used for service
 	// ClusterIPs. This must be an existing secondary range associated
@@ -1119,7 +1119,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable with use_ip_aliases is true and
 	// create_subnetwork is false.
-	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName" json:"services_secondary_range_name,omitempty"`
+	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName,proto3" json:"services_secondary_range_name,omitempty"`
 	// The IP address range for the cluster pod IPs. If this field is set, then
 	// `cluster.cluster_ipv4_cidr` must be left blank.
 	//
@@ -1135,7 +1135,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock" json:"cluster_ipv4_cidr_block,omitempty"`
+	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock,proto3" json:"cluster_ipv4_cidr_block,omitempty"`
 	// The IP address range of the instance IPs in this cluster.
 	//
 	// This is applicable only if `create_subnetwork` is true.
@@ -1150,7 +1150,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock" json:"node_ipv4_cidr_block,omitempty"`
+	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock,proto3" json:"node_ipv4_cidr_block,omitempty"`
 	// The IP address range of the services IPs in this cluster. If blank, a range
 	// will be automatically chosen with the default size.
 	//
@@ -1166,7 +1166,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock" json:"services_ipv4_cidr_block,omitempty"`
+	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
 	XXX_unrecognized      []byte   `json:"-"`
 	XXX_sizecache         int32    `json:"-"`
@@ -1281,9 +1281,9 @@ type Cluster struct {
 	// * Lowercase letters, numbers, and hyphens only.
 	// * Must start with a letter.
 	// * Must end with a number or a letter.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional description of this cluster.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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
@@ -1292,7 +1292,7 @@ type Cluster struct {
 	// "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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// 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
@@ -1303,119 +1303,119 @@ type Cluster struct {
 	// the first node pool.
 	//
 	// If unspecified, the defaults are used.
-	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig" json:"node_config,omitempty"`
+	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"`
 	// The authentication information for accessing the master endpoint.
-	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth" json:"master_auth,omitempty"`
+	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth,proto3" json:"master_auth,omitempty"`
 	// 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.
-	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService" json:"logging_service,omitempty"`
+	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"`
 	// 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.
-	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService" json:"monitoring_service,omitempty"`
+	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"`
 	// 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.
-	Network string `protobuf:"bytes,8,opt,name=network" json:"network,omitempty"`
+	Network string `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
 	// 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`.
-	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig" json:"addons_config,omitempty"`
+	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"`
 	// The name of the Google Compute Engine
 	// [subnetwork](/compute/docs/subnetworks) to which the
 	// cluster is connected.
-	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork" json:"subnetwork,omitempty"`
+	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"`
 	// The node pools associated with this cluster.
 	// This field should not be set if "node_config" or "initial_node_count" are
 	// specified.
-	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	// The list of Google Compute Engine
 	// [locations](/compute/docs/zones#available) in which the cluster's nodes
 	// should be located.
-	Locations []string `protobuf:"bytes,13,rep,name=locations" json:"locations,omitempty"`
+	Locations []string `protobuf:"bytes,13,rep,name=locations,proto3" json:"locations,omitempty"`
 	// 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.
-	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha" json:"enable_kubernetes_alpha,omitempty"`
+	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha,proto3" json:"enable_kubernetes_alpha,omitempty"`
 	// The resource labels for the cluster to use to annotate any related
 	// Google Compute Engine resources.
-	ResourceLabels map[string]string `protobuf:"bytes,15,rep,name=resource_labels,json=resourceLabels" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ResourceLabels map[string]string `protobuf:"bytes,15,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The fingerprint of the set of labels for this cluster.
-	LabelFingerprint string `protobuf:"bytes,16,opt,name=label_fingerprint,json=labelFingerprint" json:"label_fingerprint,omitempty"`
+	LabelFingerprint string `protobuf:"bytes,16,opt,name=label_fingerprint,json=labelFingerprint,proto3" json:"label_fingerprint,omitempty"`
 	// Configuration for the legacy ABAC authorization mode.
-	LegacyAbac *LegacyAbac `protobuf:"bytes,18,opt,name=legacy_abac,json=legacyAbac" json:"legacy_abac,omitempty"`
+	LegacyAbac *LegacyAbac `protobuf:"bytes,18,opt,name=legacy_abac,json=legacyAbac,proto3" json:"legacy_abac,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	// Configuration for cluster IP allocation.
-	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy" json:"ip_allocation_policy,omitempty"`
+	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy,proto3" json:"ip_allocation_policy,omitempty"`
 	// Master authorized networks is a Beta feature.
 	// The configuration options for master authorized networks feature.
-	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig" json:"master_authorized_networks_config,omitempty"`
+	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig,proto3" json:"master_authorized_networks_config,omitempty"`
 	// Configure the maintenance policy for this cluster.
-	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,101,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,101,opt,name=zone,proto3" json:"zone,omitempty"`
 	// [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.
-	Endpoint string `protobuf:"bytes,102,opt,name=endpoint" json:"endpoint,omitempty"`
+	Endpoint string `protobuf:"bytes,102,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	// 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.
-	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion" json:"initial_cluster_version,omitempty"`
+	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion,proto3" json:"initial_cluster_version,omitempty"`
 	// [Output only] The current software version of the master endpoint.
-	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion" json:"current_master_version,omitempty"`
+	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion,proto3" json:"current_master_version,omitempty"`
 	// [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 string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion" json:"current_node_version,omitempty"`
+	CurrentNodeVersion string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion,proto3" json:"current_node_version,omitempty"`
 	// [Output only] The time the cluster was created, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// [Output only] The current status of this cluster.
-	Status Cluster_Status `protobuf:"varint,107,opt,name=status,enum=google.container.v1.Cluster_Status" json:"status,omitempty"`
+	Status Cluster_Status `protobuf:"varint,107,opt,name=status,proto3,enum=google.container.v1.Cluster_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// cluster, if available.
-	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// [Output only] The size of the address space on each node for hosting
 	// containers. This is provisioned from within the `container_ipv4_cidr`
 	// range.
-	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize" json:"node_ipv4_cidr_size,omitempty"`
+	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize,proto3" json:"node_ipv4_cidr_size,omitempty"`
 	// [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.
-	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// Deprecated. Use node_pools.instance_group_urls.
-	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The number of nodes currently in the cluster.
-	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount" json:"current_node_count,omitempty"`
+	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount,proto3" json:"current_node_count,omitempty"`
 	// [Output only] The time the cluster will be automatically
 	// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	ExpireTime           string   `protobuf:"bytes,113,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime           string   `protobuf:"bytes,113,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1697,28 +1697,28 @@ type ClusterUpdate struct {
 	// The Kubernetes version to change the nodes to (typically an
 	// upgrade). Use `-` to upgrade to the latest version supported by
 	// the server.
-	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion" json:"desired_node_version,omitempty"`
+	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion,proto3" json:"desired_node_version,omitempty"`
 	// 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
-	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService" json:"desired_monitoring_service,omitempty"`
+	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService,proto3" json:"desired_monitoring_service,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig" json:"desired_addons_config,omitempty"`
+	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig,proto3" json:"desired_addons_config,omitempty"`
 	// 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.
-	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId" json:"desired_node_pool_id,omitempty"`
+	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId,proto3" json:"desired_node_pool_id,omitempty"`
 	// The desired image type for the node pool.
 	// NOTE: Set the "desired_node_pool" field as well.
-	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType" json:"desired_image_type,omitempty"`
+	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType,proto3" json:"desired_image_type,omitempty"`
 	// 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.
-	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling" json:"desired_node_pool_autoscaling,omitempty"`
+	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling,proto3" json:"desired_node_pool_autoscaling,omitempty"`
 	// 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
@@ -1726,14 +1726,14 @@ type ClusterUpdate struct {
 	// whether locations are being added or removed.
 	//
 	// This list must always include the cluster's primary zone.
-	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations" json:"desired_locations,omitempty"`
+	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations,proto3" json:"desired_locations,omitempty"`
 	// Master authorized networks is a Beta feature.
 	// The desired configuration options for master authorized networks feature.
-	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig" json:"desired_master_authorized_networks_config,omitempty"`
+	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig,proto3" json:"desired_master_authorized_networks_config,omitempty"`
 	// 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.
-	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion" json:"desired_master_version,omitempty"`
+	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion,proto3" json:"desired_master_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1830,29 +1830,29 @@ func (m *ClusterUpdate) GetDesiredMasterVersion() string {
 // happening on the cluster. All fields are output only.
 type Operation struct {
 	// The server-assigned ID for the operation.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation
 	// is taking place.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The operation type.
-	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,enum=google.container.v1.Operation_Type" json:"operation_type,omitempty"`
+	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.container.v1.Operation_Type" json:"operation_type,omitempty"`
 	// The current status of the operation.
-	Status Operation_Status `protobuf:"varint,4,opt,name=status,enum=google.container.v1.Operation_Status" json:"status,omitempty"`
+	Status Operation_Status `protobuf:"varint,4,opt,name=status,proto3,enum=google.container.v1.Operation_Status" json:"status,omitempty"`
 	// Detailed operation progress, if available.
-	Detail string `protobuf:"bytes,8,opt,name=detail" json:"detail,omitempty"`
+	Detail string `protobuf:"bytes,8,opt,name=detail,proto3" json:"detail,omitempty"`
 	// If an error has occurred, a textual description of the error.
-	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// Server-defined URL for the target of the operation.
-	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink" json:"target_link,omitempty"`
+	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink,proto3" json:"target_link,omitempty"`
 	// [Output only] The time the operation started, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] The time the operation completed, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1956,14 +1956,14 @@ func (m *Operation) GetEndTime() string {
 type CreateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// A [cluster
 	// resource](/container-engine/reference/rest/v1/projects.zones.clusters)
-	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster              *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2018,13 +2018,13 @@ func (m *CreateClusterRequest) GetCluster() *Cluster {
 type GetClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to retrieve.
-	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2079,15 +2079,15 @@ func (m *GetClusterRequest) GetClusterId() string {
 type UpdateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// A description of the update.
-	Update               *ClusterUpdate `protobuf:"bytes,4,opt,name=update" json:"update,omitempty"`
+	Update               *ClusterUpdate `protobuf:"bytes,4,opt,name=update,proto3" json:"update,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -2149,21 +2149,21 @@ func (m *UpdateClusterRequest) GetUpdate() *ClusterUpdate {
 type UpdateNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to upgrade.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The Kubernetes version to change the nodes to (typically an
 	// upgrade). Use `-` to upgrade to the latest version supported by
 	// the server.
-	NodeVersion string `protobuf:"bytes,5,opt,name=node_version,json=nodeVersion" json:"node_version,omitempty"`
+	NodeVersion string `protobuf:"bytes,5,opt,name=node_version,json=nodeVersion,proto3" json:"node_version,omitempty"`
 	// The desired image type for the node pool.
-	ImageType            string   `protobuf:"bytes,6,opt,name=image_type,json=imageType" json:"image_type,omitempty"`
+	ImageType            string   `protobuf:"bytes,6,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2239,17 +2239,17 @@ func (m *UpdateNodePoolRequest) GetImageType() string {
 type SetNodePoolAutoscalingRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to upgrade.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// Autoscaling configuration for the node pool.
-	Autoscaling          *NodePoolAutoscaling `protobuf:"bytes,5,opt,name=autoscaling" json:"autoscaling,omitempty"`
+	Autoscaling          *NodePoolAutoscaling `protobuf:"bytes,5,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -2318,19 +2318,19 @@ func (m *SetNodePoolAutoscalingRequest) GetAutoscaling() *NodePoolAutoscaling {
 type SetLoggingServiceRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The logging service the cluster should use to write metrics.
 	// Currently available options:
 	//
 	// * "logging.googleapis.com" - the Google Cloud Logging service
 	// * "none" - no metrics will be exported from the cluster
-	LoggingService       string   `protobuf:"bytes,4,opt,name=logging_service,json=loggingService" json:"logging_service,omitempty"`
+	LoggingService       string   `protobuf:"bytes,4,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2392,19 +2392,19 @@ func (m *SetLoggingServiceRequest) GetLoggingService() string {
 type SetMonitoringServiceRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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
-	MonitoringService    string   `protobuf:"bytes,4,opt,name=monitoring_service,json=monitoringService" json:"monitoring_service,omitempty"`
+	MonitoringService    string   `protobuf:"bytes,4,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2466,16 +2466,16 @@ func (m *SetMonitoringServiceRequest) GetMonitoringService() string {
 type SetAddonsConfigRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The desired configurations for the various addons available to run in the
 	// cluster.
-	AddonsConfig         *AddonsConfig `protobuf:"bytes,4,opt,name=addons_config,json=addonsConfig" json:"addons_config,omitempty"`
+	AddonsConfig         *AddonsConfig `protobuf:"bytes,4,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -2537,13 +2537,13 @@ func (m *SetAddonsConfigRequest) GetAddonsConfig() *AddonsConfig {
 type SetLocationsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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
@@ -2551,7 +2551,7 @@ type SetLocationsRequest struct {
 	// whether locations are being added or removed.
 	//
 	// This list must always include the cluster's primary zone.
-	Locations            []string `protobuf:"bytes,4,rep,name=locations" json:"locations,omitempty"`
+	Locations            []string `protobuf:"bytes,4,rep,name=locations,proto3" json:"locations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2613,17 +2613,17 @@ func (m *SetLocationsRequest) GetLocations() []string {
 type UpdateMasterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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.
-	MasterVersion        string   `protobuf:"bytes,4,opt,name=master_version,json=masterVersion" json:"master_version,omitempty"`
+	MasterVersion        string   `protobuf:"bytes,4,opt,name=master_version,json=masterVersion,proto3" json:"master_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2685,17 +2685,17 @@ func (m *UpdateMasterRequest) GetMasterVersion() string {
 type SetMasterAuthRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The exact form of action to be taken on the master auth.
-	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,enum=google.container.v1.SetMasterAuthRequest_Action" json:"action,omitempty"`
+	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,proto3,enum=google.container.v1.SetMasterAuthRequest_Action" json:"action,omitempty"`
 	// A description of the update.
-	Update               *MasterAuth `protobuf:"bytes,5,opt,name=update" json:"update,omitempty"`
+	Update               *MasterAuth `protobuf:"bytes,5,opt,name=update,proto3" json:"update,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -2764,13 +2764,13 @@ func (m *SetMasterAuthRequest) GetUpdate() *MasterAuth {
 type DeleteClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to delete.
-	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2825,11 +2825,11 @@ func (m *DeleteClusterRequest) GetClusterId() string {
 type ListClustersRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides, or "-" for all zones.
-	Zone                 string   `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone                 string   `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2877,10 +2877,10 @@ func (m *ListClustersRequest) GetZone() string {
 type ListClustersResponse struct {
 	// A list of clusters in the project in the specified zone, or
 	// across all ones.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// If any zones are listed here, the list of clusters returned
 	// may be missing those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2928,13 +2928,13 @@ func (m *ListClustersResponse) GetMissingZones() []string {
 type GetOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
-	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2989,10 +2989,10 @@ func (m *GetOperationRequest) GetOperationId() string {
 type ListOperationsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for, or `-` for all zones.
-	Zone                 string   `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone                 string   `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3040,12 +3040,12 @@ func (m *ListOperationsRequest) GetZone() string {
 type CancelOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
-	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3099,10 +3099,10 @@ func (m *CancelOperationRequest) GetOperationId() string {
 // ListOperationsResponse is the result of ListOperationsRequest.
 type ListOperationsResponse struct {
 	// A list of operations in the project in the specified zone.
-	Operations []*Operation `protobuf:"bytes,1,rep,name=operations" json:"operations,omitempty"`
+	Operations []*Operation `protobuf:"bytes,1,rep,name=operations,proto3" json:"operations,omitempty"`
 	// If any zones are listed here, the list of operations returned
 	// may be missing the operations from those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3150,10 +3150,10 @@ func (m *ListOperationsResponse) GetMissingZones() []string {
 type GetServerConfigRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for.
-	Zone                 string   `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone                 string   `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3200,15 +3200,15 @@ func (m *GetServerConfigRequest) GetZone() string {
 // Container Engine service configuration.
 type ServerConfig struct {
 	// Version of Kubernetes the service deploys by default.
-	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion" json:"default_cluster_version,omitempty"`
+	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion,proto3" json:"default_cluster_version,omitempty"`
 	// List of valid node upgrade target versions.
-	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions" json:"valid_node_versions,omitempty"`
+	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions,proto3" json:"valid_node_versions,omitempty"`
 	// Default image type.
-	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType" json:"default_image_type,omitempty"`
+	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType,proto3" json:"default_image_type,omitempty"`
 	// List of valid image types.
-	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes" json:"valid_image_types,omitempty"`
+	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes,proto3" json:"valid_image_types,omitempty"`
 	// List of valid master versions.
-	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions" json:"valid_master_versions,omitempty"`
+	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions,proto3" json:"valid_master_versions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3277,15 +3277,15 @@ func (m *ServerConfig) GetValidMasterVersions() []string {
 type CreateNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The node pool to create.
-	NodePool             *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool" json:"node_pool,omitempty"`
+	NodePool             *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool,proto3" json:"node_pool,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -3347,15 +3347,15 @@ func (m *CreateNodePoolRequest) GetNodePool() *NodePool {
 type DeleteNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to delete.
-	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3417,13 +3417,13 @@ func (m *DeleteNodePoolRequest) GetNodePoolId() string {
 type ListNodePoolsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3478,15 +3478,15 @@ func (m *ListNodePoolsRequest) GetClusterId() string {
 type GetNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool.
-	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3552,32 +3552,32 @@ func (m *GetNodePoolRequest) GetNodePoolId() string {
 // the workload.
 type NodePool struct {
 	// The name of the node pool.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The node configuration of the pool.
-	Config *NodeConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config *NodeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	// 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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// The version of the Kubernetes of this node.
-	Version string `protobuf:"bytes,101,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,101,opt,name=version,proto3" json:"version,omitempty"`
 	// [Output only] The resource URLs of the [managed instance
 	// groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
 	// associated with this node pool.
-	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The status of the nodes in this pool instance.
-	Status NodePool_Status `protobuf:"varint,103,opt,name=status,enum=google.container.v1.NodePool_Status" json:"status,omitempty"`
+	Status NodePool_Status `protobuf:"varint,103,opt,name=status,proto3,enum=google.container.v1.NodePool_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// node pool instance, if available.
-	StatusMessage string `protobuf:"bytes,104,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,104,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Autoscaler configuration for this NodePool. Autoscaler is enabled
 	// only if a valid configuration is present.
-	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling" json:"autoscaling,omitempty"`
+	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"`
 	// NodeManagement configuration for this NodePool.
-	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -3683,14 +3683,14 @@ type NodeManagement struct {
 	// 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.
-	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade" json:"auto_upgrade,omitempty"`
+	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade,proto3" json:"auto_upgrade,omitempty"`
 	// 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.
-	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair" json:"auto_repair,omitempty"`
+	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair,proto3" json:"auto_repair,omitempty"`
 	// Specifies the Auto Upgrade knobs for the node pool.
-	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions" json:"upgrade_options,omitempty"`
+	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions,proto3" json:"upgrade_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -3747,10 +3747,10 @@ type AutoUpgradeOptions struct {
 	// [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.
-	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime" json:"auto_upgrade_start_time,omitempty"`
+	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime,proto3" json:"auto_upgrade_start_time,omitempty"`
 	// [Output only] This field is set when upgrades are about to commence
 	// with the description of the upgrade.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3797,7 +3797,7 @@ func (m *AutoUpgradeOptions) GetDescription() string {
 // MaintenancePolicy defines the maintenance policy to be used for the cluster.
 type MaintenancePolicy struct {
 	// Specifies the maintenance window in which maintenance may be performed.
-	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window" json:"window,omitempty"`
+	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window,proto3" json:"window,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -3873,7 +3873,7 @@ type isMaintenanceWindow_Policy interface {
 }
 
 type MaintenanceWindow_DailyMaintenanceWindow struct {
-	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,oneof"`
+	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,proto3,oneof"`
 }
 
 func (*MaintenanceWindow_DailyMaintenanceWindow) isMaintenanceWindow_Policy() {}
@@ -3952,12 +3952,12 @@ type DailyMaintenanceWindow struct {
 	// Time within the maintenance window to start the maintenance operations.
 	// Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
 	// format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
-	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] Duration of the time window, automatically chosen to be
 	// smallest possible in the given scenario.
 	// Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
 	// format "PTnHnMnS".
-	Duration             string   `protobuf:"bytes,3,opt,name=duration" json:"duration,omitempty"`
+	Duration             string   `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4006,17 +4006,17 @@ func (m *DailyMaintenanceWindow) GetDuration() string {
 type SetNodePoolManagementRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to update.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// NodeManagement configuration for the node pool.
-	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -4086,17 +4086,17 @@ func (m *SetNodePoolManagementRequest) GetManagement() *NodeManagement {
 type SetNodePoolSizeRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to update.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The desired node count for the pool.
-	NodeCount            int32    `protobuf:"varint,5,opt,name=node_count,json=nodeCount" json:"node_count,omitempty"`
+	NodeCount            int32    `protobuf:"varint,5,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4167,15 +4167,15 @@ func (m *SetNodePoolSizeRequest) GetNodeCount() int32 {
 type RollbackNodePoolUpgradeRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to rollback.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to rollback.
-	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId           string   `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4236,7 +4236,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetNodePoolId() string {
 // ListNodePoolsResponse is the result of ListNodePoolsRequest.
 type ListNodePoolsResponse struct {
 	// A list of node pools for a cluster.
-	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -4277,13 +4277,13 @@ func (m *ListNodePoolsResponse) GetNodePools() []*NodePool {
 // adjust the size of the node pool to the current cluster usage.
 type NodePoolAutoscaling struct {
 	// Is autoscaling enabled for this node pool.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// Minimum number of nodes in the NodePool. Must be >= 1 and <=
 	// max_node_count.
-	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount" json:"min_node_count,omitempty"`
+	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount,proto3" json:"min_node_count,omitempty"`
 	// Maximum number of nodes in the NodePool. Must be >= min_node_count. There
 	// has to enough quota to scale up the cluster.
-	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount" json:"max_node_count,omitempty"`
+	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4340,22 +4340,22 @@ func (m *NodePoolAutoscaling) GetMaxNodeCount() int32 {
 type SetLabelsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The labels to set for that cluster.
-	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LabelFingerprint     string   `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint" json:"label_fingerprint,omitempty"`
+	LabelFingerprint     string   `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint,proto3" json:"label_fingerprint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4425,15 +4425,15 @@ func (m *SetLabelsRequest) GetLabelFingerprint() string {
 type SetLegacyAbacRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Whether ABAC authorization will be enabled in the cluster.
-	Enabled              bool     `protobuf:"varint,4,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4496,13 +4496,13 @@ func (m *SetLegacyAbacRequest) GetEnabled() bool {
 type StartIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4557,13 +4557,13 @@ func (m *StartIPRotationRequest) GetClusterId() string {
 type CompleteIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4617,10 +4617,10 @@ func (m *CompleteIPRotationRequest) GetClusterId() string {
 // AcceleratorConfig represents a Hardware Accelerator request.
 type AcceleratorConfig struct {
 	// The number of the accelerator cards exposed to an instance.
-	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount" json:"accelerator_count,omitempty"`
+	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
 	// The accelerator type resource name. List of supported accelerators
 	// [here](/compute/docs/gpus/#Introduction)
-	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType" json:"accelerator_type,omitempty"`
+	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4668,15 +4668,15 @@ func (m *AcceleratorConfig) GetAcceleratorType() string {
 type SetNetworkPolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy        *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy        *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -4738,16 +4738,16 @@ func (m *SetNetworkPolicyRequest) GetNetworkPolicy() *NetworkPolicy {
 type SetMaintenancePolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The maintenance policy to be set for the cluster. An empty field
 	// clears the existing maintenance policy.
-	MaintenancePolicy    *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy    *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -5252,8 +5252,7 @@ func (c *clusterManagerClient) SetMaintenancePolicy(ctx context.Context, in *Set
 	return out, nil
 }
 
-// Server API for ClusterManager service
-
+// ClusterManagerServer is the server API for ClusterManager service.
 type ClusterManagerServer interface {
 	// Lists all clusters owned by a project in either the specified zone or all
 	// zones.
diff --git a/googleapis/container/v1alpha1/cluster_service.pb.go b/googleapis/container/v1alpha1/cluster_service.pb.go
index ee509e4486fba44b811b7bd0ef9166976944fcff..98835d459d9627863f54fcb95e8c7bbe16830cbc 100644
--- a/googleapis/container/v1alpha1/cluster_service.pb.go
+++ b/googleapis/container/v1alpha1/cluster_service.pb.go
@@ -353,12 +353,12 @@ type NodeConfig struct {
 	//
 	// If unspecified, the default machine type is
 	// `n1-standard-1`.
-	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"`
+	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
 	// 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.
-	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb" json:"disk_size_gb,omitempty"`
+	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"`
 	// The set of Google API scopes to be made available on all of the
 	// node VMs under the "default" service account.
 	//
@@ -373,10 +373,10 @@ type NodeConfig struct {
 	//
 	// If unspecified, no scopes are added, unless Cloud Logging or Cloud
 	// Monitoring are enabled, in which case their required scopes will be added.
-	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes" json:"oauth_scopes,omitempty"`
+	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"`
 	// 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.
-	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// 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
@@ -390,10 +390,10 @@ type NodeConfig struct {
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The image type to use for this node. Note that for a given image type,
 	// the latest version of it will be used.
-	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType" json:"image_type,omitempty"`
+	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"`
 	// 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.
@@ -402,39 +402,39 @@ type NodeConfig struct {
 	// and conflicts should be avoided.
 	// For more information, including usage and the valid values, see:
 	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
-	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount" json:"local_ssd_count,omitempty"`
+	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount,proto3" json:"local_ssd_count,omitempty"`
 	// 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.
-	Tags []string `protobuf:"bytes,8,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"`
 	// 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.
-	Preemptible bool `protobuf:"varint,10,opt,name=preemptible" json:"preemptible,omitempty"`
+	Preemptible bool `protobuf:"varint,10,opt,name=preemptible,proto3" json:"preemptible,omitempty"`
 	// A list of hardware accelerators to be attached to each node.
 	// See https://cloud.google.com/compute/docs/gpus for more information about
 	// support for GPUs.
-	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators" json:"accelerators,omitempty"`
+	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
 	// Minimum CPU platform to be used by this instance. The instance may be
 	// scheduled on the specified or newer CPU platform. Applicable values are the
 	// friendly names of CPU platforms, such as
 	// <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
 	// <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
 	// information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
-	MinCpuPlatform string `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform" json:"min_cpu_platform,omitempty"`
+	MinCpuPlatform string `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
 	// List of kubernetes taints to be applied to each node.
 	//
 	// For more information, including usage and the valid values, see:
 	// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-	Taints               []*NodeTaint `protobuf:"bytes,15,rep,name=taints" json:"taints,omitempty"`
+	Taints               []*NodeTaint `protobuf:"bytes,15,rep,name=taints,proto3" json:"taints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -562,11 +562,11 @@ func (m *NodeConfig) GetTaints() []*NodeTaint {
 // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
 type NodeTaint struct {
 	// Key for taint.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// Value for taint.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Effect for taint.
-	Effect               NodeTaint_Effect `protobuf:"varint,3,opt,name=effect,enum=google.container.v1alpha1.NodeTaint_Effect" json:"effect,omitempty"`
+	Effect               NodeTaint_Effect `protobuf:"varint,3,opt,name=effect,proto3,enum=google.container.v1alpha1.NodeTaint_Effect" json:"effect,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -624,24 +624,24 @@ type MasterAuth struct {
 	// 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.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// 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.
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	// Configuration for client certificate authentication on the cluster.  If no
 	// configuration is specified, a client certificate is issued.
-	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig" json:"client_certificate_config,omitempty"`
+	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig,proto3" json:"client_certificate_config,omitempty"`
 	// [Output only] Base64-encoded public certificate that is the root of
 	// trust for the cluster.
-	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate" json:"cluster_ca_certificate,omitempty"`
+	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate,proto3" json:"cluster_ca_certificate,omitempty"`
 	// [Output only] Base64-encoded public certificate used by clients to
 	// authenticate to the cluster endpoint.
-	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate" json:"client_certificate,omitempty"`
+	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate,proto3" json:"client_certificate,omitempty"`
 	// [Output only] Base64-encoded private key used by clients to authenticate
 	// to the cluster endpoint.
-	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey" json:"client_key,omitempty"`
+	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -716,7 +716,7 @@ func (m *MasterAuth) GetClientKey() string {
 // Configuration for client certificates on the cluster.
 type ClientCertificateConfig struct {
 	// Issue a client certificate.
-	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate" json:"issue_client_certificate,omitempty"`
+	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate,proto3" json:"issue_client_certificate,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -758,17 +758,17 @@ func (m *ClientCertificateConfig) GetIssueClientCertificate() bool {
 type AddonsConfig struct {
 	// Configuration for the HTTP (L7) load balancing controller addon, which
 	// makes it easy to set up HTTP load balancers for services in a cluster.
-	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing" json:"http_load_balancing,omitempty"`
+	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing,proto3" json:"http_load_balancing,omitempty"`
 	// 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.
-	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling" json:"horizontal_pod_autoscaling,omitempty"`
+	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling,proto3" json:"horizontal_pod_autoscaling,omitempty"`
 	// Configuration for the Kubernetes Dashboard.
-	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard" json:"kubernetes_dashboard,omitempty"`
+	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard,proto3" json:"kubernetes_dashboard,omitempty"`
 	// Configuration for NetworkPolicy. This only tracks whether the addon
 	// is enabled or not on the Master, it does not track whether network policy
 	// is enabled for the nodes.
-	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig" json:"network_policy_config,omitempty"`
+	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig,proto3" json:"network_policy_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -832,7 +832,7 @@ type HttpLoadBalancing struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -876,7 +876,7 @@ type HorizontalPodAutoscaling struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -916,7 +916,7 @@ func (m *HorizontalPodAutoscaling) GetDisabled() bool {
 // Configuration for the Kubernetes Dashboard.
 type KubernetesDashboard struct {
 	// Whether the Kubernetes Dashboard is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -958,7 +958,7 @@ func (m *KubernetesDashboard) GetDisabled() bool {
 // is enabled for the nodes.
 type NetworkPolicyConfig struct {
 	// Whether NetworkPolicy is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1001,10 +1001,10 @@ func (m *NetworkPolicyConfig) GetDisabled() bool {
 // Google Compute Engine Public IPs and Google Prod IPs.
 type MasterAuthorizedNetworksConfig struct {
 	// Whether or not master authorized networks is enabled.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// cidr_blocks define up to 10 external networks that could access
 	// Kubernetes master through HTTPS.
-	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks" json:"cidr_blocks,omitempty"`
+	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks,proto3" json:"cidr_blocks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
 	XXX_unrecognized     []byte                                      `json:"-"`
 	XXX_sizecache        int32                                       `json:"-"`
@@ -1051,9 +1051,9 @@ func (m *MasterAuthorizedNetworksConfig) GetCidrBlocks() []*MasterAuthorizedNetw
 // CidrBlock contains an optional name and one CIDR block.
 type MasterAuthorizedNetworksConfig_CidrBlock struct {
 	// display_name is an optional field for users to identify CIDR blocks.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// cidr_block must be specified in CIDR notation.
-	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock" json:"cidr_block,omitempty"`
+	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1103,9 +1103,9 @@ func (m *MasterAuthorizedNetworksConfig_CidrBlock) GetCidrBlock() string {
 // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
 type NetworkPolicy struct {
 	// The selected network policy provider.
-	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,enum=google.container.v1alpha1.NetworkPolicy_Provider" json:"provider,omitempty"`
+	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,proto3,enum=google.container.v1alpha1.NetworkPolicy_Provider" json:"provider,omitempty"`
 	// Whether network policy is enabled on the cluster.
-	Enabled              bool     `protobuf:"varint,2,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1152,21 +1152,21 @@ func (m *NetworkPolicy) GetEnabled() bool {
 // Configuration for controlling how IPs are allocated in the cluster.
 type IPAllocationPolicy struct {
 	// Whether alias IPs will be used for pod IPs in the cluster.
-	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases" json:"use_ip_aliases,omitempty"`
+	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases,proto3" json:"use_ip_aliases,omitempty"`
 	// Whether a new subnetwork will be created automatically for the cluster.
 	//
 	// This field is only applicable when `use_ip_aliases` is true.
-	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork" json:"create_subnetwork,omitempty"`
+	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork,proto3" json:"create_subnetwork,omitempty"`
 	// A custom subnetwork name to be used if `create_subnetwork` is true.  If
 	// this field is empty, then an automatic name will be chosen for the new
 	// subnetwork.
-	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName" json:"subnetwork_name,omitempty"`
+	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName,proto3" json:"subnetwork_name,omitempty"`
 	// This field is deprecated, use cluster_ipv4_cidr_block.
-	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// This field is deprecated, use node_ipv4_cidr_block.
-	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr" json:"node_ipv4_cidr,omitempty"`
+	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr,proto3" json:"node_ipv4_cidr,omitempty"`
 	// This field is deprecated, use services_ipv4_cidr_block.
-	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// The name of the secondary range to be used for the cluster CIDR
 	// block.  The secondary range will be used for pod IP
 	// addresses. This must be an existing secondary range associated
@@ -1174,7 +1174,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable if use_ip_aliases is true and
 	// create_subnetwork is false.
-	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName" json:"cluster_secondary_range_name,omitempty"`
+	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName,proto3" json:"cluster_secondary_range_name,omitempty"`
 	// The name of the secondary range to be used as for the services
 	// CIDR block.  The secondary range will be used for service
 	// ClusterIPs. This must be an existing secondary range associated
@@ -1182,7 +1182,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable with use_ip_aliases is true and
 	// create_subnetwork is false.
-	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName" json:"services_secondary_range_name,omitempty"`
+	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName,proto3" json:"services_secondary_range_name,omitempty"`
 	// The IP address range for the cluster pod IPs. If this field is set, then
 	// `cluster.cluster_ipv4_cidr` must be left blank.
 	//
@@ -1198,7 +1198,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock" json:"cluster_ipv4_cidr_block,omitempty"`
+	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock,proto3" json:"cluster_ipv4_cidr_block,omitempty"`
 	// The IP address range of the instance IPs in this cluster.
 	//
 	// This is applicable only if `create_subnetwork` is true.
@@ -1213,7 +1213,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock" json:"node_ipv4_cidr_block,omitempty"`
+	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock,proto3" json:"node_ipv4_cidr_block,omitempty"`
 	// The IP address range of the services IPs in this cluster. If blank, a range
 	// will be automatically chosen with the default size.
 	//
@@ -1229,7 +1229,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock" json:"services_ipv4_cidr_block,omitempty"`
+	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
 	XXX_unrecognized      []byte   `json:"-"`
 	XXX_sizecache         int32    `json:"-"`
@@ -1340,7 +1340,7 @@ func (m *IPAllocationPolicy) GetServicesIpv4CidrBlock() string {
 type PodSecurityPolicyConfig struct {
 	// Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
 	// must be valid under a PodSecurityPolicy to be created.
-	Enabled              bool     `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1385,9 +1385,9 @@ type Cluster struct {
 	// * Lowercase letters, numbers, and hyphens only.
 	// * Must start with a letter.
 	// * Must end with a number or a letter.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional description of this cluster.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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
@@ -1396,7 +1396,7 @@ type Cluster struct {
 	// "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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// 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
@@ -1407,121 +1407,121 @@ type Cluster struct {
 	// the first node pool.
 	//
 	// If unspecified, the defaults are used.
-	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig" json:"node_config,omitempty"`
+	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"`
 	// The authentication information for accessing the master endpoint.
-	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth" json:"master_auth,omitempty"`
+	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth,proto3" json:"master_auth,omitempty"`
 	// 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.
-	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService" json:"logging_service,omitempty"`
+	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"`
 	// 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.
-	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService" json:"monitoring_service,omitempty"`
+	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"`
 	// 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.
-	Network string `protobuf:"bytes,8,opt,name=network" json:"network,omitempty"`
+	Network string `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
 	// 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`.
-	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig" json:"addons_config,omitempty"`
+	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"`
 	// The name of the Google Compute Engine
 	// [subnetwork](/compute/docs/subnetworks) to which the
 	// cluster is connected.
-	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork" json:"subnetwork,omitempty"`
+	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"`
 	// The node pools associated with this cluster.
 	// This field should not be set if "node_config" or "initial_node_count" are
 	// specified.
-	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	// The list of Google Compute Engine
 	// [locations](/compute/docs/zones#available) in which the cluster's nodes
 	// should be located.
-	Locations []string `protobuf:"bytes,13,rep,name=locations" json:"locations,omitempty"`
+	Locations []string `protobuf:"bytes,13,rep,name=locations,proto3" json:"locations,omitempty"`
 	// 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.
-	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha" json:"enable_kubernetes_alpha,omitempty"`
+	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha,proto3" json:"enable_kubernetes_alpha,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	// Configuration for cluster IP allocation.
-	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy" json:"ip_allocation_policy,omitempty"`
+	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy,proto3" json:"ip_allocation_policy,omitempty"`
 	// The configuration options for master authorized networks feature.
-	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig" json:"master_authorized_networks_config,omitempty"`
+	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig,proto3" json:"master_authorized_networks_config,omitempty"`
 	// Configure the maintenance policy for this cluster.
-	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	// Configuration for the PodSecurityPolicy feature.
-	PodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,25,opt,name=pod_security_policy_config,json=podSecurityPolicyConfig" json:"pod_security_policy_config,omitempty"`
+	PodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,25,opt,name=pod_security_policy_config,json=podSecurityPolicyConfig,proto3" json:"pod_security_policy_config,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use location instead.
-	Zone string `protobuf:"bytes,101,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,101,opt,name=zone,proto3" json:"zone,omitempty"`
 	// [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.
-	Endpoint string `protobuf:"bytes,102,opt,name=endpoint" json:"endpoint,omitempty"`
+	Endpoint string `protobuf:"bytes,102,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	// 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.
-	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion" json:"initial_cluster_version,omitempty"`
+	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion,proto3" json:"initial_cluster_version,omitempty"`
 	// [Output only] The current software version of the master endpoint.
-	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion" json:"current_master_version,omitempty"`
+	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion,proto3" json:"current_master_version,omitempty"`
 	// [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 string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion" json:"current_node_version,omitempty"`
+	CurrentNodeVersion string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion,proto3" json:"current_node_version,omitempty"`
 	// [Output only] The time the cluster was created, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// [Output only] The current status of this cluster.
-	Status Cluster_Status `protobuf:"varint,107,opt,name=status,enum=google.container.v1alpha1.Cluster_Status" json:"status,omitempty"`
+	Status Cluster_Status `protobuf:"varint,107,opt,name=status,proto3,enum=google.container.v1alpha1.Cluster_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// cluster, if available.
-	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// [Output only] The size of the address space on each node for hosting
 	// containers. This is provisioned from within the `container_ipv4_cidr`
 	// range.
-	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize" json:"node_ipv4_cidr_size,omitempty"`
+	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize,proto3" json:"node_ipv4_cidr_size,omitempty"`
 	// [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.
-	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// [Output only] The resource URLs of [instance
 	// groups](/compute/docs/instance-groups/) associated with this
 	// cluster.
-	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The number of nodes currently in the cluster.
-	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount" json:"current_node_count,omitempty"`
+	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount,proto3" json:"current_node_count,omitempty"`
 	// [Output only] The time the cluster will be automatically
 	// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	ExpireTime string `protobuf:"bytes,113,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime string `protobuf:"bytes,113,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/regions-zones/regions-zones#available) or
 	// [region](/compute/docs/regions-zones/regions-zones#available) in which
 	// the cluster resides.
-	Location             string   `protobuf:"bytes,114,opt,name=location" json:"location,omitempty"`
+	Location             string   `protobuf:"bytes,114,opt,name=location,proto3" json:"location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1796,28 +1796,28 @@ type ClusterUpdate struct {
 	// The Kubernetes version to change the nodes to (typically an
 	// upgrade). Use `-` to upgrade to the latest version supported by
 	// the server.
-	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion" json:"desired_node_version,omitempty"`
+	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion,proto3" json:"desired_node_version,omitempty"`
 	// 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
-	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService" json:"desired_monitoring_service,omitempty"`
+	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService,proto3" json:"desired_monitoring_service,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig" json:"desired_addons_config,omitempty"`
+	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig,proto3" json:"desired_addons_config,omitempty"`
 	// 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.
-	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId" json:"desired_node_pool_id,omitempty"`
+	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId,proto3" json:"desired_node_pool_id,omitempty"`
 	// The desired image type for the node pool.
 	// NOTE: Set the "desired_node_pool" field as well.
-	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType" json:"desired_image_type,omitempty"`
+	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType,proto3" json:"desired_image_type,omitempty"`
 	// 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.
-	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling" json:"desired_node_pool_autoscaling,omitempty"`
+	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling,proto3" json:"desired_node_pool_autoscaling,omitempty"`
 	// 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
@@ -1825,15 +1825,15 @@ type ClusterUpdate struct {
 	// whether locations are being added or removed.
 	//
 	// This list must always include the cluster's primary zone.
-	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations" json:"desired_locations,omitempty"`
+	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations,proto3" json:"desired_locations,omitempty"`
 	// The desired configuration options for master authorized networks feature.
-	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig" json:"desired_master_authorized_networks_config,omitempty"`
+	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig,proto3" json:"desired_master_authorized_networks_config,omitempty"`
 	// The desired configuration options for the PodSecurityPolicy feature.
-	DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,14,opt,name=desired_pod_security_policy_config,json=desiredPodSecurityPolicyConfig" json:"desired_pod_security_policy_config,omitempty"`
+	DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,14,opt,name=desired_pod_security_policy_config,json=desiredPodSecurityPolicyConfig,proto3" json:"desired_pod_security_policy_config,omitempty"`
 	// 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.
-	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion" json:"desired_master_version,omitempty"`
+	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion,proto3" json:"desired_master_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1937,35 +1937,35 @@ func (m *ClusterUpdate) GetDesiredMasterVersion() string {
 // happening on the cluster. All fields are output only.
 type Operation struct {
 	// The server-assigned ID for the operation.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation
 	// is taking place.
 	// This field is deprecated, use location instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The operation type.
-	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,enum=google.container.v1alpha1.Operation_Type" json:"operation_type,omitempty"`
+	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.container.v1alpha1.Operation_Type" json:"operation_type,omitempty"`
 	// The current status of the operation.
-	Status Operation_Status `protobuf:"varint,4,opt,name=status,enum=google.container.v1alpha1.Operation_Status" json:"status,omitempty"`
+	Status Operation_Status `protobuf:"varint,4,opt,name=status,proto3,enum=google.container.v1alpha1.Operation_Status" json:"status,omitempty"`
 	// Detailed operation progress, if available.
-	Detail string `protobuf:"bytes,8,opt,name=detail" json:"detail,omitempty"`
+	Detail string `protobuf:"bytes,8,opt,name=detail,proto3" json:"detail,omitempty"`
 	// If an error has occurred, a textual description of the error.
-	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// Server-defined URL for the target of the operation.
-	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink" json:"target_link,omitempty"`
+	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink,proto3" json:"target_link,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/regions-zones/regions-zones#available) or
 	// [region](/compute/docs/regions-zones/regions-zones#available) in which
 	// the cluster resides.
-	Location string `protobuf:"bytes,9,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,9,opt,name=location,proto3" json:"location,omitempty"`
 	// [Output only] The time the operation started, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] The time the operation completed, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2077,18 +2077,18 @@ type CreateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// A [cluster
 	// resource](/container-engine/reference/rest/v1alpha1/projects.zones.clusters)
-	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// The parent (project and location) where the cluster will be created.
 	// Specified in the format 'projects/*/locations/*'.
-	Parent               string   `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2151,18 +2151,18 @@ type GetClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to retrieve.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster) of the cluster to retrieve.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2225,20 +2225,20 @@ type UpdateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// A description of the update.
-	Update *ClusterUpdate `protobuf:"bytes,4,opt,name=update" json:"update,omitempty"`
+	Update *ClusterUpdate `protobuf:"bytes,4,opt,name=update,proto3" json:"update,omitempty"`
 	// The name (project, location, cluster) of the cluster to update.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2308,27 +2308,27 @@ type UpdateNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to upgrade.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The Kubernetes version to change the nodes to (typically an
 	// upgrade). Use `-` to upgrade to the latest version supported by
 	// the server.
-	NodeVersion string `protobuf:"bytes,5,opt,name=node_version,json=nodeVersion" json:"node_version,omitempty"`
+	NodeVersion string `protobuf:"bytes,5,opt,name=node_version,json=nodeVersion,proto3" json:"node_version,omitempty"`
 	// The desired image type for the node pool.
-	ImageType string `protobuf:"bytes,6,opt,name=image_type,json=imageType" json:"image_type,omitempty"`
+	ImageType string `protobuf:"bytes,6,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"`
 	// The name (project, location, cluster, node pool) of the node pool to update.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,8,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2412,24 +2412,24 @@ type SetNodePoolAutoscalingRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to upgrade.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// Autoscaling configuration for the node pool.
-	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,5,opt,name=autoscaling" json:"autoscaling,omitempty"`
+	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,5,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"`
 	// The name (project, location, cluster, node pool) of the node pool to set
 	// autoscaler settings. Specified in the format
 	// 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2506,23 +2506,23 @@ type SetLoggingServiceRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The logging service the cluster should use to write metrics.
 	// Currently available options:
 	//
 	// * "logging.googleapis.com" - the Google Cloud Logging service
 	// * "none" - no metrics will be exported from the cluster
-	LoggingService string `protobuf:"bytes,4,opt,name=logging_service,json=loggingService" json:"logging_service,omitempty"`
+	LoggingService string `protobuf:"bytes,4,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"`
 	// The name (project, location, cluster) of the cluster to set logging.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2592,24 +2592,24 @@ type SetMonitoringServiceRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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
-	MonitoringService string `protobuf:"bytes,4,opt,name=monitoring_service,json=monitoringService" json:"monitoring_service,omitempty"`
+	MonitoringService string `protobuf:"bytes,4,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"`
 	// The name (project, location, cluster) of the cluster to set monitoring.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2679,21 +2679,21 @@ type SetAddonsConfigRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The desired configurations for the various addons available to run in the
 	// cluster.
-	AddonsConfig *AddonsConfig `protobuf:"bytes,4,opt,name=addons_config,json=addonsConfig" json:"addons_config,omitempty"`
+	AddonsConfig *AddonsConfig `protobuf:"bytes,4,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"`
 	// The name (project, location, cluster) of the cluster to set addons.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2763,15 +2763,15 @@ type SetLocationsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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
@@ -2779,10 +2779,10 @@ type SetLocationsRequest struct {
 	// whether locations are being added or removed.
 	//
 	// This list must always include the cluster's primary zone.
-	Locations []string `protobuf:"bytes,4,rep,name=locations" json:"locations,omitempty"`
+	Locations []string `protobuf:"bytes,4,rep,name=locations,proto3" json:"locations,omitempty"`
 	// The name (project, location, cluster) of the cluster to set locations.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2851,22 +2851,22 @@ func (m *SetLocationsRequest) GetName() string {
 type UpdateMasterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// 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.
-	MasterVersion string `protobuf:"bytes,4,opt,name=master_version,json=masterVersion" json:"master_version,omitempty"`
+	MasterVersion string `protobuf:"bytes,4,opt,name=master_version,json=masterVersion,proto3" json:"master_version,omitempty"`
 	// The name (project, location, cluster) of the cluster to update.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2936,22 +2936,22 @@ type SetMasterAuthRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The exact form of action to be taken on the master auth.
-	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,enum=google.container.v1alpha1.SetMasterAuthRequest_Action" json:"action,omitempty"`
+	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,proto3,enum=google.container.v1alpha1.SetMasterAuthRequest_Action" json:"action,omitempty"`
 	// A description of the update.
-	Update *MasterAuth `protobuf:"bytes,5,opt,name=update" json:"update,omitempty"`
+	Update *MasterAuth `protobuf:"bytes,5,opt,name=update,proto3" json:"update,omitempty"`
 	// The name (project, location, cluster) of the cluster to set auth.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3028,18 +3028,18 @@ type DeleteClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to delete.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster) of the cluster to delete.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3102,16 +3102,16 @@ type ListClustersRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides, or "-" for all zones.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The parent (project and location) where the clusters will be listed.
 	// Specified in the format 'projects/*/locations/*'.
 	// Location "-" matches all zones and all regions.
-	Parent               string   `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3166,10 +3166,10 @@ func (m *ListClustersRequest) GetParent() string {
 type ListClustersResponse struct {
 	// A list of clusters in the project in the specified zone, or
 	// across all ones.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// If any zones are listed here, the list of clusters returned
 	// may be missing those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3218,18 +3218,18 @@ type GetOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
 	// This field is deprecated, use name instead.
-	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// The name (project, location, operation id) of the operation to get.
 	// Specified in the format 'projects/*/locations/*/operations/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3292,15 +3292,15 @@ type ListOperationsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for, or `-` for all zones.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The parent (project and location) where the operations will be listed.
 	// Specified in the format 'projects/*/locations/*'.
 	// Location "-" matches all zones and all regions.
-	Parent               string   `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3356,17 +3356,17 @@ type CancelOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
 	// This field is deprecated, use name instead.
-	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// The name (project, location, operation id) of the operation to cancel.
 	// Specified in the format 'projects/*/locations/*/operations/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3427,10 +3427,10 @@ func (m *CancelOperationRequest) GetName() string {
 // ListOperationsResponse is the result of ListOperationsRequest.
 type ListOperationsResponse struct {
 	// A list of operations in the project in the specified zone.
-	Operations []*Operation `protobuf:"bytes,1,rep,name=operations" json:"operations,omitempty"`
+	Operations []*Operation `protobuf:"bytes,1,rep,name=operations,proto3" json:"operations,omitempty"`
 	// If any zones are listed here, the list of operations returned
 	// may be missing the operations from those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3479,14 +3479,14 @@ type GetServerConfigRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name (project and location) of the server config to get
 	// Specified in the format 'projects/*/locations/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3540,15 +3540,15 @@ func (m *GetServerConfigRequest) GetName() string {
 // Container Engine service configuration.
 type ServerConfig struct {
 	// Version of Kubernetes the service deploys by default.
-	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion" json:"default_cluster_version,omitempty"`
+	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion,proto3" json:"default_cluster_version,omitempty"`
 	// List of valid node upgrade target versions.
-	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions" json:"valid_node_versions,omitempty"`
+	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions,proto3" json:"valid_node_versions,omitempty"`
 	// Default image type.
-	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType" json:"default_image_type,omitempty"`
+	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType,proto3" json:"default_image_type,omitempty"`
 	// List of valid image types.
-	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes" json:"valid_image_types,omitempty"`
+	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes,proto3" json:"valid_image_types,omitempty"`
 	// List of valid master versions.
-	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions" json:"valid_master_versions,omitempty"`
+	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions,proto3" json:"valid_master_versions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3618,20 +3618,20 @@ type CreateNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use parent instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The node pool to create.
-	NodePool *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool" json:"node_pool,omitempty"`
+	NodePool *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool,proto3" json:"node_pool,omitempty"`
 	// The parent (project, location, cluster id) where the node pool will be created.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Parent               string   `protobuf:"bytes,6,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,6,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3701,21 +3701,21 @@ type DeleteNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to delete.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to delete.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3785,18 +3785,18 @@ type ListNodePoolsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use parent instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The parent (project, location, cluster id) where the node pools will be listed.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Parent               string   `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3859,21 +3859,21 @@ type GetNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to get.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3946,32 +3946,32 @@ func (m *GetNodePoolRequest) GetName() string {
 // the workload.
 type NodePool struct {
 	// The name of the node pool.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The node configuration of the pool.
-	Config *NodeConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config *NodeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	// 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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// Autoscaler configuration for this NodePool. Autoscaler is enabled
 	// only if a valid configuration is present.
-	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling" json:"autoscaling,omitempty"`
+	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"`
 	// NodeManagement configuration for this NodePool.
-	Management *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// [Output only] The version of the Kubernetes of this node.
-	Version string `protobuf:"bytes,101,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,101,opt,name=version,proto3" json:"version,omitempty"`
 	// [Output only] The resource URLs of [instance
 	// groups](/compute/docs/instance-groups/) associated with this
 	// node pool.
-	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The status of the nodes in this pool instance.
-	Status NodePool_Status `protobuf:"varint,103,opt,name=status,enum=google.container.v1alpha1.NodePool_Status" json:"status,omitempty"`
+	Status NodePool_Status `protobuf:"varint,103,opt,name=status,proto3,enum=google.container.v1alpha1.NodePool_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// node pool instance, if available.
-	StatusMessage        string   `protobuf:"bytes,104,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage        string   `protobuf:"bytes,104,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4075,11 +4075,11 @@ func (m *NodePool) GetStatusMessage() string {
 // node pool.
 type NodeManagement struct {
 	// Whether the nodes will be automatically upgraded.
-	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade" json:"auto_upgrade,omitempty"`
+	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade,proto3" json:"auto_upgrade,omitempty"`
 	// Whether the nodes will be automatically repaired.
-	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair" json:"auto_repair,omitempty"`
+	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair,proto3" json:"auto_repair,omitempty"`
 	// Specifies the Auto Upgrade knobs for the node pool.
-	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions" json:"upgrade_options,omitempty"`
+	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions,proto3" json:"upgrade_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -4136,10 +4136,10 @@ type AutoUpgradeOptions struct {
 	// [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.
-	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime" json:"auto_upgrade_start_time,omitempty"`
+	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime,proto3" json:"auto_upgrade_start_time,omitempty"`
 	// [Output only] This field is set when upgrades are about to commence
 	// with the description of the upgrade.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4186,7 +4186,7 @@ func (m *AutoUpgradeOptions) GetDescription() string {
 // MaintenancePolicy defines the maintenance policy to be used for the cluster.
 type MaintenancePolicy struct {
 	// Specifies the maintenance window in which maintenance may be performed.
-	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window" json:"window,omitempty"`
+	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window,proto3" json:"window,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -4265,7 +4265,7 @@ type isMaintenanceWindow_Policy interface {
 }
 
 type MaintenanceWindow_DailyMaintenanceWindow struct {
-	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,oneof"`
+	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,proto3,oneof"`
 }
 
 func (*MaintenanceWindow_DailyMaintenanceWindow) isMaintenanceWindow_Policy() {}
@@ -4343,10 +4343,10 @@ func _MaintenanceWindow_OneofSizer(msg proto.Message) (n int) {
 type DailyMaintenanceWindow struct {
 	// Time within the maintenance window to start the maintenance operations.
 	// It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
-	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] Duration of the time window, automatically chosen to be
 	// smallest possible in the given scenario.
-	Duration             string   `protobuf:"bytes,3,opt,name=duration" json:"duration,omitempty"`
+	Duration             string   `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4396,24 +4396,24 @@ type SetNodePoolManagementRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to update.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// NodeManagement configuration for the node pool.
-	Management *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to set
 	// management properties. Specified in the format
 	// 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4490,24 +4490,24 @@ func (m *SetNodePoolManagementRequest) GetName() string {
 type SetNodePoolSizeRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to update.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The desired node count for the pool.
-	NodeCount int32 `protobuf:"varint,5,opt,name=node_count,json=nodeCount" json:"node_count,omitempty"`
+	NodeCount int32 `protobuf:"varint,5,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to set
 	// size.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4586,22 +4586,22 @@ type RollbackNodePoolUpgradeRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to rollback.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to rollback.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node poll to
 	// rollback upgrade.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4669,7 +4669,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetName() string {
 // ListNodePoolsResponse is the result of ListNodePoolsRequest.
 type ListNodePoolsResponse struct {
 	// A list of node pools for a cluster.
-	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -4710,13 +4710,13 @@ func (m *ListNodePoolsResponse) GetNodePools() []*NodePool {
 // adjust the size of the node pool to the current cluster usage.
 type NodePoolAutoscaling struct {
 	// Is autoscaling enabled for this node pool.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// Minimum number of nodes in the NodePool. Must be >= 1 and <=
 	// max_node_count.
-	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount" json:"min_node_count,omitempty"`
+	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount,proto3" json:"min_node_count,omitempty"`
 	// Maximum number of nodes in the NodePool. Must be >= min_node_count. There
 	// has to enough quota to scale up the cluster.
-	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount" json:"max_node_count,omitempty"`
+	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4774,27 +4774,27 @@ type SetLabelsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The labels to set for that cluster.
-	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LabelFingerprint string `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint" json:"label_fingerprint,omitempty"`
+	LabelFingerprint string `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint,proto3" json:"label_fingerprint,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set labels.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4872,20 +4872,20 @@ type SetLegacyAbacRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Whether ABAC authorization will be enabled in the cluster.
-	Enabled bool `protobuf:"varint,4,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set legacy abac.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4956,18 +4956,18 @@ type StartIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster id) of the cluster to start IP rotation.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5030,18 +5030,18 @@ type CompleteIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster id) of the cluster to complete IP rotation.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5102,10 +5102,10 @@ func (m *CompleteIPRotationRequest) GetName() string {
 // AcceleratorConfig represents a Hardware Accelerator request.
 type AcceleratorConfig struct {
 	// The number of the accelerator cards exposed to an instance.
-	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount" json:"accelerator_count,omitempty"`
+	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
 	// The accelerator type resource name. List of supported accelerators
 	// [here](/compute/docs/gpus/#Introduction)
-	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType" json:"accelerator_type,omitempty"`
+	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5154,21 +5154,21 @@ type SetNetworkPolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set networking
 	// policy.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5237,20 +5237,20 @@ func (m *SetNetworkPolicyRequest) GetName() string {
 type SetMaintenancePolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The maintenance policy to be set for the cluster. An empty field
 	// clears the existing maintenance policy.
-	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set maintenance
 	// policy.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5764,8 +5764,7 @@ func (c *clusterManagerClient) SetMaintenancePolicy(ctx context.Context, in *Set
 	return out, nil
 }
 
-// Server API for ClusterManager service
-
+// ClusterManagerServer is the server API for ClusterManager service.
 type ClusterManagerServer interface {
 	// Lists all clusters owned by a project in either the specified zone or all
 	// zones.
diff --git a/googleapis/container/v1beta1/cluster_service.pb.go b/googleapis/container/v1beta1/cluster_service.pb.go
index f070e3400d2cf02e728a214965e4a88e922a948a..698dd1c126d0d74f113fd1d4020f23257235c148 100644
--- a/googleapis/container/v1beta1/cluster_service.pb.go
+++ b/googleapis/container/v1beta1/cluster_service.pb.go
@@ -353,12 +353,12 @@ type NodeConfig struct {
 	//
 	// If unspecified, the default machine type is
 	// `n1-standard-1`.
-	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"`
+	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
 	// 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.
-	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb" json:"disk_size_gb,omitempty"`
+	DiskSizeGb int32 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"`
 	// The set of Google API scopes to be made available on all of the
 	// node VMs under the "default" service account.
 	//
@@ -373,10 +373,10 @@ type NodeConfig struct {
 	//
 	// If unspecified, no scopes are added, unless Cloud Logging or Cloud
 	// Monitoring are enabled, in which case their required scopes will be added.
-	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes" json:"oauth_scopes,omitempty"`
+	OauthScopes []string `protobuf:"bytes,3,rep,name=oauth_scopes,json=oauthScopes,proto3" json:"oauth_scopes,omitempty"`
 	// 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.
-	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// 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
@@ -390,10 +390,10 @@ type NodeConfig struct {
 	// 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.
-	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The image type to use for this node. Note that for a given image type,
 	// the latest version of it will be used.
-	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType" json:"image_type,omitempty"`
+	ImageType string `protobuf:"bytes,5,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"`
 	// 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.
@@ -402,39 +402,39 @@ type NodeConfig struct {
 	// and conflicts should be avoided.
 	// For more information, including usage and the valid values, see:
 	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
-	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount" json:"local_ssd_count,omitempty"`
+	LocalSsdCount int32 `protobuf:"varint,7,opt,name=local_ssd_count,json=localSsdCount,proto3" json:"local_ssd_count,omitempty"`
 	// 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.
-	Tags []string `protobuf:"bytes,8,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"`
 	// 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.
-	Preemptible bool `protobuf:"varint,10,opt,name=preemptible" json:"preemptible,omitempty"`
+	Preemptible bool `protobuf:"varint,10,opt,name=preemptible,proto3" json:"preemptible,omitempty"`
 	// A list of hardware accelerators to be attached to each node.
 	// See https://cloud.google.com/compute/docs/gpus for more information about
 	// support for GPUs.
-	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators" json:"accelerators,omitempty"`
+	Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
 	// Minimum CPU platform to be used by this instance. The instance may be
 	// scheduled on the specified or newer CPU platform. Applicable values are the
 	// friendly names of CPU platforms, such as
 	// <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
 	// <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
 	// information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
-	MinCpuPlatform string `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform" json:"min_cpu_platform,omitempty"`
+	MinCpuPlatform string `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
 	// List of kubernetes taints to be applied to each node.
 	//
 	// For more information, including usage and the valid values, see:
 	// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-	Taints               []*NodeTaint `protobuf:"bytes,15,rep,name=taints" json:"taints,omitempty"`
+	Taints               []*NodeTaint `protobuf:"bytes,15,rep,name=taints,proto3" json:"taints,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -562,11 +562,11 @@ func (m *NodeConfig) GetTaints() []*NodeTaint {
 // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
 type NodeTaint struct {
 	// Key for taint.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// Value for taint.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// Effect for taint.
-	Effect               NodeTaint_Effect `protobuf:"varint,3,opt,name=effect,enum=google.container.v1beta1.NodeTaint_Effect" json:"effect,omitempty"`
+	Effect               NodeTaint_Effect `protobuf:"varint,3,opt,name=effect,proto3,enum=google.container.v1beta1.NodeTaint_Effect" json:"effect,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -624,24 +624,24 @@ type MasterAuth struct {
 	// 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.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// 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.
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	// Configuration for client certificate authentication on the cluster.  If no
 	// configuration is specified, a client certificate is issued.
-	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig" json:"client_certificate_config,omitempty"`
+	ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig,proto3" json:"client_certificate_config,omitempty"`
 	// [Output only] Base64-encoded public certificate that is the root of
 	// trust for the cluster.
-	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate" json:"cluster_ca_certificate,omitempty"`
+	ClusterCaCertificate string `protobuf:"bytes,100,opt,name=cluster_ca_certificate,json=clusterCaCertificate,proto3" json:"cluster_ca_certificate,omitempty"`
 	// [Output only] Base64-encoded public certificate used by clients to
 	// authenticate to the cluster endpoint.
-	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate" json:"client_certificate,omitempty"`
+	ClientCertificate string `protobuf:"bytes,101,opt,name=client_certificate,json=clientCertificate,proto3" json:"client_certificate,omitempty"`
 	// [Output only] Base64-encoded private key used by clients to authenticate
 	// to the cluster endpoint.
-	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey" json:"client_key,omitempty"`
+	ClientKey            string   `protobuf:"bytes,102,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -716,7 +716,7 @@ func (m *MasterAuth) GetClientKey() string {
 // Configuration for client certificates on the cluster.
 type ClientCertificateConfig struct {
 	// Issue a client certificate.
-	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate" json:"issue_client_certificate,omitempty"`
+	IssueClientCertificate bool     `protobuf:"varint,1,opt,name=issue_client_certificate,json=issueClientCertificate,proto3" json:"issue_client_certificate,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -758,17 +758,17 @@ func (m *ClientCertificateConfig) GetIssueClientCertificate() bool {
 type AddonsConfig struct {
 	// Configuration for the HTTP (L7) load balancing controller addon, which
 	// makes it easy to set up HTTP load balancers for services in a cluster.
-	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing" json:"http_load_balancing,omitempty"`
+	HttpLoadBalancing *HttpLoadBalancing `protobuf:"bytes,1,opt,name=http_load_balancing,json=httpLoadBalancing,proto3" json:"http_load_balancing,omitempty"`
 	// 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.
-	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling" json:"horizontal_pod_autoscaling,omitempty"`
+	HorizontalPodAutoscaling *HorizontalPodAutoscaling `protobuf:"bytes,2,opt,name=horizontal_pod_autoscaling,json=horizontalPodAutoscaling,proto3" json:"horizontal_pod_autoscaling,omitempty"`
 	// Configuration for the Kubernetes Dashboard.
-	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard" json:"kubernetes_dashboard,omitempty"`
+	KubernetesDashboard *KubernetesDashboard `protobuf:"bytes,3,opt,name=kubernetes_dashboard,json=kubernetesDashboard,proto3" json:"kubernetes_dashboard,omitempty"`
 	// Configuration for NetworkPolicy. This only tracks whether the addon
 	// is enabled or not on the Master, it does not track whether network policy
 	// is enabled for the nodes.
-	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig" json:"network_policy_config,omitempty"`
+	NetworkPolicyConfig  *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig,proto3" json:"network_policy_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -832,7 +832,7 @@ type HttpLoadBalancing struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -876,7 +876,7 @@ type HorizontalPodAutoscaling struct {
 	// 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.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -916,7 +916,7 @@ func (m *HorizontalPodAutoscaling) GetDisabled() bool {
 // Configuration for the Kubernetes Dashboard.
 type KubernetesDashboard struct {
 	// Whether the Kubernetes Dashboard is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -958,7 +958,7 @@ func (m *KubernetesDashboard) GetDisabled() bool {
 // is enabled for the nodes.
 type NetworkPolicyConfig struct {
 	// Whether NetworkPolicy is enabled for this cluster.
-	Disabled             bool     `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1001,10 +1001,10 @@ func (m *NetworkPolicyConfig) GetDisabled() bool {
 // Google Compute Engine Public IPs and Google Prod IPs.
 type MasterAuthorizedNetworksConfig struct {
 	// Whether or not master authorized networks is enabled.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// cidr_blocks define up to 10 external networks that could access
 	// Kubernetes master through HTTPS.
-	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks" json:"cidr_blocks,omitempty"`
+	CidrBlocks           []*MasterAuthorizedNetworksConfig_CidrBlock `protobuf:"bytes,2,rep,name=cidr_blocks,json=cidrBlocks,proto3" json:"cidr_blocks,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
 	XXX_unrecognized     []byte                                      `json:"-"`
 	XXX_sizecache        int32                                       `json:"-"`
@@ -1051,9 +1051,9 @@ func (m *MasterAuthorizedNetworksConfig) GetCidrBlocks() []*MasterAuthorizedNetw
 // CidrBlock contains an optional name and one CIDR block.
 type MasterAuthorizedNetworksConfig_CidrBlock struct {
 	// display_name is an optional field for users to identify CIDR blocks.
-	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// cidr_block must be specified in CIDR notation.
-	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock" json:"cidr_block,omitempty"`
+	CidrBlock            string   `protobuf:"bytes,2,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1103,9 +1103,9 @@ func (m *MasterAuthorizedNetworksConfig_CidrBlock) GetCidrBlock() string {
 // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
 type NetworkPolicy struct {
 	// The selected network policy provider.
-	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,enum=google.container.v1beta1.NetworkPolicy_Provider" json:"provider,omitempty"`
+	Provider NetworkPolicy_Provider `protobuf:"varint,1,opt,name=provider,proto3,enum=google.container.v1beta1.NetworkPolicy_Provider" json:"provider,omitempty"`
 	// Whether network policy is enabled on the cluster.
-	Enabled              bool     `protobuf:"varint,2,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1152,21 +1152,21 @@ func (m *NetworkPolicy) GetEnabled() bool {
 // Configuration for controlling how IPs are allocated in the cluster.
 type IPAllocationPolicy struct {
 	// Whether alias IPs will be used for pod IPs in the cluster.
-	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases" json:"use_ip_aliases,omitempty"`
+	UseIpAliases bool `protobuf:"varint,1,opt,name=use_ip_aliases,json=useIpAliases,proto3" json:"use_ip_aliases,omitempty"`
 	// Whether a new subnetwork will be created automatically for the cluster.
 	//
 	// This field is only applicable when `use_ip_aliases` is true.
-	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork" json:"create_subnetwork,omitempty"`
+	CreateSubnetwork bool `protobuf:"varint,2,opt,name=create_subnetwork,json=createSubnetwork,proto3" json:"create_subnetwork,omitempty"`
 	// A custom subnetwork name to be used if `create_subnetwork` is true.  If
 	// this field is empty, then an automatic name will be chosen for the new
 	// subnetwork.
-	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName" json:"subnetwork_name,omitempty"`
+	SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName,proto3" json:"subnetwork_name,omitempty"`
 	// This field is deprecated, use cluster_ipv4_cidr_block.
-	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// This field is deprecated, use node_ipv4_cidr_block.
-	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr" json:"node_ipv4_cidr,omitempty"`
+	NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr,proto3" json:"node_ipv4_cidr,omitempty"`
 	// This field is deprecated, use services_ipv4_cidr_block.
-	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// The name of the secondary range to be used for the cluster CIDR
 	// block.  The secondary range will be used for pod IP
 	// addresses. This must be an existing secondary range associated
@@ -1174,7 +1174,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable with use_ip_aliases and
 	// create_subnetwork is false.
-	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName" json:"cluster_secondary_range_name,omitempty"`
+	ClusterSecondaryRangeName string `protobuf:"bytes,7,opt,name=cluster_secondary_range_name,json=clusterSecondaryRangeName,proto3" json:"cluster_secondary_range_name,omitempty"`
 	// The name of the secondary range to be used as for the services
 	// CIDR block.  The secondary range will be used for service
 	// ClusterIPs. This must be an existing secondary range associated
@@ -1182,7 +1182,7 @@ type IPAllocationPolicy struct {
 	//
 	// This field is only applicable with use_ip_aliases and
 	// create_subnetwork is false.
-	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName" json:"services_secondary_range_name,omitempty"`
+	ServicesSecondaryRangeName string `protobuf:"bytes,8,opt,name=services_secondary_range_name,json=servicesSecondaryRangeName,proto3" json:"services_secondary_range_name,omitempty"`
 	// The IP address range for the cluster pod IPs. If this field is set, then
 	// `cluster.cluster_ipv4_cidr` must be left blank.
 	//
@@ -1198,7 +1198,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock" json:"cluster_ipv4_cidr_block,omitempty"`
+	ClusterIpv4CidrBlock string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr_block,json=clusterIpv4CidrBlock,proto3" json:"cluster_ipv4_cidr_block,omitempty"`
 	// The IP address range of the instance IPs in this cluster.
 	//
 	// This is applicable only if `create_subnetwork` is true.
@@ -1213,7 +1213,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock" json:"node_ipv4_cidr_block,omitempty"`
+	NodeIpv4CidrBlock string `protobuf:"bytes,10,opt,name=node_ipv4_cidr_block,json=nodeIpv4CidrBlock,proto3" json:"node_ipv4_cidr_block,omitempty"`
 	// The IP address range of the services IPs in this cluster. If blank, a range
 	// will be automatically chosen with the default size.
 	//
@@ -1229,7 +1229,7 @@ type IPAllocationPolicy struct {
 	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
 	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
 	// to use.
-	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock" json:"services_ipv4_cidr_block,omitempty"`
+	ServicesIpv4CidrBlock string   `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"`
 	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
 	XXX_unrecognized      []byte   `json:"-"`
 	XXX_sizecache         int32    `json:"-"`
@@ -1340,7 +1340,7 @@ func (m *IPAllocationPolicy) GetServicesIpv4CidrBlock() string {
 type PodSecurityPolicyConfig struct {
 	// Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
 	// must be valid under a PodSecurityPolicy to be created.
-	Enabled              bool     `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1385,9 +1385,9 @@ type Cluster struct {
 	// * Lowercase letters, numbers, and hyphens only.
 	// * Must start with a letter.
 	// * Must end with a number or a letter.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional description of this cluster.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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
@@ -1396,7 +1396,7 @@ type Cluster struct {
 	// "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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// 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
@@ -1407,121 +1407,121 @@ type Cluster struct {
 	// the first node pool.
 	//
 	// If unspecified, the defaults are used.
-	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig" json:"node_config,omitempty"`
+	NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"`
 	// The authentication information for accessing the master endpoint.
-	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth" json:"master_auth,omitempty"`
+	MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth,proto3" json:"master_auth,omitempty"`
 	// 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.
-	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService" json:"logging_service,omitempty"`
+	LoggingService string `protobuf:"bytes,6,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"`
 	// 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.
-	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService" json:"monitoring_service,omitempty"`
+	MonitoringService string `protobuf:"bytes,7,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"`
 	// 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.
-	Network string `protobuf:"bytes,8,opt,name=network" json:"network,omitempty"`
+	Network string `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
 	// 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`.
-	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr" json:"cluster_ipv4_cidr,omitempty"`
+	ClusterIpv4Cidr string `protobuf:"bytes,9,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig" json:"addons_config,omitempty"`
+	AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"`
 	// The name of the Google Compute Engine
 	// [subnetwork](/compute/docs/subnetworks) to which the
 	// cluster is connected.
-	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork" json:"subnetwork,omitempty"`
+	Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"`
 	// The node pools associated with this cluster.
 	// This field should not be set if "node_config" or "initial_node_count" are
 	// specified.
-	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	// The list of Google Compute Engine
 	// [locations](/compute/docs/zones#available) in which the cluster's nodes
 	// should be located.
-	Locations []string `protobuf:"bytes,13,rep,name=locations" json:"locations,omitempty"`
+	Locations []string `protobuf:"bytes,13,rep,name=locations,proto3" json:"locations,omitempty"`
 	// Kubernetes alpha features are enabled on this cluster. This includes alpha
 	// API groups (e.g. v1beta1) 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.
-	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha" json:"enable_kubernetes_alpha,omitempty"`
+	EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha,proto3" json:"enable_kubernetes_alpha,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	// Configuration for cluster IP allocation.
-	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy" json:"ip_allocation_policy,omitempty"`
+	IpAllocationPolicy *IPAllocationPolicy `protobuf:"bytes,20,opt,name=ip_allocation_policy,json=ipAllocationPolicy,proto3" json:"ip_allocation_policy,omitempty"`
 	// The configuration options for master authorized networks feature.
-	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig" json:"master_authorized_networks_config,omitempty"`
+	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig,proto3" json:"master_authorized_networks_config,omitempty"`
 	// Configure the maintenance policy for this cluster.
-	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	// Configuration for the PodSecurityPolicy feature.
-	PodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,25,opt,name=pod_security_policy_config,json=podSecurityPolicyConfig" json:"pod_security_policy_config,omitempty"`
+	PodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,25,opt,name=pod_security_policy_config,json=podSecurityPolicyConfig,proto3" json:"pod_security_policy_config,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use location instead.
-	Zone string `protobuf:"bytes,101,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,101,opt,name=zone,proto3" json:"zone,omitempty"`
 	// [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.
-	Endpoint string `protobuf:"bytes,102,opt,name=endpoint" json:"endpoint,omitempty"`
+	Endpoint string `protobuf:"bytes,102,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	// 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.
-	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion" json:"initial_cluster_version,omitempty"`
+	InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion,proto3" json:"initial_cluster_version,omitempty"`
 	// [Output only] The current software version of the master endpoint.
-	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion" json:"current_master_version,omitempty"`
+	CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion,proto3" json:"current_master_version,omitempty"`
 	// [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 string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion" json:"current_node_version,omitempty"`
+	CurrentNodeVersion string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion,proto3" json:"current_node_version,omitempty"`
 	// [Output only] The time the cluster was created, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// [Output only] The current status of this cluster.
-	Status Cluster_Status `protobuf:"varint,107,opt,name=status,enum=google.container.v1beta1.Cluster_Status" json:"status,omitempty"`
+	Status Cluster_Status `protobuf:"varint,107,opt,name=status,proto3,enum=google.container.v1beta1.Cluster_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// cluster, if available.
-	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,108,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// [Output only] The size of the address space on each node for hosting
 	// containers. This is provisioned from within the `container_ipv4_cidr`
 	// range.
-	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize" json:"node_ipv4_cidr_size,omitempty"`
+	NodeIpv4CidrSize int32 `protobuf:"varint,109,opt,name=node_ipv4_cidr_size,json=nodeIpv4CidrSize,proto3" json:"node_ipv4_cidr_size,omitempty"`
 	// [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.
-	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr" json:"services_ipv4_cidr,omitempty"`
+	ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"`
 	// [Output only] The resource URLs of [instance
 	// groups](/compute/docs/instance-groups/) associated with this
 	// cluster.
-	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The number of nodes currently in the cluster.
-	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount" json:"current_node_count,omitempty"`
+	CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount,proto3" json:"current_node_count,omitempty"`
 	// [Output only] The time the cluster will be automatically
 	// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	ExpireTime string `protobuf:"bytes,113,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime string `protobuf:"bytes,113,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/regions-zones/regions-zones#available) or
 	// [region](/compute/docs/regions-zones/regions-zones#available) in which
 	// the cluster resides.
-	Location             string   `protobuf:"bytes,114,opt,name=location" json:"location,omitempty"`
+	Location             string   `protobuf:"bytes,114,opt,name=location,proto3" json:"location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1796,28 +1796,28 @@ type ClusterUpdate struct {
 	// The Kubernetes version to change the nodes to (typically an
 	// upgrade). Use `-` to upgrade to the latest version supported by
 	// the server.
-	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion" json:"desired_node_version,omitempty"`
+	DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion,proto3" json:"desired_node_version,omitempty"`
 	// 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
-	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService" json:"desired_monitoring_service,omitempty"`
+	DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService,proto3" json:"desired_monitoring_service,omitempty"`
 	// Configurations for the various addons available to run in the cluster.
-	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig" json:"desired_addons_config,omitempty"`
+	DesiredAddonsConfig *AddonsConfig `protobuf:"bytes,6,opt,name=desired_addons_config,json=desiredAddonsConfig,proto3" json:"desired_addons_config,omitempty"`
 	// 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.
-	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId" json:"desired_node_pool_id,omitempty"`
+	DesiredNodePoolId string `protobuf:"bytes,7,opt,name=desired_node_pool_id,json=desiredNodePoolId,proto3" json:"desired_node_pool_id,omitempty"`
 	// The desired image type for the node pool.
 	// NOTE: Set the "desired_node_pool" field as well.
-	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType" json:"desired_image_type,omitempty"`
+	DesiredImageType string `protobuf:"bytes,8,opt,name=desired_image_type,json=desiredImageType,proto3" json:"desired_image_type,omitempty"`
 	// 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.
-	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling" json:"desired_node_pool_autoscaling,omitempty"`
+	DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling,proto3" json:"desired_node_pool_autoscaling,omitempty"`
 	// 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
@@ -1825,15 +1825,15 @@ type ClusterUpdate struct {
 	// whether locations are being added or removed.
 	//
 	// This list must always include the cluster's primary zone.
-	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations" json:"desired_locations,omitempty"`
+	DesiredLocations []string `protobuf:"bytes,10,rep,name=desired_locations,json=desiredLocations,proto3" json:"desired_locations,omitempty"`
 	// The desired configuration options for master authorized networks feature.
-	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig" json:"desired_master_authorized_networks_config,omitempty"`
+	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig,proto3" json:"desired_master_authorized_networks_config,omitempty"`
 	// The desired configuration options for the PodSecurityPolicy feature.
-	DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,14,opt,name=desired_pod_security_policy_config,json=desiredPodSecurityPolicyConfig" json:"desired_pod_security_policy_config,omitempty"`
+	DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,14,opt,name=desired_pod_security_policy_config,json=desiredPodSecurityPolicyConfig,proto3" json:"desired_pod_security_policy_config,omitempty"`
 	// 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.
-	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion" json:"desired_master_version,omitempty"`
+	DesiredMasterVersion string   `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion,proto3" json:"desired_master_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1937,35 +1937,35 @@ func (m *ClusterUpdate) GetDesiredMasterVersion() string {
 // happening on the cluster. All fields are output only.
 type Operation struct {
 	// The server-assigned ID for the operation.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation
 	// is taking place.
 	// This field is deprecated, use location instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The operation type.
-	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,enum=google.container.v1beta1.Operation_Type" json:"operation_type,omitempty"`
+	OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.container.v1beta1.Operation_Type" json:"operation_type,omitempty"`
 	// The current status of the operation.
-	Status Operation_Status `protobuf:"varint,4,opt,name=status,enum=google.container.v1beta1.Operation_Status" json:"status,omitempty"`
+	Status Operation_Status `protobuf:"varint,4,opt,name=status,proto3,enum=google.container.v1beta1.Operation_Status" json:"status,omitempty"`
 	// Detailed operation progress, if available.
-	Detail string `protobuf:"bytes,8,opt,name=detail" json:"detail,omitempty"`
+	Detail string `protobuf:"bytes,8,opt,name=detail,proto3" json:"detail,omitempty"`
 	// If an error has occurred, a textual description of the error.
-	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,6,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// Server-defined URL for the target of the operation.
-	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink" json:"target_link,omitempty"`
+	TargetLink string `protobuf:"bytes,7,opt,name=target_link,json=targetLink,proto3" json:"target_link,omitempty"`
 	// [Output only] The name of the Google Compute Engine
 	// [zone](/compute/docs/regions-zones/regions-zones#available) or
 	// [region](/compute/docs/regions-zones/regions-zones#available) in which
 	// the cluster resides.
-	Location string `protobuf:"bytes,9,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,9,opt,name=location,proto3" json:"location,omitempty"`
 	// [Output only] The time the operation started, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] The time the operation completed, in
 	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              string   `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2077,18 +2077,18 @@ type CreateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// A [cluster
 	// resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)
-	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster" json:"cluster,omitempty"`
+	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
 	// The parent (project and location) where the cluster will be created.
 	// Specified in the format 'projects/*/locations/*'.
-	Parent               string   `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2151,18 +2151,18 @@ type GetClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to retrieve.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster) of the cluster to retrieve.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2225,20 +2225,20 @@ type UpdateClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// A description of the update.
-	Update *ClusterUpdate `protobuf:"bytes,4,opt,name=update" json:"update,omitempty"`
+	Update *ClusterUpdate `protobuf:"bytes,4,opt,name=update,proto3" json:"update,omitempty"`
 	// The name (project, location, cluster) of the cluster to update.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2308,22 +2308,22 @@ type SetMasterAuthRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to upgrade.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The exact form of action to be taken on the master auth.
-	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,enum=google.container.v1beta1.SetMasterAuthRequest_Action" json:"action,omitempty"`
+	Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,proto3,enum=google.container.v1beta1.SetMasterAuthRequest_Action" json:"action,omitempty"`
 	// A description of the update.
-	Update *MasterAuth `protobuf:"bytes,5,opt,name=update" json:"update,omitempty"`
+	Update *MasterAuth `protobuf:"bytes,5,opt,name=update,proto3" json:"update,omitempty"`
 	// The name (project, location, cluster) of the cluster to set auth.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2400,18 +2400,18 @@ type DeleteClusterRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to delete.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster) of the cluster to delete.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2474,16 +2474,16 @@ type ListClustersRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides, or "-" for all zones.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The parent (project and location) where the clusters will be listed.
 	// Specified in the format 'projects/*/locations/*'.
 	// Location "-" matches all zones and all regions.
-	Parent               string   `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2538,10 +2538,10 @@ func (m *ListClustersRequest) GetParent() string {
 type ListClustersResponse struct {
 	// A list of clusters in the project in the specified zone, or
 	// across all ones.
-	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters" json:"clusters,omitempty"`
+	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	// If any zones are listed here, the list of clusters returned
 	// may be missing those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2590,18 +2590,18 @@ type GetOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
 	// This field is deprecated, use name instead.
-	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// The name (project, location, operation id) of the operation to get.
 	// Specified in the format 'projects/*/locations/*/operations/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2664,15 +2664,15 @@ type ListOperationsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for, or `-` for all zones.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The parent (project and location) where the operations will be listed.
 	// Specified in the format 'projects/*/locations/*'.
 	// Location "-" matches all zones and all regions.
-	Parent               string   `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2728,17 +2728,17 @@ type CancelOperationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the operation resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The server-assigned `name` of the operation.
 	// This field is deprecated, use name instead.
-	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// The name (project, location, operation id) of the operation to cancel.
 	// Specified in the format 'projects/*/locations/*/operations/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2799,10 +2799,10 @@ func (m *CancelOperationRequest) GetName() string {
 // ListOperationsResponse is the result of ListOperationsRequest.
 type ListOperationsResponse struct {
 	// A list of operations in the project in the specified zone.
-	Operations []*Operation `protobuf:"bytes,1,rep,name=operations" json:"operations,omitempty"`
+	Operations []*Operation `protobuf:"bytes,1,rep,name=operations,proto3" json:"operations,omitempty"`
 	// If any zones are listed here, the list of operations returned
 	// may be missing the operations from those zones.
-	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones" json:"missing_zones,omitempty"`
+	MissingZones         []string `protobuf:"bytes,2,rep,name=missing_zones,json=missingZones,proto3" json:"missing_zones,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2851,14 +2851,14 @@ type GetServerConfigRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine [zone](/compute/docs/zones#available)
 	// to return operations for.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name (project and location) of the server config to get
 	// Specified in the format 'projects/*/locations/*'.
-	Name                 string   `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2912,15 +2912,15 @@ func (m *GetServerConfigRequest) GetName() string {
 // Container Engine service configuration.
 type ServerConfig struct {
 	// Version of Kubernetes the service deploys by default.
-	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion" json:"default_cluster_version,omitempty"`
+	DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion,proto3" json:"default_cluster_version,omitempty"`
 	// List of valid node upgrade target versions.
-	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions" json:"valid_node_versions,omitempty"`
+	ValidNodeVersions []string `protobuf:"bytes,3,rep,name=valid_node_versions,json=validNodeVersions,proto3" json:"valid_node_versions,omitempty"`
 	// Default image type.
-	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType" json:"default_image_type,omitempty"`
+	DefaultImageType string `protobuf:"bytes,4,opt,name=default_image_type,json=defaultImageType,proto3" json:"default_image_type,omitempty"`
 	// List of valid image types.
-	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes" json:"valid_image_types,omitempty"`
+	ValidImageTypes []string `protobuf:"bytes,5,rep,name=valid_image_types,json=validImageTypes,proto3" json:"valid_image_types,omitempty"`
 	// List of valid master versions.
-	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions" json:"valid_master_versions,omitempty"`
+	ValidMasterVersions  []string `protobuf:"bytes,6,rep,name=valid_master_versions,json=validMasterVersions,proto3" json:"valid_master_versions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2990,20 +2990,20 @@ type CreateNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use parent instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The node pool to create.
-	NodePool *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool" json:"node_pool,omitempty"`
+	NodePool *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool,proto3" json:"node_pool,omitempty"`
 	// The parent (project, location, cluster id) where the node pool will be created.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Parent               string   `protobuf:"bytes,6,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,6,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3073,21 +3073,21 @@ type DeleteNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to delete.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to delete.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3157,18 +3157,18 @@ type ListNodePoolsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use parent instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use parent instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use parent instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The parent (project, location, cluster id) where the node pools will be listed.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Parent               string   `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent               string   `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3231,21 +3231,21 @@ type GetNodePoolRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to get.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3318,32 +3318,32 @@ func (m *GetNodePoolRequest) GetName() string {
 // the workload.
 type NodePool struct {
 	// The name of the node pool.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The node configuration of the pool.
-	Config *NodeConfig `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config *NodeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	// 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.
-	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount" json:"initial_node_count,omitempty"`
+	InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"`
 	// [Output only] Server-defined URL for the resource.
-	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink" json:"self_link,omitempty"`
+	SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"`
 	// [Output only] The version of the Kubernetes of this node.
-	Version string `protobuf:"bytes,101,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,101,opt,name=version,proto3" json:"version,omitempty"`
 	// [Output only] The resource URLs of [instance
 	// groups](/compute/docs/instance-groups/) associated with this
 	// node pool.
-	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls" json:"instance_group_urls,omitempty"`
+	InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"`
 	// [Output only] The status of the nodes in this pool instance.
-	Status NodePool_Status `protobuf:"varint,103,opt,name=status,enum=google.container.v1beta1.NodePool_Status" json:"status,omitempty"`
+	Status NodePool_Status `protobuf:"varint,103,opt,name=status,proto3,enum=google.container.v1beta1.NodePool_Status" json:"status,omitempty"`
 	// [Output only] Additional information about the current status of this
 	// node pool instance, if available.
-	StatusMessage string `protobuf:"bytes,104,opt,name=status_message,json=statusMessage" json:"status_message,omitempty"`
+	StatusMessage string `protobuf:"bytes,104,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
 	// Autoscaler configuration for this NodePool. Autoscaler is enabled
 	// only if a valid configuration is present.
-	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling" json:"autoscaling,omitempty"`
+	Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"`
 	// NodeManagement configuration for this NodePool.
-	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management           *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -3447,11 +3447,11 @@ func (m *NodePool) GetManagement() *NodeManagement {
 // node pool.
 type NodeManagement struct {
 	// Whether the nodes will be automatically upgraded.
-	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade" json:"auto_upgrade,omitempty"`
+	AutoUpgrade bool `protobuf:"varint,1,opt,name=auto_upgrade,json=autoUpgrade,proto3" json:"auto_upgrade,omitempty"`
 	// Whether the nodes will be automatically repaired.
-	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair" json:"auto_repair,omitempty"`
+	AutoRepair bool `protobuf:"varint,2,opt,name=auto_repair,json=autoRepair,proto3" json:"auto_repair,omitempty"`
 	// Specifies the Auto Upgrade knobs for the node pool.
-	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions" json:"upgrade_options,omitempty"`
+	UpgradeOptions       *AutoUpgradeOptions `protobuf:"bytes,10,opt,name=upgrade_options,json=upgradeOptions,proto3" json:"upgrade_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -3508,10 +3508,10 @@ type AutoUpgradeOptions struct {
 	// [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.
-	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime" json:"auto_upgrade_start_time,omitempty"`
+	AutoUpgradeStartTime string `protobuf:"bytes,1,opt,name=auto_upgrade_start_time,json=autoUpgradeStartTime,proto3" json:"auto_upgrade_start_time,omitempty"`
 	// [Output only] This field is set when upgrades are about to commence
 	// with the description of the upgrade.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3558,7 +3558,7 @@ func (m *AutoUpgradeOptions) GetDescription() string {
 // MaintenancePolicy defines the maintenance policy to be used for the cluster.
 type MaintenancePolicy struct {
 	// Specifies the maintenance window in which maintenance may be performed.
-	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window" json:"window,omitempty"`
+	Window               *MaintenanceWindow `protobuf:"bytes,1,opt,name=window,proto3" json:"window,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -3637,7 +3637,7 @@ type isMaintenanceWindow_Policy interface {
 }
 
 type MaintenanceWindow_DailyMaintenanceWindow struct {
-	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,oneof"`
+	DailyMaintenanceWindow *DailyMaintenanceWindow `protobuf:"bytes,2,opt,name=daily_maintenance_window,json=dailyMaintenanceWindow,proto3,oneof"`
 }
 
 func (*MaintenanceWindow_DailyMaintenanceWindow) isMaintenanceWindow_Policy() {}
@@ -3715,10 +3715,10 @@ func _MaintenanceWindow_OneofSizer(msg proto.Message) (n int) {
 type DailyMaintenanceWindow struct {
 	// Time within the maintenance window to start the maintenance operations.
 	// It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
-	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// [Output only] Duration of the time window, automatically chosen to be
 	// smallest possible in the given scenario.
-	Duration             string   `protobuf:"bytes,3,opt,name=duration" json:"duration,omitempty"`
+	Duration             string   `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3768,24 +3768,24 @@ type SetNodePoolManagementRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to update.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// NodeManagement configuration for the node pool.
-	Management *NodeManagement `protobuf:"bytes,5,opt,name=management" json:"management,omitempty"`
+	Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node pool to set
 	// management properties. Specified in the format
 	// 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3864,22 +3864,22 @@ type RollbackNodePoolUpgradeRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to rollback.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name of the node pool to rollback.
 	// This field is deprecated, use name instead.
-	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId" json:"node_pool_id,omitempty"`
+	NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"`
 	// The name (project, location, cluster, node pool id) of the node poll to
 	// rollback upgrade.
 	// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3947,7 +3947,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetName() string {
 // ListNodePoolsResponse is the result of ListNodePoolsRequest.
 type ListNodePoolsResponse struct {
 	// A list of node pools for a cluster.
-	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools" json:"node_pools,omitempty"`
+	NodePools            []*NodePool `protobuf:"bytes,1,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -3988,13 +3988,13 @@ func (m *ListNodePoolsResponse) GetNodePools() []*NodePool {
 // adjust the size of the node pool to the current cluster usage.
 type NodePoolAutoscaling struct {
 	// Is autoscaling enabled for this node pool.
-	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// Minimum number of nodes in the NodePool. Must be >= 1 and <=
 	// max_node_count.
-	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount" json:"min_node_count,omitempty"`
+	MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount,proto3" json:"min_node_count,omitempty"`
 	// Maximum number of nodes in the NodePool. Must be >= min_node_count. There
 	// has to enough quota to scale up the cluster.
-	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount" json:"max_node_count,omitempty"`
+	MaxNodeCount         int32    `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4052,27 +4052,27 @@ type SetLabelsRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The labels to set for that cluster.
-	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// 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.
-	LabelFingerprint string `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint" json:"label_fingerprint,omitempty"`
+	LabelFingerprint string `protobuf:"bytes,5,opt,name=label_fingerprint,json=labelFingerprint,proto3" json:"label_fingerprint,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set labels.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4150,20 +4150,20 @@ type SetLegacyAbacRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Whether ABAC authorization will be enabled in the cluster.
-	Enabled bool `protobuf:"varint,4,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set legacy abac.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4234,18 +4234,18 @@ type StartIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster id) of the cluster to start IP rotation.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4308,18 +4308,18 @@ type CompleteIPRotationRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The name (project, location, cluster id) of the cluster to complete IP rotation.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4380,10 +4380,10 @@ func (m *CompleteIPRotationRequest) GetName() string {
 // AcceleratorConfig represents a Hardware Accelerator request.
 type AcceleratorConfig struct {
 	// The number of the accelerator cards exposed to an instance.
-	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount" json:"accelerator_count,omitempty"`
+	AcceleratorCount int64 `protobuf:"varint,1,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
 	// The accelerator type resource name. List of supported accelerators
 	// [here](/compute/docs/gpus/#Introduction)
-	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType" json:"accelerator_type,omitempty"`
+	AcceleratorType      string   `protobuf:"bytes,2,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4432,20 +4432,20 @@ type SetNetworkPolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://developers.google.com/console/help/new/#projectnumber).
 	// This field is deprecated, use name instead.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
 	// This field is deprecated, use name instead.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster.
 	// This field is deprecated, use name instead.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// Configuration options for the NetworkPolicy feature.
-	NetworkPolicy *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy" json:"network_policy,omitempty"`
+	NetworkPolicy *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set networking policy.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4514,20 +4514,20 @@ func (m *SetNetworkPolicyRequest) GetName() string {
 type SetMaintenancePolicyRequest struct {
 	// The Google Developers Console [project ID or project
 	// number](https://support.google.com/cloud/answer/6158840).
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the Google Compute Engine
 	// [zone](/compute/docs/zones#available) in which the cluster
 	// resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The name of the cluster to update.
-	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId" json:"cluster_id,omitempty"`
+	ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
 	// The maintenance policy to be set for the cluster. An empty field
 	// clears the existing maintenance policy.
-	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy" json:"maintenance_policy,omitempty"`
+	MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,4,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"`
 	// The name (project, location, cluster id) of the cluster to set maintenance
 	// policy.
 	// Specified in the format 'projects/*/locations/*/clusters/*'.
-	Name                 string   `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4945,8 +4945,7 @@ func (c *clusterManagerClient) SetMaintenancePolicy(ctx context.Context, in *Set
 	return out, nil
 }
 
-// Server API for ClusterManager service
-
+// ClusterManagerServer is the server API for ClusterManager service.
 type ClusterManagerServer interface {
 	// Lists all clusters owned by a project in either the specified zone or all
 	// zones.
diff --git a/googleapis/datastore/admin/v1/datastore_admin.pb.go b/googleapis/datastore/admin/v1/datastore_admin.pb.go
index 68b43044ad72f4a00c79af4f461307b074a00b72..1c495d01ee6bf73c24632d358a720a4c5023a0bd 100644
--- a/googleapis/datastore/admin/v1/datastore_admin.pb.go
+++ b/googleapis/datastore/admin/v1/datastore_admin.pb.go
@@ -111,17 +111,17 @@ func (CommonMetadata_State) EnumDescriptor() ([]byte, []int) {
 // Metadata common to all Datastore Admin operations.
 type CommonMetadata struct {
 	// The time that work began on the operation.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time the operation ended, either successfully or otherwise.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// The type of the operation. Can be used as a filter in
 	// ListOperationsRequest.
-	OperationType OperationType `protobuf:"varint,3,opt,name=operation_type,json=operationType,enum=google.datastore.admin.v1.OperationType" json:"operation_type,omitempty"`
+	OperationType OperationType `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.datastore.admin.v1.OperationType" json:"operation_type,omitempty"`
 	// The client-assigned labels which were provided when the operation was
 	// created. May also include additional labels.
-	Labels map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The current state of the Operation.
-	State                CommonMetadata_State `protobuf:"varint,5,opt,name=state,enum=google.datastore.admin.v1.CommonMetadata_State" json:"state,omitempty"`
+	State                CommonMetadata_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.datastore.admin.v1.CommonMetadata_State" json:"state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -190,10 +190,10 @@ func (m *CommonMetadata) GetState() CommonMetadata_State {
 type Progress struct {
 	// The amount of work that has been completed. Note that this may be greater
 	// than work_estimated.
-	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted" json:"work_completed,omitempty"`
+	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted,proto3" json:"work_completed,omitempty"`
 	// An estimate of how much work needs to be performed. May be zero if the
 	// work estimate is unavailable.
-	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated" json:"work_estimated,omitempty"`
+	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated,proto3" json:"work_estimated,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -241,11 +241,11 @@ func (m *Progress) GetWorkEstimated() int64 {
 // [google.datastore.admin.v1.DatastoreAdmin.ExportEntities][google.datastore.admin.v1.DatastoreAdmin.ExportEntities].
 type ExportEntitiesRequest struct {
 	// Project ID against which to make the request.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Client-assigned labels.
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Description of what data from the project is included in the export.
-	EntityFilter *EntityFilter `protobuf:"bytes,3,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,3,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// Location for the export metadata and data files.
 	//
 	// The full resource URL of the external storage location. Currently, only
@@ -264,7 +264,7 @@ type ExportEntitiesRequest struct {
 	//
 	// By nesting the data files deeper, the same Cloud Storage bucket can be used
 	// in multiple ExportEntities operations without conflict.
-	OutputUrlPrefix      string   `protobuf:"bytes,4,opt,name=output_url_prefix,json=outputUrlPrefix" json:"output_url_prefix,omitempty"`
+	OutputUrlPrefix      string   `protobuf:"bytes,4,opt,name=output_url_prefix,json=outputUrlPrefix,proto3" json:"output_url_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -326,9 +326,9 @@ func (m *ExportEntitiesRequest) GetOutputUrlPrefix() string {
 // [google.datastore.admin.v1.DatastoreAdmin.ImportEntities][google.datastore.admin.v1.DatastoreAdmin.ImportEntities].
 type ImportEntitiesRequest struct {
 	// Project ID against which to make the request.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Client-assigned labels.
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The full resource URL of the external storage location. Currently, only
 	// Google Cloud Storage is supported. So input_url should be of the form:
 	// `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
@@ -342,12 +342,12 @@ type ImportEntitiesRequest struct {
 	//
 	// For more information, see
 	// [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
-	InputUrl string `protobuf:"bytes,3,opt,name=input_url,json=inputUrl" json:"input_url,omitempty"`
+	InputUrl string `protobuf:"bytes,3,opt,name=input_url,json=inputUrl,proto3" json:"input_url,omitempty"`
 	// Optionally specify which kinds/namespaces are to be imported. If provided,
 	// the list must be a subset of the EntityFilter used in creating the export,
 	// otherwise a FAILED_PRECONDITION error will be returned. If no filter is
 	// specified then all entities from the export are imported.
-	EntityFilter         *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter         *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -412,7 +412,7 @@ type ExportEntitiesResponse struct {
 	// into Cloud Datastore (this project or another project). See
 	// [google.datastore.admin.v1.ImportEntitiesRequest.input_url][google.datastore.admin.v1.ImportEntitiesRequest.input_url].
 	// Only present if the operation completed successfully.
-	OutputUrl            string   `protobuf:"bytes,1,opt,name=output_url,json=outputUrl" json:"output_url,omitempty"`
+	OutputUrl            string   `protobuf:"bytes,1,opt,name=output_url,json=outputUrl,proto3" json:"output_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -452,19 +452,19 @@ func (m *ExportEntitiesResponse) GetOutputUrl() string {
 // Metadata for ExportEntities operations.
 type ExportEntitiesMetadata struct {
 	// Metadata common to all Datastore Admin operations.
-	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common" json:"common,omitempty"`
+	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
 	// An estimate of the number of entities processed.
-	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities" json:"progress_entities,omitempty"`
+	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities,proto3" json:"progress_entities,omitempty"`
 	// An estimate of the number of bytes processed.
-	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes" json:"progress_bytes,omitempty"`
+	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"`
 	// Description of which entities are being exported.
-	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// Location for the export metadata and data files. This will be the same
 	// value as the
 	// [google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix]
 	// field. The final output location is provided in
 	// [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
-	OutputUrlPrefix      string   `protobuf:"bytes,5,opt,name=output_url_prefix,json=outputUrlPrefix" json:"output_url_prefix,omitempty"`
+	OutputUrlPrefix      string   `protobuf:"bytes,5,opt,name=output_url_prefix,json=outputUrlPrefix,proto3" json:"output_url_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -532,16 +532,16 @@ func (m *ExportEntitiesMetadata) GetOutputUrlPrefix() string {
 // Metadata for ImportEntities operations.
 type ImportEntitiesMetadata struct {
 	// Metadata common to all Datastore Admin operations.
-	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common" json:"common,omitempty"`
+	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
 	// An estimate of the number of entities processed.
-	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities" json:"progress_entities,omitempty"`
+	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities,proto3" json:"progress_entities,omitempty"`
 	// An estimate of the number of bytes processed.
-	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes" json:"progress_bytes,omitempty"`
+	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"`
 	// Description of which entities are being imported.
-	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// The location of the import metadata file. This will be the same value as
 	// the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field.
-	InputUrl             string   `protobuf:"bytes,5,opt,name=input_url,json=inputUrl" json:"input_url,omitempty"`
+	InputUrl             string   `protobuf:"bytes,5,opt,name=input_url,json=inputUrl,proto3" json:"input_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -627,7 +627,7 @@ func (m *ImportEntitiesMetadata) GetInputUrl() string {
 //   kinds=[], namespace_ids=['Baz']
 type EntityFilter struct {
 	// If empty, then this represents all kinds.
-	Kinds []string `protobuf:"bytes,1,rep,name=kinds" json:"kinds,omitempty"`
+	Kinds []string `protobuf:"bytes,1,rep,name=kinds,proto3" json:"kinds,omitempty"`
 	// An empty list represents all namespaces. This is the preferred
 	// usage for projects that don't use namespaces.
 	//
@@ -635,7 +635,7 @@ type EntityFilter struct {
 	// used if the project has data in non-default namespaces, but doesn't want to
 	// include them.
 	// Each namespace in this list must be unique.
-	NamespaceIds         []string `protobuf:"bytes,2,rep,name=namespace_ids,json=namespaceIds" json:"namespace_ids,omitempty"`
+	NamespaceIds         []string `protobuf:"bytes,2,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -750,8 +750,7 @@ func (c *datastoreAdminClient) ImportEntities(ctx context.Context, in *ImportEnt
 	return out, nil
 }
 
-// Server API for DatastoreAdmin service
-
+// DatastoreAdminServer is the server API for DatastoreAdmin service.
 type DatastoreAdminServer interface {
 	// Exports a copy of all or a subset of entities from Google Cloud Datastore
 	// to another storage system, such as Google Cloud Storage. Recent updates to
diff --git a/googleapis/datastore/admin/v1beta1/datastore_admin.pb.go b/googleapis/datastore/admin/v1beta1/datastore_admin.pb.go
index 44cdffede11ece99886724bb908c2fab7c19aa72..59d56865e63da47cefbd74d71eb63bfcda64100d 100644
--- a/googleapis/datastore/admin/v1beta1/datastore_admin.pb.go
+++ b/googleapis/datastore/admin/v1beta1/datastore_admin.pb.go
@@ -111,17 +111,17 @@ func (CommonMetadata_State) EnumDescriptor() ([]byte, []int) {
 // Metadata common to all Datastore Admin operations.
 type CommonMetadata struct {
 	// The time that work began on the operation.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time the operation ended, either successfully or otherwise.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// The type of the operation. Can be used as a filter in
 	// ListOperationsRequest.
-	OperationType OperationType `protobuf:"varint,3,opt,name=operation_type,json=operationType,enum=google.datastore.admin.v1beta1.OperationType" json:"operation_type,omitempty"`
+	OperationType OperationType `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.datastore.admin.v1beta1.OperationType" json:"operation_type,omitempty"`
 	// The client-assigned labels which were provided when the operation was
 	// created. May also include additional labels.
-	Labels map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The current state of the Operation.
-	State                CommonMetadata_State `protobuf:"varint,5,opt,name=state,enum=google.datastore.admin.v1beta1.CommonMetadata_State" json:"state,omitempty"`
+	State                CommonMetadata_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.datastore.admin.v1beta1.CommonMetadata_State" json:"state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -190,10 +190,10 @@ func (m *CommonMetadata) GetState() CommonMetadata_State {
 type Progress struct {
 	// The amount of work that has been completed. Note that this may be greater
 	// than work_estimated.
-	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted" json:"work_completed,omitempty"`
+	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted,proto3" json:"work_completed,omitempty"`
 	// An estimate of how much work needs to be performed. May be zero if the
 	// work estimate is unavailable.
-	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated" json:"work_estimated,omitempty"`
+	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated,proto3" json:"work_estimated,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -241,11 +241,11 @@ func (m *Progress) GetWorkEstimated() int64 {
 // [google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities][google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities].
 type ExportEntitiesRequest struct {
 	// Project ID against which to make the request.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Client-assigned labels.
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Description of what data from the project is included in the export.
-	EntityFilter *EntityFilter `protobuf:"bytes,3,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,3,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// Location for the export metadata and data files.
 	//
 	// The full resource URL of the external storage location. Currently, only
@@ -264,7 +264,7 @@ type ExportEntitiesRequest struct {
 	//
 	// By nesting the data files deeper, the same Cloud Storage bucket can be used
 	// in multiple ExportEntities operations without conflict.
-	OutputUrlPrefix      string   `protobuf:"bytes,4,opt,name=output_url_prefix,json=outputUrlPrefix" json:"output_url_prefix,omitempty"`
+	OutputUrlPrefix      string   `protobuf:"bytes,4,opt,name=output_url_prefix,json=outputUrlPrefix,proto3" json:"output_url_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -326,9 +326,9 @@ func (m *ExportEntitiesRequest) GetOutputUrlPrefix() string {
 // [google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities][google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities].
 type ImportEntitiesRequest struct {
 	// Project ID against which to make the request.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Client-assigned labels.
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The full resource URL of the external storage location. Currently, only
 	// Google Cloud Storage is supported. So input_url should be of the form:
 	// `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
@@ -342,12 +342,12 @@ type ImportEntitiesRequest struct {
 	//
 	// For more information, see
 	// [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url].
-	InputUrl string `protobuf:"bytes,3,opt,name=input_url,json=inputUrl" json:"input_url,omitempty"`
+	InputUrl string `protobuf:"bytes,3,opt,name=input_url,json=inputUrl,proto3" json:"input_url,omitempty"`
 	// Optionally specify which kinds/namespaces are to be imported. If provided,
 	// the list must be a subset of the EntityFilter used in creating the export,
 	// otherwise a FAILED_PRECONDITION error will be returned. If no filter is
 	// specified then all entities from the export are imported.
-	EntityFilter         *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter         *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -412,7 +412,7 @@ type ExportEntitiesResponse struct {
 	// into Cloud Datastore (this project or another project). See
 	// [google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url][google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url].
 	// Only present if the operation completed successfully.
-	OutputUrl            string   `protobuf:"bytes,1,opt,name=output_url,json=outputUrl" json:"output_url,omitempty"`
+	OutputUrl            string   `protobuf:"bytes,1,opt,name=output_url,json=outputUrl,proto3" json:"output_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -452,19 +452,19 @@ func (m *ExportEntitiesResponse) GetOutputUrl() string {
 // Metadata for ExportEntities operations.
 type ExportEntitiesMetadata struct {
 	// Metadata common to all Datastore Admin operations.
-	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common" json:"common,omitempty"`
+	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
 	// An estimate of the number of entities processed.
-	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities" json:"progress_entities,omitempty"`
+	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities,proto3" json:"progress_entities,omitempty"`
 	// An estimate of the number of bytes processed.
-	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes" json:"progress_bytes,omitempty"`
+	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"`
 	// Description of which entities are being exported.
-	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// Location for the export metadata and data files. This will be the same
 	// value as the
 	// [google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_prefix]
 	// field. The final output location is provided in
 	// [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url].
-	OutputUrlPrefix      string   `protobuf:"bytes,5,opt,name=output_url_prefix,json=outputUrlPrefix" json:"output_url_prefix,omitempty"`
+	OutputUrlPrefix      string   `protobuf:"bytes,5,opt,name=output_url_prefix,json=outputUrlPrefix,proto3" json:"output_url_prefix,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -532,17 +532,17 @@ func (m *ExportEntitiesMetadata) GetOutputUrlPrefix() string {
 // Metadata for ImportEntities operations.
 type ImportEntitiesMetadata struct {
 	// Metadata common to all Datastore Admin operations.
-	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common" json:"common,omitempty"`
+	Common *CommonMetadata `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
 	// An estimate of the number of entities processed.
-	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities" json:"progress_entities,omitempty"`
+	ProgressEntities *Progress `protobuf:"bytes,2,opt,name=progress_entities,json=progressEntities,proto3" json:"progress_entities,omitempty"`
 	// An estimate of the number of bytes processed.
-	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes" json:"progress_bytes,omitempty"`
+	ProgressBytes *Progress `protobuf:"bytes,3,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"`
 	// Description of which entities are being imported.
-	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter" json:"entity_filter,omitempty"`
+	EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"`
 	// The location of the import metadata file. This will be the same value as
 	// the [google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url][google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url]
 	// field.
-	InputUrl             string   `protobuf:"bytes,5,opt,name=input_url,json=inputUrl" json:"input_url,omitempty"`
+	InputUrl             string   `protobuf:"bytes,5,opt,name=input_url,json=inputUrl,proto3" json:"input_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -628,7 +628,7 @@ func (m *ImportEntitiesMetadata) GetInputUrl() string {
 //   kinds=[], namespace_ids=['Baz']
 type EntityFilter struct {
 	// If empty, then this represents all kinds.
-	Kinds []string `protobuf:"bytes,1,rep,name=kinds" json:"kinds,omitempty"`
+	Kinds []string `protobuf:"bytes,1,rep,name=kinds,proto3" json:"kinds,omitempty"`
 	// An empty list represents all namespaces. This is the preferred
 	// usage for projects that don't use namespaces.
 	//
@@ -636,7 +636,7 @@ type EntityFilter struct {
 	// used if the project has data in non-default namespaces, but doesn't want to
 	// include them.
 	// Each namespace in this list must be unique.
-	NamespaceIds         []string `protobuf:"bytes,2,rep,name=namespace_ids,json=namespaceIds" json:"namespace_ids,omitempty"`
+	NamespaceIds         []string `protobuf:"bytes,2,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -751,8 +751,7 @@ func (c *datastoreAdminClient) ImportEntities(ctx context.Context, in *ImportEnt
 	return out, nil
 }
 
-// Server API for DatastoreAdmin service
-
+// DatastoreAdminServer is the server API for DatastoreAdmin service.
 type DatastoreAdminServer interface {
 	// Exports a copy of all or a subset of entities from Google Cloud Datastore
 	// to another storage system, such as Google Cloud Storage. Recent updates to
diff --git a/googleapis/datastore/v1/datastore.pb.go b/googleapis/datastore/v1/datastore.pb.go
index 52ec22eb969d2ca246067e202773e80f2818ac36..1dcf40d6194751bdbe05800e392ae69d2c331f2d 100644
--- a/googleapis/datastore/v1/datastore.pb.go
+++ b/googleapis/datastore/v1/datastore.pb.go
@@ -88,11 +88,11 @@ func (ReadOptions_ReadConsistency) EnumDescriptor() ([]byte, []int) {
 // The request for [Datastore.Lookup][google.datastore.v1.Datastore.Lookup].
 type LookupRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The options for this lookup request.
-	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions,proto3" json:"read_options,omitempty"`
 	// Keys of entities to look up.
-	Keys                 []*Key   `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -148,15 +148,15 @@ type LookupResponse struct {
 	// Entities found as `ResultType.FULL` entities. The order of results in this
 	// field is undefined and has no relation to the order of the keys in the
 	// input.
-	Found []*EntityResult `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"`
+	Found []*EntityResult `protobuf:"bytes,1,rep,name=found,proto3" json:"found,omitempty"`
 	// Entities not found as `ResultType.KEY_ONLY` entities. The order of results
 	// in this field is undefined and has no relation to the order of the keys
 	// in the input.
-	Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing" json:"missing,omitempty"`
+	Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing,proto3" json:"missing,omitempty"`
 	// A list of keys that were not looked up due to resource constraints. The
 	// order of results in this field is undefined and has no relation to the
 	// order of the keys in the input.
-	Deferred             []*Key   `protobuf:"bytes,3,rep,name=deferred" json:"deferred,omitempty"`
+	Deferred             []*Key   `protobuf:"bytes,3,rep,name=deferred,proto3" json:"deferred,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -210,14 +210,14 @@ func (m *LookupResponse) GetDeferred() []*Key {
 // The request for [Datastore.RunQuery][google.datastore.v1.Datastore.RunQuery].
 type RunQueryRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Entities are partitioned into subsets, identified by a partition ID.
 	// Queries are scoped to a single partition.
 	// This partition ID is normalized with the standard default context
 	// partition ID.
-	PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// The options for this query.
-	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions,proto3" json:"read_options,omitempty"`
 	// The type of query.
 	//
 	// Types that are valid to be assigned to QueryType:
@@ -258,10 +258,10 @@ type isRunQueryRequest_QueryType interface {
 }
 
 type RunQueryRequest_Query struct {
-	Query *Query `protobuf:"bytes,3,opt,name=query,oneof"`
+	Query *Query `protobuf:"bytes,3,opt,name=query,proto3,oneof"`
 }
 type RunQueryRequest_GqlQuery struct {
-	GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query,json=gqlQuery,oneof"`
+	GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query,json=gqlQuery,proto3,oneof"`
 }
 
 func (*RunQueryRequest_Query) isRunQueryRequest_QueryType()    {}
@@ -386,9 +386,9 @@ func _RunQueryRequest_OneofSizer(msg proto.Message) (n int) {
 // The response for [Datastore.RunQuery][google.datastore.v1.Datastore.RunQuery].
 type RunQueryResponse struct {
 	// A batch of query results (always present).
-	Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch" json:"batch,omitempty"`
+	Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"`
 	// The parsed form of the `GqlQuery` from the request, if it was set.
-	Query                *Query   `protobuf:"bytes,2,opt,name=query" json:"query,omitempty"`
+	Query                *Query   `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -435,9 +435,9 @@ func (m *RunQueryResponse) GetQuery() *Query {
 // The request for [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction].
 type BeginTransactionRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Options for a new transaction.
-	TransactionOptions   *TransactionOptions `protobuf:"bytes,10,opt,name=transaction_options,json=transactionOptions" json:"transaction_options,omitempty"`
+	TransactionOptions   *TransactionOptions `protobuf:"bytes,10,opt,name=transaction_options,json=transactionOptions,proto3" json:"transaction_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -524,7 +524,7 @@ func (m *BeginTransactionResponse) GetTransaction() []byte {
 // The request for [Datastore.Rollback][google.datastore.v1.Datastore.Rollback].
 type RollbackRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The transaction identifier, returned by a call to
 	// [Datastore.BeginTransaction][google.datastore.v1.Datastore.BeginTransaction].
 	Transaction          []byte   `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"`
@@ -606,9 +606,9 @@ var xxx_messageInfo_RollbackResponse proto.InternalMessageInfo
 // The request for [Datastore.Commit][google.datastore.v1.Datastore.Commit].
 type CommitRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The type of commit to perform. Defaults to `TRANSACTIONAL`.
-	Mode CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,enum=google.datastore.v1.CommitRequest_Mode" json:"mode,omitempty"`
+	Mode CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,proto3,enum=google.datastore.v1.CommitRequest_Mode" json:"mode,omitempty"`
 	// Must be set when mode is `TRANSACTIONAL`.
 	//
 	// Types that are valid to be assigned to TransactionSelector:
@@ -627,7 +627,7 @@ type CommitRequest struct {
 	//
 	// When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single
 	// entity.
-	Mutations            []*Mutation `protobuf:"bytes,6,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,6,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -757,10 +757,10 @@ func _CommitRequest_OneofSizer(msg proto.Message) (n int) {
 type CommitResponse struct {
 	// The result of performing the mutations.
 	// The i-th mutation result corresponds to the i-th mutation in the request.
-	MutationResults []*MutationResult `protobuf:"bytes,3,rep,name=mutation_results,json=mutationResults" json:"mutation_results,omitempty"`
+	MutationResults []*MutationResult `protobuf:"bytes,3,rep,name=mutation_results,json=mutationResults,proto3" json:"mutation_results,omitempty"`
 	// The number of index entries updated during the commit, or zero if none were
 	// updated.
-	IndexUpdates         int32    `protobuf:"varint,4,opt,name=index_updates,json=indexUpdates" json:"index_updates,omitempty"`
+	IndexUpdates         int32    `protobuf:"varint,4,opt,name=index_updates,json=indexUpdates,proto3" json:"index_updates,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -807,10 +807,10 @@ func (m *CommitResponse) GetIndexUpdates() int32 {
 // The request for [Datastore.AllocateIds][google.datastore.v1.Datastore.AllocateIds].
 type AllocateIdsRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// A list of keys with incomplete key paths for which to allocate IDs.
 	// No key may be reserved/read-only.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -858,7 +858,7 @@ func (m *AllocateIdsRequest) GetKeys() []*Key {
 type AllocateIdsResponse struct {
 	// The keys specified in the request (in the same order), each with
 	// its key path completed with a newly allocated ID.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -898,12 +898,12 @@ func (m *AllocateIdsResponse) GetKeys() []*Key {
 // The request for [Datastore.ReserveIds][google.datastore.v1.Datastore.ReserveIds].
 type ReserveIdsRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If not empty, the ID of the database against which to make the request.
-	DatabaseId string `protobuf:"bytes,9,opt,name=database_id,json=databaseId" json:"database_id,omitempty"`
+	DatabaseId string `protobuf:"bytes,9,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"`
 	// A list of keys with complete key paths whose numeric IDs should not be
 	// auto-allocated.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1046,19 +1046,19 @@ type isMutation_ConflictDetectionStrategy interface {
 }
 
 type Mutation_Insert struct {
-	Insert *Entity `protobuf:"bytes,4,opt,name=insert,oneof"`
+	Insert *Entity `protobuf:"bytes,4,opt,name=insert,proto3,oneof"`
 }
 type Mutation_Update struct {
-	Update *Entity `protobuf:"bytes,5,opt,name=update,oneof"`
+	Update *Entity `protobuf:"bytes,5,opt,name=update,proto3,oneof"`
 }
 type Mutation_Upsert struct {
-	Upsert *Entity `protobuf:"bytes,6,opt,name=upsert,oneof"`
+	Upsert *Entity `protobuf:"bytes,6,opt,name=upsert,proto3,oneof"`
 }
 type Mutation_Delete struct {
-	Delete *Key `protobuf:"bytes,7,opt,name=delete,oneof"`
+	Delete *Key `protobuf:"bytes,7,opt,name=delete,proto3,oneof"`
 }
 type Mutation_BaseVersion struct {
-	BaseVersion int64 `protobuf:"varint,8,opt,name=base_version,json=baseVersion,oneof"`
+	BaseVersion int64 `protobuf:"varint,8,opt,name=base_version,json=baseVersion,proto3,oneof"`
 }
 
 func (*Mutation_Insert) isMutation_Operation()                      {}
@@ -1257,16 +1257,16 @@ func _Mutation_OneofSizer(msg proto.Message) (n int) {
 type MutationResult struct {
 	// The automatically allocated key.
 	// Set only when the mutation allocated a key.
-	Key *Key `protobuf:"bytes,3,opt,name=key" json:"key,omitempty"`
+	Key *Key `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
 	// The version of the entity on the server after processing the mutation. If
 	// the mutation doesn't change anything on the server, then the version will
 	// be the version of the current entity or, if no entity is present, a version
 	// that is strictly greater than the version of any previous entity and less
 	// than the version of any possible future entity.
-	Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
+	Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
 	// Whether a conflict was detected for this mutation. Always false when a
 	// conflict detection strategy field is not set in the mutation.
-	ConflictDetected     bool     `protobuf:"varint,5,opt,name=conflict_detected,json=conflictDetected" json:"conflict_detected,omitempty"`
+	ConflictDetected     bool     `protobuf:"varint,5,opt,name=conflict_detected,json=conflictDetected,proto3" json:"conflict_detected,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1361,7 +1361,7 @@ type isReadOptions_ConsistencyType interface {
 }
 
 type ReadOptions_ReadConsistency_ struct {
-	ReadConsistency ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,json=readConsistency,enum=google.datastore.v1.ReadOptions_ReadConsistency,oneof"`
+	ReadConsistency ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,json=readConsistency,proto3,enum=google.datastore.v1.ReadOptions_ReadConsistency,oneof"`
 }
 type ReadOptions_Transaction struct {
 	Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3,oneof"`
@@ -1503,10 +1503,10 @@ type isTransactionOptions_Mode interface {
 }
 
 type TransactionOptions_ReadWrite_ struct {
-	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,oneof"`
+	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_ struct {
-	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,oneof"`
+	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {}
@@ -1805,8 +1805,7 @@ func (c *datastoreClient) ReserveIds(ctx context.Context, in *ReserveIdsRequest,
 	return out, nil
 }
 
-// Server API for Datastore service
-
+// DatastoreServer is the server API for Datastore service.
 type DatastoreServer interface {
 	// Looks up entities by key.
 	Lookup(context.Context, *LookupRequest) (*LookupResponse, error)
diff --git a/googleapis/datastore/v1/entity.pb.go b/googleapis/datastore/v1/entity.pb.go
index 20b7709a0b7e1a54e520e74125a278be7c227858..3cc8edc29f71c9e9f87b37fa6222eab99d9c4021 100644
--- a/googleapis/datastore/v1/entity.pb.go
+++ b/googleapis/datastore/v1/entity.pb.go
@@ -43,9 +43,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Reads and writes of foreign partition IDs may fail if the project is not in an active state.
 type PartitionId struct {
 	// The ID of the project to which the entities belong.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If not empty, the ID of the namespace to which the entities belong.
-	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId" json:"namespace_id,omitempty"`
+	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -97,7 +97,7 @@ type Key struct {
 	// Entities are partitioned into subsets, currently identified by a project
 	// ID and namespace ID.
 	// Queries are scoped to a single partition.
-	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// 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
@@ -114,7 +114,7 @@ type Key struct {
 	// identifier.
 	//
 	// A path can never be empty, and a path can have at most 100 elements.
-	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path" json:"path,omitempty"`
+	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -167,7 +167,7 @@ type Key_PathElement struct {
 	// A kind matching regex `__.*__` is reserved/read-only.
 	// A kind must not contain more than 1500 bytes when UTF-8 encoded.
 	// Cannot be `""`.
-	Kind string `protobuf:"bytes,1,opt,name=kind" json:"kind,omitempty"`
+	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
 	// The type of ID.
 	//
 	// Types that are valid to be assigned to IdType:
@@ -208,10 +208,10 @@ type isKey_PathElement_IdType interface {
 }
 
 type Key_PathElement_Id struct {
-	Id int64 `protobuf:"varint,2,opt,name=id,oneof"`
+	Id int64 `protobuf:"varint,2,opt,name=id,proto3,oneof"`
 }
 type Key_PathElement_Name struct {
-	Name string `protobuf:"bytes,3,opt,name=name,oneof"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"`
 }
 
 func (*Key_PathElement_Id) isKey_PathElement_IdType()   {}
@@ -315,7 +315,7 @@ type ArrayValue struct {
 	// Values in the array.
 	// The order of this array may not be preserved if it contains a mix of
 	// indexed and unindexed values.
-	Values               []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values               []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -371,10 +371,10 @@ type Value struct {
 	//	*Value_ArrayValue
 	ValueType isValue_ValueType `protobuf_oneof:"value_type"`
 	// The `meaning` field should only be populated for backwards compatibility.
-	Meaning int32 `protobuf:"varint,14,opt,name=meaning" json:"meaning,omitempty"`
+	Meaning int32 `protobuf:"varint,14,opt,name=meaning,proto3" json:"meaning,omitempty"`
 	// If the value should be excluded from all indexes including those defined
 	// explicitly.
-	ExcludeFromIndexes   bool     `protobuf:"varint,19,opt,name=exclude_from_indexes,json=excludeFromIndexes" json:"exclude_from_indexes,omitempty"`
+	ExcludeFromIndexes   bool     `protobuf:"varint,19,opt,name=exclude_from_indexes,json=excludeFromIndexes,proto3" json:"exclude_from_indexes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,37 +409,37 @@ type isValue_ValueType interface {
 }
 
 type Value_NullValue struct {
-	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,enum=google.protobuf.NullValue,oneof"`
+	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
 }
 type Value_BooleanValue struct {
-	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,oneof"`
+	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
 }
 type Value_IntegerValue struct {
-	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,oneof"`
+	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"`
 }
 type Value_DoubleValue struct {
-	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,oneof"`
+	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
 }
 type Value_TimestampValue struct {
-	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,oneof"`
+	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
 }
 type Value_KeyValue struct {
-	KeyValue *Key `protobuf:"bytes,5,opt,name=key_value,json=keyValue,oneof"`
+	KeyValue *Key `protobuf:"bytes,5,opt,name=key_value,json=keyValue,proto3,oneof"`
 }
 type Value_StringValue struct {
-	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type Value_BlobValue struct {
 	BlobValue []byte `protobuf:"bytes,18,opt,name=blob_value,json=blobValue,proto3,oneof"`
 }
 type Value_GeoPointValue struct {
-	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,oneof"`
+	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,proto3,oneof"`
 }
 type Value_EntityValue struct {
-	EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value,json=entityValue,oneof"`
+	EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value,json=entityValue,proto3,oneof"`
 }
 type Value_ArrayValue struct {
-	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,oneof"`
+	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,proto3,oneof"`
 }
 
 func (*Value_NullValue) isValue_ValueType()      {}
@@ -785,14 +785,14 @@ type Entity struct {
 	// 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.
-	Key *Key `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key *Key `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// 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 `""`.
-	Properties           map[string]*Value `protobuf:"bytes,3,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties           map[string]*Value `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/datastore/v1/query.pb.go b/googleapis/datastore/v1/query.pb.go
index e9edae7e67218578db01780fcc6a601306105170..fd19b083f70c9e43b8eee6c07e96112a8aeaafa3 100644
--- a/googleapis/datastore/v1/query.pb.go
+++ b/googleapis/datastore/v1/query.pb.go
@@ -203,7 +203,7 @@ func (QueryResultBatch_MoreResultsType) EnumDescriptor() ([]byte, []int) {
 // The result of fetching an entity from Datastore.
 type EntityResult struct {
 	// The resulting entity.
-	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
+	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
 	// The version of the entity, a strictly positive number that monotonically
 	// increases with changes to the entity.
 	//
@@ -213,7 +213,7 @@ type EntityResult struct {
 	// For [missing][google.datastore.v1.LookupResponse.missing] entities in `LookupResponse`, this
 	// is the version of the snapshot that was used to look up the entity, and it
 	// is always set except for eventually consistent reads.
-	Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
+	Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
 	// A cursor that points to the position after the result entity.
 	// Set only when the `EntityResult` is part of a `QueryResultBatch` message.
 	Cursor               []byte   `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
@@ -270,18 +270,18 @@ func (m *EntityResult) GetCursor() []byte {
 // A query for entities.
 type Query struct {
 	// The projection to return. Defaults to returning all properties.
-	Projection []*Projection `protobuf:"bytes,2,rep,name=projection" json:"projection,omitempty"`
+	Projection []*Projection `protobuf:"bytes,2,rep,name=projection,proto3" json:"projection,omitempty"`
 	// The kinds to query (if empty, returns entities of all kinds).
 	// Currently at most 1 kind may be specified.
-	Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind" json:"kind,omitempty"`
+	Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind,proto3" json:"kind,omitempty"`
 	// The filter to apply.
-	Filter *Filter `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter *Filter `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The order to apply to the query results (if empty, order is unspecified).
-	Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order" json:"order,omitempty"`
+	Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order,proto3" json:"order,omitempty"`
 	// The properties to make distinct. The query results will contain the first
 	// result for each distinct combination of values for the given properties
 	// (if empty, all results are returned).
-	DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn" json:"distinct_on,omitempty"`
+	DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn,proto3" json:"distinct_on,omitempty"`
 	// A starting point for the query results. Query cursors are
 	// returned in query result batches and
 	// [can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
@@ -292,12 +292,12 @@ type Query struct {
 	EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
 	// The number of results to skip. Applies before limit, but after all other
 	// constraints. Optional. Must be >= 0 if specified.
-	Offset int32 `protobuf:"varint,10,opt,name=offset" json:"offset,omitempty"`
+	Offset int32 `protobuf:"varint,10,opt,name=offset,proto3" json:"offset,omitempty"`
 	// The maximum number of results to return. Applies after all other
 	// constraints. Optional.
 	// Unspecified is interpreted as no limit.
 	// Must be >= 0 if specified.
-	Limit                *wrappers.Int32Value `protobuf:"bytes,12,opt,name=limit" json:"limit,omitempty"`
+	Limit                *wrappers.Int32Value `protobuf:"bytes,12,opt,name=limit,proto3" json:"limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -393,7 +393,7 @@ func (m *Query) GetLimit() *wrappers.Int32Value {
 // A representation of a kind.
 type KindExpression struct {
 	// The name of the kind.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,7 +434,7 @@ func (m *KindExpression) GetName() string {
 type PropertyReference struct {
 	// The name of the property.
 	// If name includes "."s, it may be interpreted as a property name path.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -474,7 +474,7 @@ func (m *PropertyReference) GetName() string {
 // A representation of a property in a projection.
 type Projection struct {
 	// The property to project.
-	Property             *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property             *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -514,9 +514,9 @@ func (m *Projection) GetProperty() *PropertyReference {
 // The desired order for a specific property.
 type PropertyOrder struct {
 	// The property to order by.
-	Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// The direction to order by. Defaults to `ASCENDING`.
-	Direction            PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,enum=google.datastore.v1.PropertyOrder_Direction" json:"direction,omitempty"`
+	Direction            PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.datastore.v1.PropertyOrder_Direction" json:"direction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -602,10 +602,10 @@ type isFilter_FilterType interface {
 }
 
 type Filter_CompositeFilter struct {
-	CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,oneof"`
+	CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"`
 }
 type Filter_PropertyFilter struct {
-	PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,oneof"`
+	PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,proto3,oneof"`
 }
 
 func (*Filter_CompositeFilter) isFilter_FilterType() {}
@@ -709,10 +709,10 @@ func _Filter_OneofSizer(msg proto.Message) (n int) {
 // A filter that merges multiple other filters using the given operator.
 type CompositeFilter struct {
 	// The operator for combining multiple filters.
-	Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,enum=google.datastore.v1.CompositeFilter_Operator" json:"op,omitempty"`
+	Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.datastore.v1.CompositeFilter_Operator" json:"op,omitempty"`
 	// The list of filters to combine.
 	// Must contain at least one filter.
-	Filters              []*Filter `protobuf:"bytes,2,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -759,11 +759,11 @@ func (m *CompositeFilter) GetFilters() []*Filter {
 // A filter on a specific property.
 type PropertyFilter struct {
 	// The property to filter by.
-	Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// The operator to filter by.
-	Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,enum=google.datastore.v1.PropertyFilter_Operator" json:"op,omitempty"`
+	Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.datastore.v1.PropertyFilter_Operator" json:"op,omitempty"`
 	// The value to compare the property to.
-	Value                *Value   `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
+	Value                *Value   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -818,24 +818,24 @@ func (m *PropertyFilter) GetValue() *Value {
 type GqlQuery struct {
 	// A string of the format described
 	// [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
-	QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString" json:"query_string,omitempty"`
+	QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString,proto3" json:"query_string,omitempty"`
 	// When false, the query string must not contain any literals and instead must
 	// bind all values. For example,
 	// `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
 	// `SELECT * FROM Kind WHERE a = @value` is.
-	AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals" json:"allow_literals,omitempty"`
+	AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals,proto3" json:"allow_literals,omitempty"`
 	// For each non-reserved named binding site in the query string, there must be
 	// a named parameter with that name, but not necessarily the inverse.
 	//
 	// Key must match regex `[A-Za-z_$][A-Za-z_$0-9]*`, must not match regex
 	// `__.*__`, and must not be `""`.
-	NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings,proto3" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Numbered binding site @1 references the first numbered parameter,
 	// effectively using 1-based indexing, rather than the usual 0.
 	//
 	// For each binding site numbered i in `query_string`, there must be an i-th
 	// numbered parameter. The inverse must also be true.
-	PositionalBindings   []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings" json:"positional_bindings,omitempty"`
+	PositionalBindings   []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings,proto3" json:"positional_bindings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -935,7 +935,7 @@ type isGqlQueryParameter_ParameterType interface {
 }
 
 type GqlQueryParameter_Value struct {
-	Value *Value `protobuf:"bytes,2,opt,name=value,oneof"`
+	Value *Value `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
 }
 type GqlQueryParameter_Cursor struct {
 	Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3,oneof"`
@@ -1038,18 +1038,18 @@ func _GqlQueryParameter_OneofSizer(msg proto.Message) (n int) {
 // A batch of results produced by a query.
 type QueryResultBatch struct {
 	// The number of results skipped, typically because of an offset.
-	SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"`
+	SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"`
 	// A cursor that points to the position after the last skipped result.
 	// Will be set when `skipped_results` != 0.
 	SkippedCursor []byte `protobuf:"bytes,3,opt,name=skipped_cursor,json=skippedCursor,proto3" json:"skipped_cursor,omitempty"`
 	// The result type for every entity in `entity_results`.
-	EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,enum=google.datastore.v1.EntityResult_ResultType" json:"entity_result_type,omitempty"`
+	EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,proto3,enum=google.datastore.v1.EntityResult_ResultType" json:"entity_result_type,omitempty"`
 	// The results for this batch.
-	EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults" json:"entity_results,omitempty"`
+	EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults,proto3" json:"entity_results,omitempty"`
 	// A cursor that points to the position after the last result in the batch.
 	EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
 	// The state of the query after the current batch.
-	MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,enum=google.datastore.v1.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
+	MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,proto3,enum=google.datastore.v1.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
 	// The version number of the snapshot this batch was returned from.
 	// This applies to the range of results from the query's `start_cursor` (or
 	// the beginning of the query if no cursor was given) to this batch's
@@ -1059,7 +1059,7 @@ type QueryResultBatch struct {
 	// can have a greater snapshot version number. Each batch's snapshot version
 	// is valid for all preceding batches.
 	// The value will be zero for eventually consistent queries.
-	SnapshotVersion      int64    `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion" json:"snapshot_version,omitempty"`
+	SnapshotVersion      int64    `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion,proto3" json:"snapshot_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/datastore/v1beta3/datastore.pb.go b/googleapis/datastore/v1beta3/datastore.pb.go
index 6adce562d483b42506da6eb58956795ad0eb77d6..f3905cb10569af18077b4a395b637597cc2117b0 100644
--- a/googleapis/datastore/v1beta3/datastore.pb.go
+++ b/googleapis/datastore/v1beta3/datastore.pb.go
@@ -88,11 +88,11 @@ func (ReadOptions_ReadConsistency) EnumDescriptor() ([]byte, []int) {
 // The request for [Datastore.Lookup][google.datastore.v1beta3.Datastore.Lookup].
 type LookupRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The options for this lookup request.
-	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions,proto3" json:"read_options,omitempty"`
 	// Keys of entities to look up.
-	Keys                 []*Key   `protobuf:"bytes,3,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -148,15 +148,15 @@ type LookupResponse struct {
 	// Entities found as `ResultType.FULL` entities. The order of results in this
 	// field is undefined and has no relation to the order of the keys in the
 	// input.
-	Found []*EntityResult `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"`
+	Found []*EntityResult `protobuf:"bytes,1,rep,name=found,proto3" json:"found,omitempty"`
 	// Entities not found as `ResultType.KEY_ONLY` entities. The order of results
 	// in this field is undefined and has no relation to the order of the keys
 	// in the input.
-	Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing" json:"missing,omitempty"`
+	Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing,proto3" json:"missing,omitempty"`
 	// A list of keys that were not looked up due to resource constraints. The
 	// order of results in this field is undefined and has no relation to the
 	// order of the keys in the input.
-	Deferred             []*Key   `protobuf:"bytes,3,rep,name=deferred" json:"deferred,omitempty"`
+	Deferred             []*Key   `protobuf:"bytes,3,rep,name=deferred,proto3" json:"deferred,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -210,14 +210,14 @@ func (m *LookupResponse) GetDeferred() []*Key {
 // The request for [Datastore.RunQuery][google.datastore.v1beta3.Datastore.RunQuery].
 type RunQueryRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Entities are partitioned into subsets, identified by a partition ID.
 	// Queries are scoped to a single partition.
 	// This partition ID is normalized with the standard default context
 	// partition ID.
-	PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// The options for this query.
-	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions" json:"read_options,omitempty"`
+	ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options,json=readOptions,proto3" json:"read_options,omitempty"`
 	// The type of query.
 	//
 	// Types that are valid to be assigned to QueryType:
@@ -258,10 +258,10 @@ type isRunQueryRequest_QueryType interface {
 }
 
 type RunQueryRequest_Query struct {
-	Query *Query `protobuf:"bytes,3,opt,name=query,oneof"`
+	Query *Query `protobuf:"bytes,3,opt,name=query,proto3,oneof"`
 }
 type RunQueryRequest_GqlQuery struct {
-	GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query,json=gqlQuery,oneof"`
+	GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query,json=gqlQuery,proto3,oneof"`
 }
 
 func (*RunQueryRequest_Query) isRunQueryRequest_QueryType()    {}
@@ -386,9 +386,9 @@ func _RunQueryRequest_OneofSizer(msg proto.Message) (n int) {
 // The response for [Datastore.RunQuery][google.datastore.v1beta3.Datastore.RunQuery].
 type RunQueryResponse struct {
 	// A batch of query results (always present).
-	Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch" json:"batch,omitempty"`
+	Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"`
 	// The parsed form of the `GqlQuery` from the request, if it was set.
-	Query                *Query   `protobuf:"bytes,2,opt,name=query" json:"query,omitempty"`
+	Query                *Query   `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -435,9 +435,9 @@ func (m *RunQueryResponse) GetQuery() *Query {
 // The request for [Datastore.BeginTransaction][google.datastore.v1beta3.Datastore.BeginTransaction].
 type BeginTransactionRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Options for a new transaction.
-	TransactionOptions   *TransactionOptions `protobuf:"bytes,10,opt,name=transaction_options,json=transactionOptions" json:"transaction_options,omitempty"`
+	TransactionOptions   *TransactionOptions `protobuf:"bytes,10,opt,name=transaction_options,json=transactionOptions,proto3" json:"transaction_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -524,7 +524,7 @@ func (m *BeginTransactionResponse) GetTransaction() []byte {
 // The request for [Datastore.Rollback][google.datastore.v1beta3.Datastore.Rollback].
 type RollbackRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The transaction identifier, returned by a call to
 	// [Datastore.BeginTransaction][google.datastore.v1beta3.Datastore.BeginTransaction].
 	Transaction          []byte   `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"`
@@ -606,9 +606,9 @@ var xxx_messageInfo_RollbackResponse proto.InternalMessageInfo
 // The request for [Datastore.Commit][google.datastore.v1beta3.Datastore.Commit].
 type CommitRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The type of commit to perform. Defaults to `TRANSACTIONAL`.
-	Mode CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,enum=google.datastore.v1beta3.CommitRequest_Mode" json:"mode,omitempty"`
+	Mode CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,proto3,enum=google.datastore.v1beta3.CommitRequest_Mode" json:"mode,omitempty"`
 	// Must be set when mode is `TRANSACTIONAL`.
 	//
 	// Types that are valid to be assigned to TransactionSelector:
@@ -627,7 +627,7 @@ type CommitRequest struct {
 	//
 	// When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single
 	// entity.
-	Mutations            []*Mutation `protobuf:"bytes,6,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,6,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -757,10 +757,10 @@ func _CommitRequest_OneofSizer(msg proto.Message) (n int) {
 type CommitResponse struct {
 	// The result of performing the mutations.
 	// The i-th mutation result corresponds to the i-th mutation in the request.
-	MutationResults []*MutationResult `protobuf:"bytes,3,rep,name=mutation_results,json=mutationResults" json:"mutation_results,omitempty"`
+	MutationResults []*MutationResult `protobuf:"bytes,3,rep,name=mutation_results,json=mutationResults,proto3" json:"mutation_results,omitempty"`
 	// The number of index entries updated during the commit, or zero if none were
 	// updated.
-	IndexUpdates         int32    `protobuf:"varint,4,opt,name=index_updates,json=indexUpdates" json:"index_updates,omitempty"`
+	IndexUpdates         int32    `protobuf:"varint,4,opt,name=index_updates,json=indexUpdates,proto3" json:"index_updates,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -807,10 +807,10 @@ func (m *CommitResponse) GetIndexUpdates() int32 {
 // The request for [Datastore.AllocateIds][google.datastore.v1beta3.Datastore.AllocateIds].
 type AllocateIdsRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// A list of keys with incomplete key paths for which to allocate IDs.
 	// No key may be reserved/read-only.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -858,7 +858,7 @@ func (m *AllocateIdsRequest) GetKeys() []*Key {
 type AllocateIdsResponse struct {
 	// The keys specified in the request (in the same order), each with
 	// its key path completed with a newly allocated ID.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -898,12 +898,12 @@ func (m *AllocateIdsResponse) GetKeys() []*Key {
 // The request for [Datastore.ReserveIds][google.datastore.v1beta3.Datastore.ReserveIds].
 type ReserveIdsRequest struct {
 	// The ID of the project against which to make the request.
-	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If not empty, the ID of the database against which to make the request.
-	DatabaseId string `protobuf:"bytes,9,opt,name=database_id,json=databaseId" json:"database_id,omitempty"`
+	DatabaseId string `protobuf:"bytes,9,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"`
 	// A list of keys with complete key paths whose numeric IDs should not be
 	// auto-allocated.
-	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*Key   `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1046,19 +1046,19 @@ type isMutation_ConflictDetectionStrategy interface {
 }
 
 type Mutation_Insert struct {
-	Insert *Entity `protobuf:"bytes,4,opt,name=insert,oneof"`
+	Insert *Entity `protobuf:"bytes,4,opt,name=insert,proto3,oneof"`
 }
 type Mutation_Update struct {
-	Update *Entity `protobuf:"bytes,5,opt,name=update,oneof"`
+	Update *Entity `protobuf:"bytes,5,opt,name=update,proto3,oneof"`
 }
 type Mutation_Upsert struct {
-	Upsert *Entity `protobuf:"bytes,6,opt,name=upsert,oneof"`
+	Upsert *Entity `protobuf:"bytes,6,opt,name=upsert,proto3,oneof"`
 }
 type Mutation_Delete struct {
-	Delete *Key `protobuf:"bytes,7,opt,name=delete,oneof"`
+	Delete *Key `protobuf:"bytes,7,opt,name=delete,proto3,oneof"`
 }
 type Mutation_BaseVersion struct {
-	BaseVersion int64 `protobuf:"varint,8,opt,name=base_version,json=baseVersion,oneof"`
+	BaseVersion int64 `protobuf:"varint,8,opt,name=base_version,json=baseVersion,proto3,oneof"`
 }
 
 func (*Mutation_Insert) isMutation_Operation()                      {}
@@ -1257,16 +1257,16 @@ func _Mutation_OneofSizer(msg proto.Message) (n int) {
 type MutationResult struct {
 	// The automatically allocated key.
 	// Set only when the mutation allocated a key.
-	Key *Key `protobuf:"bytes,3,opt,name=key" json:"key,omitempty"`
+	Key *Key `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
 	// The version of the entity on the server after processing the mutation. If
 	// the mutation doesn't change anything on the server, then the version will
 	// be the version of the current entity or, if no entity is present, a version
 	// that is strictly greater than the version of any previous entity and less
 	// than the version of any possible future entity.
-	Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
+	Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
 	// Whether a conflict was detected for this mutation. Always false when a
 	// conflict detection strategy field is not set in the mutation.
-	ConflictDetected     bool     `protobuf:"varint,5,opt,name=conflict_detected,json=conflictDetected" json:"conflict_detected,omitempty"`
+	ConflictDetected     bool     `protobuf:"varint,5,opt,name=conflict_detected,json=conflictDetected,proto3" json:"conflict_detected,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1361,7 +1361,7 @@ type isReadOptions_ConsistencyType interface {
 }
 
 type ReadOptions_ReadConsistency_ struct {
-	ReadConsistency ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,json=readConsistency,enum=google.datastore.v1beta3.ReadOptions_ReadConsistency,oneof"`
+	ReadConsistency ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,json=readConsistency,proto3,enum=google.datastore.v1beta3.ReadOptions_ReadConsistency,oneof"`
 }
 type ReadOptions_Transaction struct {
 	Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3,oneof"`
@@ -1503,10 +1503,10 @@ type isTransactionOptions_Mode interface {
 }
 
 type TransactionOptions_ReadWrite_ struct {
-	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,oneof"`
+	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_ struct {
-	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,oneof"`
+	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {}
@@ -1805,8 +1805,7 @@ func (c *datastoreClient) ReserveIds(ctx context.Context, in *ReserveIdsRequest,
 	return out, nil
 }
 
-// Server API for Datastore service
-
+// DatastoreServer is the server API for Datastore service.
 type DatastoreServer interface {
 	// Looks up entities by key.
 	Lookup(context.Context, *LookupRequest) (*LookupResponse, error)
diff --git a/googleapis/datastore/v1beta3/entity.pb.go b/googleapis/datastore/v1beta3/entity.pb.go
index e2539c4bc0704ed2f7c98b12cc6467082f695c7d..18b8be93edf5d7d7ceca685fc30e1fc092a3e61f 100644
--- a/googleapis/datastore/v1beta3/entity.pb.go
+++ b/googleapis/datastore/v1beta3/entity.pb.go
@@ -43,9 +43,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Reads and writes of foreign partition IDs may fail if the project is not in an active state.
 type PartitionId struct {
 	// The ID of the project to which the entities belong.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If not empty, the ID of the namespace to which the entities belong.
-	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId" json:"namespace_id,omitempty"`
+	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -97,7 +97,7 @@ type Key struct {
 	// Entities are partitioned into subsets, currently identified by a project
 	// ID and namespace ID.
 	// Queries are scoped to a single partition.
-	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// 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
@@ -114,7 +114,7 @@ type Key struct {
 	// identifier.
 	//
 	// A path can never be empty, and a path can have at most 100 elements.
-	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path" json:"path,omitempty"`
+	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -167,7 +167,7 @@ type Key_PathElement struct {
 	// A kind matching regex `__.*__` is reserved/read-only.
 	// A kind must not contain more than 1500 bytes when UTF-8 encoded.
 	// Cannot be `""`.
-	Kind string `protobuf:"bytes,1,opt,name=kind" json:"kind,omitempty"`
+	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
 	// The type of ID.
 	//
 	// Types that are valid to be assigned to IdType:
@@ -208,10 +208,10 @@ type isKey_PathElement_IdType interface {
 }
 
 type Key_PathElement_Id struct {
-	Id int64 `protobuf:"varint,2,opt,name=id,oneof"`
+	Id int64 `protobuf:"varint,2,opt,name=id,proto3,oneof"`
 }
 type Key_PathElement_Name struct {
-	Name string `protobuf:"bytes,3,opt,name=name,oneof"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"`
 }
 
 func (*Key_PathElement_Id) isKey_PathElement_IdType()   {}
@@ -315,7 +315,7 @@ type ArrayValue struct {
 	// Values in the array.
 	// The order of this array may not be preserved if it contains a mix of
 	// indexed and unindexed values.
-	Values               []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values               []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -371,10 +371,10 @@ type Value struct {
 	//	*Value_ArrayValue
 	ValueType isValue_ValueType `protobuf_oneof:"value_type"`
 	// The `meaning` field should only be populated for backwards compatibility.
-	Meaning int32 `protobuf:"varint,14,opt,name=meaning" json:"meaning,omitempty"`
+	Meaning int32 `protobuf:"varint,14,opt,name=meaning,proto3" json:"meaning,omitempty"`
 	// If the value should be excluded from all indexes including those defined
 	// explicitly.
-	ExcludeFromIndexes   bool     `protobuf:"varint,19,opt,name=exclude_from_indexes,json=excludeFromIndexes" json:"exclude_from_indexes,omitempty"`
+	ExcludeFromIndexes   bool     `protobuf:"varint,19,opt,name=exclude_from_indexes,json=excludeFromIndexes,proto3" json:"exclude_from_indexes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,37 +409,37 @@ type isValue_ValueType interface {
 }
 
 type Value_NullValue struct {
-	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,enum=google.protobuf.NullValue,oneof"`
+	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
 }
 type Value_BooleanValue struct {
-	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,oneof"`
+	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
 }
 type Value_IntegerValue struct {
-	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,oneof"`
+	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"`
 }
 type Value_DoubleValue struct {
-	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,oneof"`
+	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
 }
 type Value_TimestampValue struct {
-	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,oneof"`
+	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
 }
 type Value_KeyValue struct {
-	KeyValue *Key `protobuf:"bytes,5,opt,name=key_value,json=keyValue,oneof"`
+	KeyValue *Key `protobuf:"bytes,5,opt,name=key_value,json=keyValue,proto3,oneof"`
 }
 type Value_StringValue struct {
-	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type Value_BlobValue struct {
 	BlobValue []byte `protobuf:"bytes,18,opt,name=blob_value,json=blobValue,proto3,oneof"`
 }
 type Value_GeoPointValue struct {
-	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,oneof"`
+	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,proto3,oneof"`
 }
 type Value_EntityValue struct {
-	EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value,json=entityValue,oneof"`
+	EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value,json=entityValue,proto3,oneof"`
 }
 type Value_ArrayValue struct {
-	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,oneof"`
+	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,proto3,oneof"`
 }
 
 func (*Value_NullValue) isValue_ValueType()      {}
@@ -785,14 +785,14 @@ type Entity struct {
 	// 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.
-	Key *Key `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key *Key `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// 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 `""`.
-	Properties           map[string]*Value `protobuf:"bytes,3,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Properties           map[string]*Value `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/datastore/v1beta3/query.pb.go b/googleapis/datastore/v1beta3/query.pb.go
index 72bc549f1c8136fdf955e2192b6189c083e4302e..559802ad4b7817e001c14de5a4e156338b92bcb1 100644
--- a/googleapis/datastore/v1beta3/query.pb.go
+++ b/googleapis/datastore/v1beta3/query.pb.go
@@ -203,7 +203,7 @@ func (QueryResultBatch_MoreResultsType) EnumDescriptor() ([]byte, []int) {
 // The result of fetching an entity from Datastore.
 type EntityResult struct {
 	// The resulting entity.
-	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
+	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
 	// The version of the entity, a strictly positive number that monotonically
 	// increases with changes to the entity.
 	//
@@ -213,7 +213,7 @@ type EntityResult struct {
 	// For [missing][google.datastore.v1beta3.LookupResponse.missing] entities in `LookupResponse`, this
 	// is the version of the snapshot that was used to look up the entity, and it
 	// is always set except for eventually consistent reads.
-	Version int64 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"`
+	Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
 	// A cursor that points to the position after the result entity.
 	// Set only when the `EntityResult` is part of a `QueryResultBatch` message.
 	Cursor               []byte   `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
@@ -270,18 +270,18 @@ func (m *EntityResult) GetCursor() []byte {
 // A query for entities.
 type Query struct {
 	// The projection to return. Defaults to returning all properties.
-	Projection []*Projection `protobuf:"bytes,2,rep,name=projection" json:"projection,omitempty"`
+	Projection []*Projection `protobuf:"bytes,2,rep,name=projection,proto3" json:"projection,omitempty"`
 	// The kinds to query (if empty, returns entities of all kinds).
 	// Currently at most 1 kind may be specified.
-	Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind" json:"kind,omitempty"`
+	Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind,proto3" json:"kind,omitempty"`
 	// The filter to apply.
-	Filter *Filter `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter *Filter `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The order to apply to the query results (if empty, order is unspecified).
-	Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order" json:"order,omitempty"`
+	Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order,proto3" json:"order,omitempty"`
 	// The properties to make distinct. The query results will contain the first
 	// result for each distinct combination of values for the given properties
 	// (if empty, all results are returned).
-	DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn" json:"distinct_on,omitempty"`
+	DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn,proto3" json:"distinct_on,omitempty"`
 	// A starting point for the query results. Query cursors are
 	// returned in query result batches and
 	// [can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
@@ -292,12 +292,12 @@ type Query struct {
 	EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
 	// The number of results to skip. Applies before limit, but after all other
 	// constraints. Optional. Must be >= 0 if specified.
-	Offset int32 `protobuf:"varint,10,opt,name=offset" json:"offset,omitempty"`
+	Offset int32 `protobuf:"varint,10,opt,name=offset,proto3" json:"offset,omitempty"`
 	// The maximum number of results to return. Applies after all other
 	// constraints. Optional.
 	// Unspecified is interpreted as no limit.
 	// Must be >= 0 if specified.
-	Limit                *wrappers.Int32Value `protobuf:"bytes,12,opt,name=limit" json:"limit,omitempty"`
+	Limit                *wrappers.Int32Value `protobuf:"bytes,12,opt,name=limit,proto3" json:"limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -393,7 +393,7 @@ func (m *Query) GetLimit() *wrappers.Int32Value {
 // A representation of a kind.
 type KindExpression struct {
 	// The name of the kind.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,7 +434,7 @@ func (m *KindExpression) GetName() string {
 type PropertyReference struct {
 	// The name of the property.
 	// If name includes "."s, it may be interpreted as a property name path.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -474,7 +474,7 @@ func (m *PropertyReference) GetName() string {
 // A representation of a property in a projection.
 type Projection struct {
 	// The property to project.
-	Property             *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property             *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -514,9 +514,9 @@ func (m *Projection) GetProperty() *PropertyReference {
 // The desired order for a specific property.
 type PropertyOrder struct {
 	// The property to order by.
-	Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// The direction to order by. Defaults to `ASCENDING`.
-	Direction            PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,enum=google.datastore.v1beta3.PropertyOrder_Direction" json:"direction,omitempty"`
+	Direction            PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.datastore.v1beta3.PropertyOrder_Direction" json:"direction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -602,10 +602,10 @@ type isFilter_FilterType interface {
 }
 
 type Filter_CompositeFilter struct {
-	CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,oneof"`
+	CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"`
 }
 type Filter_PropertyFilter struct {
-	PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,oneof"`
+	PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,proto3,oneof"`
 }
 
 func (*Filter_CompositeFilter) isFilter_FilterType() {}
@@ -709,10 +709,10 @@ func _Filter_OneofSizer(msg proto.Message) (n int) {
 // A filter that merges multiple other filters using the given operator.
 type CompositeFilter struct {
 	// The operator for combining multiple filters.
-	Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,enum=google.datastore.v1beta3.CompositeFilter_Operator" json:"op,omitempty"`
+	Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.datastore.v1beta3.CompositeFilter_Operator" json:"op,omitempty"`
 	// The list of filters to combine.
 	// Must contain at least one filter.
-	Filters              []*Filter `protobuf:"bytes,2,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -759,11 +759,11 @@ func (m *CompositeFilter) GetFilters() []*Filter {
 // A filter on a specific property.
 type PropertyFilter struct {
 	// The property to filter by.
-	Property *PropertyReference `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
+	Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"`
 	// The operator to filter by.
-	Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,enum=google.datastore.v1beta3.PropertyFilter_Operator" json:"op,omitempty"`
+	Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.datastore.v1beta3.PropertyFilter_Operator" json:"op,omitempty"`
 	// The value to compare the property to.
-	Value                *Value   `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
+	Value                *Value   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -818,24 +818,24 @@ func (m *PropertyFilter) GetValue() *Value {
 type GqlQuery struct {
 	// A string of the format described
 	// [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
-	QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString" json:"query_string,omitempty"`
+	QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString,proto3" json:"query_string,omitempty"`
 	// When false, the query string must not contain any literals and instead must
 	// bind all values. For example,
 	// `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
 	// `SELECT * FROM Kind WHERE a = @value` is.
-	AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals" json:"allow_literals,omitempty"`
+	AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals,proto3" json:"allow_literals,omitempty"`
 	// For each non-reserved named binding site in the query string, there must be
 	// a named parameter with that name, but not necessarily the inverse.
 	//
 	// Key must match regex `[A-Za-z_$][A-Za-z_$0-9]*`, must not match regex
 	// `__.*__`, and must not be `""`.
-	NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings,proto3" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Numbered binding site @1 references the first numbered parameter,
 	// effectively using 1-based indexing, rather than the usual 0.
 	//
 	// For each binding site numbered i in `query_string`, there must be an i-th
 	// numbered parameter. The inverse must also be true.
-	PositionalBindings   []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings" json:"positional_bindings,omitempty"`
+	PositionalBindings   []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings,proto3" json:"positional_bindings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -935,7 +935,7 @@ type isGqlQueryParameter_ParameterType interface {
 }
 
 type GqlQueryParameter_Value struct {
-	Value *Value `protobuf:"bytes,2,opt,name=value,oneof"`
+	Value *Value `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
 }
 type GqlQueryParameter_Cursor struct {
 	Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3,oneof"`
@@ -1038,18 +1038,18 @@ func _GqlQueryParameter_OneofSizer(msg proto.Message) (n int) {
 // A batch of results produced by a query.
 type QueryResultBatch struct {
 	// The number of results skipped, typically because of an offset.
-	SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"`
+	SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"`
 	// A cursor that points to the position after the last skipped result.
 	// Will be set when `skipped_results` != 0.
 	SkippedCursor []byte `protobuf:"bytes,3,opt,name=skipped_cursor,json=skippedCursor,proto3" json:"skipped_cursor,omitempty"`
 	// The result type for every entity in `entity_results`.
-	EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,enum=google.datastore.v1beta3.EntityResult_ResultType" json:"entity_result_type,omitempty"`
+	EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,proto3,enum=google.datastore.v1beta3.EntityResult_ResultType" json:"entity_result_type,omitempty"`
 	// The results for this batch.
-	EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults" json:"entity_results,omitempty"`
+	EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults,proto3" json:"entity_results,omitempty"`
 	// A cursor that points to the position after the last result in the batch.
 	EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"`
 	// The state of the query after the current batch.
-	MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,enum=google.datastore.v1beta3.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
+	MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,proto3,enum=google.datastore.v1beta3.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
 	// The version number of the snapshot this batch was returned from.
 	// This applies to the range of results from the query's `start_cursor` (or
 	// the beginning of the query if no cursor was given) to this batch's
@@ -1059,7 +1059,7 @@ type QueryResultBatch struct {
 	// can have a greater snapshot version number. Each batch's snapshot version
 	// is valid for all preceding batches.
 	// The value will be zero for eventually consistent queries.
-	SnapshotVersion      int64    `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion" json:"snapshot_version,omitempty"`
+	SnapshotVersion      int64    `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion,proto3" json:"snapshot_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/build/v1/build_events.pb.go b/googleapis/devtools/build/v1/build_events.pb.go
index eb20dd0d42254e7e1531da804de4c5796c4ae94f..04df02c6ce9e5aca2192c4da1103ab5ff84863da 100644
--- a/googleapis/devtools/build/v1/build_events.pb.go
+++ b/googleapis/devtools/build/v1/build_events.pb.go
@@ -125,7 +125,7 @@ func (StreamId_BuildComponent) EnumDescriptor() ([]byte, []int) {
 // message does not include field for uniquely identifying an event.
 type BuildEvent struct {
 	// The timestamp of this event.
-	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime" json:"event_time,omitempty"`
+	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
 	// //////////////////////////////////////////////////////////////////////////
 	// Events that indicate a state change of a build request in the build
 	// queue.
@@ -175,31 +175,31 @@ type isBuildEvent_Event interface {
 }
 
 type BuildEvent_InvocationAttemptStarted_ struct {
-	InvocationAttemptStarted *BuildEvent_InvocationAttemptStarted `protobuf:"bytes,51,opt,name=invocation_attempt_started,json=invocationAttemptStarted,oneof"`
+	InvocationAttemptStarted *BuildEvent_InvocationAttemptStarted `protobuf:"bytes,51,opt,name=invocation_attempt_started,json=invocationAttemptStarted,proto3,oneof"`
 }
 type BuildEvent_InvocationAttemptFinished_ struct {
-	InvocationAttemptFinished *BuildEvent_InvocationAttemptFinished `protobuf:"bytes,52,opt,name=invocation_attempt_finished,json=invocationAttemptFinished,oneof"`
+	InvocationAttemptFinished *BuildEvent_InvocationAttemptFinished `protobuf:"bytes,52,opt,name=invocation_attempt_finished,json=invocationAttemptFinished,proto3,oneof"`
 }
 type BuildEvent_BuildEnqueued_ struct {
-	BuildEnqueued *BuildEvent_BuildEnqueued `protobuf:"bytes,53,opt,name=build_enqueued,json=buildEnqueued,oneof"`
+	BuildEnqueued *BuildEvent_BuildEnqueued `protobuf:"bytes,53,opt,name=build_enqueued,json=buildEnqueued,proto3,oneof"`
 }
 type BuildEvent_BuildFinished_ struct {
-	BuildFinished *BuildEvent_BuildFinished `protobuf:"bytes,55,opt,name=build_finished,json=buildFinished,oneof"`
+	BuildFinished *BuildEvent_BuildFinished `protobuf:"bytes,55,opt,name=build_finished,json=buildFinished,proto3,oneof"`
 }
 type BuildEvent_ConsoleOutput_ struct {
-	ConsoleOutput *BuildEvent_ConsoleOutput `protobuf:"bytes,56,opt,name=console_output,json=consoleOutput,oneof"`
+	ConsoleOutput *BuildEvent_ConsoleOutput `protobuf:"bytes,56,opt,name=console_output,json=consoleOutput,proto3,oneof"`
 }
 type BuildEvent_ComponentStreamFinished struct {
-	ComponentStreamFinished *BuildEvent_BuildComponentStreamFinished `protobuf:"bytes,59,opt,name=component_stream_finished,json=componentStreamFinished,oneof"`
+	ComponentStreamFinished *BuildEvent_BuildComponentStreamFinished `protobuf:"bytes,59,opt,name=component_stream_finished,json=componentStreamFinished,proto3,oneof"`
 }
 type BuildEvent_BazelEvent struct {
-	BazelEvent *any.Any `protobuf:"bytes,60,opt,name=bazel_event,json=bazelEvent,oneof"`
+	BazelEvent *any.Any `protobuf:"bytes,60,opt,name=bazel_event,json=bazelEvent,proto3,oneof"`
 }
 type BuildEvent_BuildExecutionEvent struct {
-	BuildExecutionEvent *any.Any `protobuf:"bytes,61,opt,name=build_execution_event,json=buildExecutionEvent,oneof"`
+	BuildExecutionEvent *any.Any `protobuf:"bytes,61,opt,name=build_execution_event,json=buildExecutionEvent,proto3,oneof"`
 }
 type BuildEvent_SourceFetchEvent struct {
-	SourceFetchEvent *any.Any `protobuf:"bytes,62,opt,name=source_fetch_event,json=sourceFetchEvent,oneof"`
+	SourceFetchEvent *any.Any `protobuf:"bytes,62,opt,name=source_fetch_event,json=sourceFetchEvent,proto3,oneof"`
 }
 
 func (*BuildEvent_InvocationAttemptStarted_) isBuildEvent_Event()  {}
@@ -501,7 +501,7 @@ type BuildEvent_InvocationAttemptStarted struct {
 	// The number of the invocation attempt, starting at 1 and increasing by 1
 	// for each new attempt. Can be used to determine if there is a later
 	// invocation attempt replacing the current one a client is processing.
-	AttemptNumber        int64    `protobuf:"varint,1,opt,name=attempt_number,json=attemptNumber" json:"attempt_number,omitempty"`
+	AttemptNumber        int64    `protobuf:"varint,1,opt,name=attempt_number,json=attemptNumber,proto3" json:"attempt_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -541,9 +541,9 @@ func (m *BuildEvent_InvocationAttemptStarted) GetAttemptNumber() int64 {
 // Notification that an invocation attempt has finished.
 type BuildEvent_InvocationAttemptFinished struct {
 	// The exit code of the build tool.
-	ExitCode *wrappers.Int32Value `protobuf:"bytes,2,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"`
+	ExitCode *wrappers.Int32Value `protobuf:"bytes,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
 	// Final status of the invocation.
-	InvocationStatus     *BuildStatus `protobuf:"bytes,3,opt,name=invocation_status,json=invocationStatus" json:"invocation_status,omitempty"`
+	InvocationStatus     *BuildStatus `protobuf:"bytes,3,opt,name=invocation_status,json=invocationStatus,proto3" json:"invocation_status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -626,7 +626,7 @@ var xxx_messageInfo_BuildEvent_BuildEnqueued proto.InternalMessageInfo
 // Individual invocations trigger InvocationFinished when they finish.
 type BuildEvent_BuildFinished struct {
 	// Final status of the build.
-	Status               *BuildStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
+	Status               *BuildStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -666,7 +666,7 @@ func (m *BuildEvent_BuildFinished) GetStatus() *BuildStatus {
 // Textual output written to standard output or standard error.
 type BuildEvent_ConsoleOutput struct {
 	// The output stream type.
-	Type ConsoleOutputStream `protobuf:"varint,1,opt,name=type,enum=google.devtools.build.v1.ConsoleOutputStream" json:"type,omitempty"`
+	Type ConsoleOutputStream `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.build.v1.ConsoleOutputStream" json:"type,omitempty"`
 	// The output stream content.
 	//
 	// Types that are valid to be assigned to Output:
@@ -707,7 +707,7 @@ type isBuildEvent_ConsoleOutput_Output interface {
 }
 
 type BuildEvent_ConsoleOutput_TextOutput struct {
-	TextOutput string `protobuf:"bytes,2,opt,name=text_output,json=textOutput,oneof"`
+	TextOutput string `protobuf:"bytes,2,opt,name=text_output,json=textOutput,proto3,oneof"`
 }
 type BuildEvent_ConsoleOutput_BinaryOutput struct {
 	BinaryOutput []byte `protobuf:"bytes,3,opt,name=binary_output,json=binaryOutput,proto3,oneof"`
@@ -814,7 +814,7 @@ func _BuildEvent_ConsoleOutput_OneofSizer(msg proto.Message) (n int) {
 // component other than CONTROLLER (See StreamId.BuildComponents).
 type BuildEvent_BuildComponentStreamFinished struct {
 	// How the event stream finished.
-	Type                 BuildEvent_BuildComponentStreamFinished_FinishType `protobuf:"varint,1,opt,name=type,enum=google.devtools.build.v1.BuildEvent_BuildComponentStreamFinished_FinishType" json:"type,omitempty"`
+	Type                 BuildEvent_BuildComponentStreamFinished_FinishType `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.build.v1.BuildEvent_BuildComponentStreamFinished_FinishType" json:"type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                           `json:"-"`
 	XXX_unrecognized     []byte                                             `json:"-"`
 	XXX_sizecache        int32                                              `json:"-"`
@@ -856,12 +856,12 @@ func (m *BuildEvent_BuildComponentStreamFinished) GetType() BuildEvent_BuildComp
 // Unique identifier for a build event stream.
 type StreamId struct {
 	// The id of a Build message.
-	BuildId string `protobuf:"bytes,1,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
+	BuildId string `protobuf:"bytes,1,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
 	// The unique invocation ID within this build.
 	// It should be the same as {invocation} (below) during the migration.
-	InvocationId string `protobuf:"bytes,6,opt,name=invocation_id,json=invocationId" json:"invocation_id,omitempty"`
+	InvocationId string `protobuf:"bytes,6,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"`
 	// The component that emitted this event.
-	Component            StreamId_BuildComponent `protobuf:"varint,3,opt,name=component,enum=google.devtools.build.v1.StreamId_BuildComponent" json:"component,omitempty"`
+	Component            StreamId_BuildComponent `protobuf:"varint,3,opt,name=component,proto3,enum=google.devtools.build.v1.StreamId_BuildComponent" json:"component,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
diff --git a/googleapis/devtools/build/v1/build_status.pb.go b/googleapis/devtools/build/v1/build_status.pb.go
index c8b4216e2c76fdbc81b7ff2654ca9d649dfd6f22..a362821e7f92915c947913f42c55e82eb4f44167 100644
--- a/googleapis/devtools/build/v1/build_status.pb.go
+++ b/googleapis/devtools/build/v1/build_status.pb.go
@@ -77,9 +77,9 @@ func (BuildStatus_Result) EnumDescriptor() ([]byte, []int) {
 // Status used for both invocation attempt and overall build completion.
 type BuildStatus struct {
 	// The end result.
-	Result BuildStatus_Result `protobuf:"varint,1,opt,name=result,enum=google.devtools.build.v1.BuildStatus_Result" json:"result,omitempty"`
+	Result BuildStatus_Result `protobuf:"varint,1,opt,name=result,proto3,enum=google.devtools.build.v1.BuildStatus_Result" json:"result,omitempty"`
 	// Fine-grained diagnostic information to complement the status.
-	Details              *any.Any `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
+	Details              *any.Any `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/build/v1/publish_build_event.pb.go b/googleapis/devtools/build/v1/publish_build_event.pb.go
index d6e04218179ecccca08154559608bec3f6693547..64cdd6bd94797125a887d93bea1e1d605e818653 100644
--- a/googleapis/devtools/build/v1/publish_build_event.pb.go
+++ b/googleapis/devtools/build/v1/publish_build_event.pb.go
@@ -63,23 +63,23 @@ func (PublishLifecycleEventRequest_ServiceLevel) EnumDescriptor() ([]byte, []int
 // - BuildFinished: When a build is finished.
 type PublishLifecycleEventRequest struct {
 	// The interactivity of this build.
-	ServiceLevel PublishLifecycleEventRequest_ServiceLevel `protobuf:"varint,1,opt,name=service_level,json=serviceLevel,enum=google.devtools.build.v1.PublishLifecycleEventRequest_ServiceLevel" json:"service_level,omitempty"`
+	ServiceLevel PublishLifecycleEventRequest_ServiceLevel `protobuf:"varint,1,opt,name=service_level,json=serviceLevel,proto3,enum=google.devtools.build.v1.PublishLifecycleEventRequest_ServiceLevel" json:"service_level,omitempty"`
 	// The lifecycle build event. If this is a build tool event, the RPC will fail
 	// with INVALID_REQUEST.
-	BuildEvent *OrderedBuildEvent `protobuf:"bytes,2,opt,name=build_event,json=buildEvent" json:"build_event,omitempty"`
+	BuildEvent *OrderedBuildEvent `protobuf:"bytes,2,opt,name=build_event,json=buildEvent,proto3" json:"build_event,omitempty"`
 	// If the next event for this build or invocation (depending on the event
 	// type) hasn't been published after this duration from when {build_event}
 	// is written to BES, consider this stream expired. If this field is not set,
 	// BES backend will use its own default value.
-	StreamTimeout *duration.Duration `protobuf:"bytes,3,opt,name=stream_timeout,json=streamTimeout" json:"stream_timeout,omitempty"`
+	StreamTimeout *duration.Duration `protobuf:"bytes,3,opt,name=stream_timeout,json=streamTimeout,proto3" json:"stream_timeout,omitempty"`
 	// Additional information about a build request. These are define by the event
 	// publishers, and the Build Event Service does not validate or interpret
 	// them. They are used while notifying internal systems of new builds and
 	// invocations if the OrderedBuildEvent.event type is
 	// BuildEnqueued/InvocationAttemptStarted.
-	NotificationKeywords []string `protobuf:"bytes,4,rep,name=notification_keywords,json=notificationKeywords" json:"notification_keywords,omitempty"`
+	NotificationKeywords []string `protobuf:"bytes,4,rep,name=notification_keywords,json=notificationKeywords,proto3" json:"notification_keywords,omitempty"`
 	// This field identifies which project (if any) the build is associated with.
-	ProjectId            string   `protobuf:"bytes,6,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,6,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -148,9 +148,9 @@ func (m *PublishLifecycleEventRequest) GetProjectId() string {
 // RPC errors, hence not recorded by this proto.
 type PublishBuildToolEventStreamResponse struct {
 	// The stream that contains this event.
-	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
+	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
 	// The sequence number of this event that has been committed.
-	SequenceNumber       int64    `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"`
+	SequenceNumber       int64    `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -198,13 +198,13 @@ func (m *PublishBuildToolEventStreamResponse) GetSequenceNumber() int64 {
 // its position in that stream.
 type OrderedBuildEvent struct {
 	// Which build event stream this event belongs to.
-	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
+	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
 	// The position of this event in the stream. The sequence numbers for a build
 	// event stream should be a sequence of consecutive natural numbers starting
 	// from one. (1, 2, 3, ...)
-	SequenceNumber int64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"`
+	SequenceNumber int64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"`
 	// The actual event.
-	Event                *BuildEvent `protobuf:"bytes,3,opt,name=event" json:"event,omitempty"`
+	Event                *BuildEvent `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -257,21 +257,21 @@ func (m *OrderedBuildEvent) GetEvent() *BuildEvent {
 
 type PublishBuildToolEventStreamRequest struct {
 	// Which build event stream this event belongs to.
-	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"` // Deprecated: Do not use.
+	StreamId *StreamId `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // Deprecated: Do not use.
 	// The position of this event in the stream. The sequence numbers for a build
 	// event stream should be a sequence of consecutive natural numbers starting
 	// from one. (1, 2, 3, ...)
-	SequenceNumber int64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"` // Deprecated: Do not use.
+	SequenceNumber int64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` // Deprecated: Do not use.
 	// The actual event.
-	Event *BuildEvent `protobuf:"bytes,3,opt,name=event" json:"event,omitempty"` // Deprecated: Do not use.
+	Event *BuildEvent `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"` // Deprecated: Do not use.
 	// The build event with position info.
 	// New publishing clients should use this field rather than the 3 above.
-	OrderedBuildEvent *OrderedBuildEvent `protobuf:"bytes,4,opt,name=ordered_build_event,json=orderedBuildEvent" json:"ordered_build_event,omitempty"`
+	OrderedBuildEvent *OrderedBuildEvent `protobuf:"bytes,4,opt,name=ordered_build_event,json=orderedBuildEvent,proto3" json:"ordered_build_event,omitempty"`
 	// The keywords to be attached to the notification which notifies the start
 	// of a new build event stream. BES only reads this field when sequence_number
 	// or ordered_build_event.sequence_number is 1 in this message. If this field
 	// is empty, BES will not publish notification messages for this stream.
-	NotificationKeywords []string `protobuf:"bytes,5,rep,name=notification_keywords,json=notificationKeywords" json:"notification_keywords,omitempty"`
+	NotificationKeywords []string `protobuf:"bytes,5,rep,name=notification_keywords,json=notificationKeywords,proto3" json:"notification_keywords,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -423,8 +423,7 @@ func (x *publishBuildEventPublishBuildToolEventStreamClient) Recv() (*PublishBui
 	return m, nil
 }
 
-// Server API for PublishBuildEvent service
-
+// PublishBuildEventServer is the server API for PublishBuildEvent service.
 type PublishBuildEventServer interface {
 	// Publish a build event stating the new state of a build (typically from the
 	// build queue). If the event is a BuildEnqueued event, also register the new
diff --git a/googleapis/devtools/cloudbuild/v1/cloudbuild.pb.go b/googleapis/devtools/cloudbuild/v1/cloudbuild.pb.go
index b45de46207a261219508d2a029362764743b5509..2dbf74930471d66a1ca2db12fba61a557138b09c 100644
--- a/googleapis/devtools/cloudbuild/v1/cloudbuild.pb.go
+++ b/googleapis/devtools/cloudbuild/v1/cloudbuild.pb.go
@@ -227,9 +227,9 @@ func (BuildOptions_LogStreamingOption) EnumDescriptor() ([]byte, []int) {
 // Specifies a build to retry.
 type RetryBuildRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Build ID of the original build.
-	Id                   string   `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -276,11 +276,11 @@ func (m *RetryBuildRequest) GetId() string {
 // Specifies a build trigger to run and the source to use.
 type RunBuildTriggerRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the trigger.
-	TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	// Source to build against this trigger.
-	Source               *RepoSource `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"`
+	Source               *RepoSource `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -336,15 +336,15 @@ type StorageSource struct {
 	// Google Cloud Storage bucket containing the source (see
 	// [Bucket Name
 	// Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-	Bucket string `protobuf:"bytes,1,opt,name=bucket" json:"bucket,omitempty"`
+	Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"`
 	// Google Cloud Storage object containing the source.
 	//
 	// This object must be a gzipped archive file (`.tar.gz`) containing source to
 	// build.
-	Object string `protobuf:"bytes,2,opt,name=object" json:"object,omitempty"`
+	Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"`
 	// Google Cloud Storage generation for the object. If the generation is
 	// omitted, the latest generation will be used.
-	Generation           int64    `protobuf:"varint,3,opt,name=generation" json:"generation,omitempty"`
+	Generation           int64    `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -399,10 +399,10 @@ func (m *StorageSource) GetGeneration() int64 {
 type RepoSource struct {
 	// ID of the project that owns the Cloud Source Repository. If omitted, the
 	// project ID requesting the build is assumed.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Name of the Cloud Source Repository. If omitted, the name "default" is
 	// assumed.
-	RepoName string `protobuf:"bytes,2,opt,name=repo_name,json=repoName" json:"repo_name,omitempty"`
+	RepoName string `protobuf:"bytes,2,opt,name=repo_name,json=repoName,proto3" json:"repo_name,omitempty"`
 	// A revision within the Cloud Source Repository must be specified in
 	// one of these ways.
 	//
@@ -415,7 +415,7 @@ type RepoSource struct {
 	//
 	// This must be a relative path. If a step's `dir` is specified and is an
 	// absolute path, this value is ignored for that step's execution.
-	Dir                  string   `protobuf:"bytes,7,opt,name=dir" json:"dir,omitempty"`
+	Dir                  string   `protobuf:"bytes,7,opt,name=dir,proto3" json:"dir,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -450,13 +450,13 @@ type isRepoSource_Revision interface {
 }
 
 type RepoSource_BranchName struct {
-	BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,oneof"`
+	BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,proto3,oneof"`
 }
 type RepoSource_TagName struct {
-	TagName string `protobuf:"bytes,4,opt,name=tag_name,json=tagName,oneof"`
+	TagName string `protobuf:"bytes,4,opt,name=tag_name,json=tagName,proto3,oneof"`
 }
 type RepoSource_CommitSha struct {
-	CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,oneof"`
+	CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,proto3,oneof"`
 }
 
 func (*RepoSource_BranchName) isRepoSource_Revision() {}
@@ -635,10 +635,10 @@ type isSource_Source interface {
 }
 
 type Source_StorageSource struct {
-	StorageSource *StorageSource `protobuf:"bytes,2,opt,name=storage_source,json=storageSource,oneof"`
+	StorageSource *StorageSource `protobuf:"bytes,2,opt,name=storage_source,json=storageSource,proto3,oneof"`
 }
 type Source_RepoSource struct {
-	RepoSource *RepoSource `protobuf:"bytes,3,opt,name=repo_source,json=repoSource,oneof"`
+	RepoSource *RepoSource `protobuf:"bytes,3,opt,name=repo_source,json=repoSource,proto3,oneof"`
 }
 
 func (*Source_StorageSource) isSource_Source() {}
@@ -743,12 +743,12 @@ func _Source_OneofSizer(msg proto.Message) (n int) {
 type BuiltImage struct {
 	// Name used to push the container image to Google Container Registry, as
 	// presented to `docker push`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Docker Registry 2.0 digest.
-	Digest string `protobuf:"bytes,3,opt,name=digest" json:"digest,omitempty"`
+	Digest string `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"`
 	// Stores timing information for pushing the specified image.
 	// @OutputOnly
-	PushTiming           *TimeSpan `protobuf:"bytes,4,opt,name=push_timing,json=pushTiming" json:"push_timing,omitempty"`
+	PushTiming           *TimeSpan `protobuf:"bytes,4,opt,name=push_timing,json=pushTiming,proto3" json:"push_timing,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -818,19 +818,19 @@ type BuildStep struct {
 	// If you built an image in a previous build step, it will be stored in the
 	// host's Docker daemon's cache and is available to use as the name for a
 	// later build step.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A list of environment variable definitions to be used when running a step.
 	//
 	// The elements are of the form "KEY=VALUE" for the environment variable "KEY"
 	// being given the value "VALUE".
-	Env []string `protobuf:"bytes,2,rep,name=env" json:"env,omitempty"`
+	Env []string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"`
 	// A list of arguments that will be presented to the step when it is started.
 	//
 	// If the image used to run the step's container has an entrypoint, the `args`
 	// are used as arguments to that entrypoint. If the image does not define
 	// an entrypoint, the first element in args is used as the entrypoint,
 	// and the remainder will be used as arguments.
-	Args []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Working directory to use when running this step's container.
 	//
 	// If this value is a relative path, it is relative to the build's working
@@ -841,23 +841,23 @@ type BuildStep struct {
 	// If the build specifies a `RepoSource` with `dir` and a step with a `dir`,
 	// which specifies an absolute path, the `RepoSource` `dir` is ignored for
 	// the step's execution.
-	Dir string `protobuf:"bytes,4,opt,name=dir" json:"dir,omitempty"`
+	Dir string `protobuf:"bytes,4,opt,name=dir,proto3" json:"dir,omitempty"`
 	// Unique identifier for this build step, used in `wait_for` to
 	// reference this build step as a dependency.
-	Id string `protobuf:"bytes,5,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
 	// The ID(s) of the step(s) that this build step depends on.
 	// This build step will not start until all the build steps in `wait_for`
 	// have completed successfully. If `wait_for` is empty, this build step will
 	// start when all previous build steps in the `Build.Steps` list have
 	// completed successfully.
-	WaitFor []string `protobuf:"bytes,6,rep,name=wait_for,json=waitFor" json:"wait_for,omitempty"`
+	WaitFor []string `protobuf:"bytes,6,rep,name=wait_for,json=waitFor,proto3" json:"wait_for,omitempty"`
 	// Entrypoint to be used instead of the build step image's default entrypoint.
 	// If unset, the image's default entrypoint is used.
-	Entrypoint string `protobuf:"bytes,7,opt,name=entrypoint" json:"entrypoint,omitempty"`
+	Entrypoint string `protobuf:"bytes,7,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"`
 	// A list of environment variables which are encrypted using a Cloud Key
 	// Management Service crypto key. These values must be specified in the
 	// build's `Secret`.
-	SecretEnv []string `protobuf:"bytes,8,rep,name=secret_env,json=secretEnv" json:"secret_env,omitempty"`
+	SecretEnv []string `protobuf:"bytes,8,rep,name=secret_env,json=secretEnv,proto3" json:"secret_env,omitempty"`
 	// List of volumes to mount into the build step.
 	//
 	// Each volume will be created as an empty volume prior to execution of the
@@ -866,19 +866,19 @@ type BuildStep struct {
 	//
 	// Using a named volume in only one step is not valid as it is indicative
 	// of a mis-configured build request.
-	Volumes []*Volume `protobuf:"bytes,9,rep,name=volumes" json:"volumes,omitempty"`
+	Volumes []*Volume `protobuf:"bytes,9,rep,name=volumes,proto3" json:"volumes,omitempty"`
 	// Stores timing information for executing this build step.
 	// @OutputOnly
-	Timing *TimeSpan `protobuf:"bytes,10,opt,name=timing" json:"timing,omitempty"`
+	Timing *TimeSpan `protobuf:"bytes,10,opt,name=timing,proto3" json:"timing,omitempty"`
 	// Time limit for executing this build step. If not defined, the step has no
 	// time limit and will be allowed to continue to run until either it completes
 	// or the build itself times out.
-	Timeout *duration.Duration `protobuf:"bytes,11,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,11,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// Status of the build step. At this time, build step status is only updated
 	// on build completion; step status is not updated in real-time as the build
 	// progresses.
 	// @OutputOnly
-	Status               Build_Status `protobuf:"varint,12,opt,name=status,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"`
+	Status               Build_Status `protobuf:"varint,12,opt,name=status,proto3,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -999,12 +999,12 @@ type Volume struct {
 	//
 	// Volume names must be unique per build step and must be valid names for
 	// Docker volumes. Each named volume must be used by at least two build steps.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Path at which to mount the volume.
 	//
 	// Paths must be absolute and cannot conflict with other volume paths on the
 	// same build step or with certain reserved volume paths.
-	Path                 string   `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
+	Path                 string   `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1051,14 +1051,14 @@ func (m *Volume) GetPath() string {
 // Artifacts created by the build pipeline.
 type Results struct {
 	// Container images that were built as a part of the build.
-	Images []*BuiltImage `protobuf:"bytes,2,rep,name=images" json:"images,omitempty"`
+	Images []*BuiltImage `protobuf:"bytes,2,rep,name=images,proto3" json:"images,omitempty"`
 	// List of build step digests, in the order corresponding to build step
 	// indices.
-	BuildStepImages []string `protobuf:"bytes,3,rep,name=build_step_images,json=buildStepImages" json:"build_step_images,omitempty"`
+	BuildStepImages []string `protobuf:"bytes,3,rep,name=build_step_images,json=buildStepImages,proto3" json:"build_step_images,omitempty"`
 	// Path to the artifact manifest. Only populated when artifacts are uploaded.
-	ArtifactManifest string `protobuf:"bytes,4,opt,name=artifact_manifest,json=artifactManifest" json:"artifact_manifest,omitempty"`
+	ArtifactManifest string `protobuf:"bytes,4,opt,name=artifact_manifest,json=artifactManifest,proto3" json:"artifact_manifest,omitempty"`
 	// Number of artifacts uploaded. Only populated when artifacts are uploaded.
-	NumArtifacts         int64    `protobuf:"varint,5,opt,name=num_artifacts,json=numArtifacts" json:"num_artifacts,omitempty"`
+	NumArtifacts         int64    `protobuf:"varint,5,opt,name=num_artifacts,json=numArtifacts,proto3" json:"num_artifacts,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1122,9 +1122,9 @@ type ArtifactResult struct {
 	// The path of an artifact in a Google Cloud Storage bucket, with the
 	// generation number. For example,
 	// `gs://mybucket/path/to/output.jar#generation`.
-	Location string `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
 	// The file hash of the artifact.
-	FileHash             []*FileHashes `protobuf:"bytes,2,rep,name=file_hash,json=fileHash" json:"file_hash,omitempty"`
+	FileHash             []*FileHashes `protobuf:"bytes,2,rep,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1188,41 +1188,41 @@ func (m *ArtifactResult) GetFileHash() []*FileHashes {
 type Build struct {
 	// Unique identifier of the build.
 	// @OutputOnly
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// ID of the project.
 	// @OutputOnly.
-	ProjectId string `protobuf:"bytes,16,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,16,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Status of the build.
 	// @OutputOnly
-	Status Build_Status `protobuf:"varint,2,opt,name=status,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"`
+	Status Build_Status `protobuf:"varint,2,opt,name=status,proto3,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"`
 	// Customer-readable message about the current status.
 	// @OutputOnly
-	StatusDetail string `protobuf:"bytes,24,opt,name=status_detail,json=statusDetail" json:"status_detail,omitempty"`
+	StatusDetail string `protobuf:"bytes,24,opt,name=status_detail,json=statusDetail,proto3" json:"status_detail,omitempty"`
 	// The location of the source files to build.
-	Source *Source `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"`
+	Source *Source `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
 	// Required. The operations to be performed on the workspace.
-	Steps []*BuildStep `protobuf:"bytes,11,rep,name=steps" json:"steps,omitempty"`
+	Steps []*BuildStep `protobuf:"bytes,11,rep,name=steps,proto3" json:"steps,omitempty"`
 	// Results of the build.
 	// @OutputOnly
-	Results *Results `protobuf:"bytes,10,opt,name=results" json:"results,omitempty"`
+	Results *Results `protobuf:"bytes,10,opt,name=results,proto3" json:"results,omitempty"`
 	// Time at which the request to create the build was received.
 	// @OutputOnly
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time at which execution of the build was started.
 	// @OutputOnly
-	StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time at which execution of the build was finished.
 	//
 	// The difference between finish_time and start_time is the duration of the
 	// build's execution.
 	// @OutputOnly
-	FinishTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	// 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.
-	Timeout *duration.Duration `protobuf:"bytes,12,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,12,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// A list of images to be pushed upon the successful completion of all build
 	// steps.
 	//
@@ -1233,33 +1233,33 @@ type Build struct {
 	//
 	// If any of the images fail to be pushed, the build status is marked
 	// `FAILURE`.
-	Images []string `protobuf:"bytes,13,rep,name=images" json:"images,omitempty"`
+	Images []string `protobuf:"bytes,13,rep,name=images,proto3" json:"images,omitempty"`
 	// Artifacts produced by the build that should be uploaded upon
 	// successful completion of all build steps.
-	Artifacts *Artifacts `protobuf:"bytes,37,opt,name=artifacts" json:"artifacts,omitempty"`
+	Artifacts *Artifacts `protobuf:"bytes,37,opt,name=artifacts,proto3" json:"artifacts,omitempty"`
 	// Google Cloud Storage bucket where logs should be written (see
 	// [Bucket Name
 	// Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
 	// Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
-	LogsBucket string `protobuf:"bytes,19,opt,name=logs_bucket,json=logsBucket" json:"logs_bucket,omitempty"`
+	LogsBucket string `protobuf:"bytes,19,opt,name=logs_bucket,json=logsBucket,proto3" json:"logs_bucket,omitempty"`
 	// A permanent fixed identifier for source.
 	// @OutputOnly
-	SourceProvenance *SourceProvenance `protobuf:"bytes,21,opt,name=source_provenance,json=sourceProvenance" json:"source_provenance,omitempty"`
+	SourceProvenance *SourceProvenance `protobuf:"bytes,21,opt,name=source_provenance,json=sourceProvenance,proto3" json:"source_provenance,omitempty"`
 	// The ID of the `BuildTrigger` that triggered this build, if it was
 	// triggered automatically.
 	// @OutputOnly
-	BuildTriggerId string `protobuf:"bytes,22,opt,name=build_trigger_id,json=buildTriggerId" json:"build_trigger_id,omitempty"`
+	BuildTriggerId string `protobuf:"bytes,22,opt,name=build_trigger_id,json=buildTriggerId,proto3" json:"build_trigger_id,omitempty"`
 	// Special options for this build.
-	Options *BuildOptions `protobuf:"bytes,23,opt,name=options" json:"options,omitempty"`
+	Options *BuildOptions `protobuf:"bytes,23,opt,name=options,proto3" json:"options,omitempty"`
 	// URL to logs for this build in Google Cloud Console.
 	// @OutputOnly
-	LogUrl string `protobuf:"bytes,25,opt,name=log_url,json=logUrl" json:"log_url,omitempty"`
+	LogUrl string `protobuf:"bytes,25,opt,name=log_url,json=logUrl,proto3" json:"log_url,omitempty"`
 	// Substitutions data for `Build` resource.
-	Substitutions map[string]string `protobuf:"bytes,29,rep,name=substitutions" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Substitutions map[string]string `protobuf:"bytes,29,rep,name=substitutions,proto3" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Tags for annotation of a `Build`. These are not docker tags.
-	Tags []string `protobuf:"bytes,31,rep,name=tags" json:"tags,omitempty"`
+	Tags []string `protobuf:"bytes,31,rep,name=tags,proto3" json:"tags,omitempty"`
 	// Secrets to decrypt using Cloud Key Management Service.
-	Secrets []*Secret `protobuf:"bytes,32,rep,name=secrets" json:"secrets,omitempty"`
+	Secrets []*Secret `protobuf:"bytes,32,rep,name=secrets,proto3" json:"secrets,omitempty"`
 	// Stores timing information for phases of the build. Valid keys are:
 	//
 	// * BUILD: time to execute all build steps
@@ -1269,7 +1269,7 @@ type Build struct {
 	// If the build does not specify source or images,
 	// these keys will not be included.
 	// @OutputOnly
-	Timing               map[string]*TimeSpan `protobuf:"bytes,33,rep,name=timing" json:"timing,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Timing               map[string]*TimeSpan `protobuf:"bytes,33,rep,name=timing,proto3" json:"timing,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1465,7 +1465,7 @@ type Artifacts struct {
 	// results field.
 	//
 	// If any of the images fail to be pushed, the build is marked FAILURE.
-	Images []string `protobuf:"bytes,1,rep,name=images" json:"images,omitempty"`
+	Images []string `protobuf:"bytes,1,rep,name=images,proto3" json:"images,omitempty"`
 	// A list of objects to be uploaded to Cloud Storage upon successful
 	// completion of all build steps.
 	//
@@ -1477,7 +1477,7 @@ type Artifacts struct {
 	// Build resource's results field.
 	//
 	// If any objects fail to be pushed, the build is marked FAILURE.
-	Objects              *Artifacts_ArtifactObjects `protobuf:"bytes,2,opt,name=objects" json:"objects,omitempty"`
+	Objects              *Artifacts_ArtifactObjects `protobuf:"bytes,2,opt,name=objects,proto3" json:"objects,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1530,12 +1530,12 @@ type Artifacts_ArtifactObjects struct {
 	//
 	// Files in the workspace matching any path pattern will be uploaded to
 	// Cloud Storage with this location as a prefix.
-	Location string `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
 	// Path globs used to match files in the build's workspace.
-	Paths []string `protobuf:"bytes,2,rep,name=paths" json:"paths,omitempty"`
+	Paths []string `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
 	// Stores timing information for pushing all artifact objects.
 	// @OutputOnly
-	Timing               *TimeSpan `protobuf:"bytes,3,opt,name=timing" json:"timing,omitempty"`
+	Timing               *TimeSpan `protobuf:"bytes,3,opt,name=timing,proto3" json:"timing,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1589,9 +1589,9 @@ func (m *Artifacts_ArtifactObjects) GetTiming() *TimeSpan {
 // Start and end times for a build execution phase.
 type TimeSpan struct {
 	// Start of time span.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End of time span.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1638,7 +1638,7 @@ func (m *TimeSpan) GetEndTime() *timestamp.Timestamp {
 // Metadata for build operations.
 type BuildOperationMetadata struct {
 	// The build that the operation is tracking.
-	Build                *Build   `protobuf:"bytes,1,opt,name=build" json:"build,omitempty"`
+	Build                *Build   `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1680,10 +1680,10 @@ func (m *BuildOperationMetadata) GetBuild() *Build {
 type SourceProvenance struct {
 	// A copy of the build's `source.storage_source`, if exists, with any
 	// generations resolved.
-	ResolvedStorageSource *StorageSource `protobuf:"bytes,3,opt,name=resolved_storage_source,json=resolvedStorageSource" json:"resolved_storage_source,omitempty"`
+	ResolvedStorageSource *StorageSource `protobuf:"bytes,3,opt,name=resolved_storage_source,json=resolvedStorageSource,proto3" json:"resolved_storage_source,omitempty"`
 	// A copy of the build's `source.repo_source`, if exists, with any
 	// revisions resolved.
-	ResolvedRepoSource *RepoSource `protobuf:"bytes,6,opt,name=resolved_repo_source,json=resolvedRepoSource" json:"resolved_repo_source,omitempty"`
+	ResolvedRepoSource *RepoSource `protobuf:"bytes,6,opt,name=resolved_repo_source,json=resolvedRepoSource,proto3" json:"resolved_repo_source,omitempty"`
 	// Hash(es) of the build source, which can be used to verify that the original
 	// source integrity was maintained in the build. Note that `FileHashes` will
 	// only be populated if `BuildOptions` has requested a `SourceProvenanceHash`.
@@ -1694,7 +1694,7 @@ type SourceProvenance struct {
 	// If the build source came in a single package such as a gzipped tarfile
 	// (`.tar.gz`), the `FileHash` will be for the single path to that file.
 	// @OutputOnly
-	FileHashes           map[string]*FileHashes `protobuf:"bytes,4,rep,name=file_hashes,json=fileHashes" json:"file_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	FileHashes           map[string]*FileHashes `protobuf:"bytes,4,rep,name=file_hashes,json=fileHashes,proto3" json:"file_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -1749,7 +1749,7 @@ func (m *SourceProvenance) GetFileHashes() map[string]*FileHashes {
 // SourceProvenance messages to verify integrity of source input to the build.
 type FileHashes struct {
 	// Collection of file hashes.
-	FileHash             []*Hash  `protobuf:"bytes,1,rep,name=file_hash,json=fileHash" json:"file_hash,omitempty"`
+	FileHash             []*Hash  `protobuf:"bytes,1,rep,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1789,7 +1789,7 @@ func (m *FileHashes) GetFileHash() []*Hash {
 // Container message for hash values.
 type Hash struct {
 	// The type of hash that was performed.
-	Type Hash_HashType `protobuf:"varint,1,opt,name=type,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"type,omitempty"`
+	Type Hash_HashType `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"type,omitempty"`
 	// The hash value.
 	Value                []byte   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1839,14 +1839,14 @@ func (m *Hash) GetValue() []byte {
 // values with the Cloud KMS key to use to decrypt the value.
 type Secret struct {
 	// Cloud KMS key name to use to decrypt these envs.
-	KmsKeyName string `protobuf:"bytes,1,opt,name=kms_key_name,json=kmsKeyName" json:"kms_key_name,omitempty"`
+	KmsKeyName string `protobuf:"bytes,1,opt,name=kms_key_name,json=kmsKeyName,proto3" json:"kms_key_name,omitempty"`
 	// Map of environment variable name to its encrypted value.
 	//
 	// Secret environment variables must be unique across all of a build's
 	// secrets, and must be used by at least one build step. Values can be at most
 	// 1 KB in size. There can be at most ten secret values across all of a
 	// build's secrets.
-	SecretEnv            map[string][]byte `protobuf:"bytes,3,rep,name=secret_env,json=secretEnv" json:"secret_env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	SecretEnv            map[string][]byte `protobuf:"bytes,3,rep,name=secret_env,json=secretEnv,proto3" json:"secret_env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1893,9 +1893,9 @@ func (m *Secret) GetSecretEnv() map[string][]byte {
 // Request to create a new build.
 type CreateBuildRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Build resource to create.
-	Build                *Build   `protobuf:"bytes,2,opt,name=build" json:"build,omitempty"`
+	Build                *Build   `protobuf:"bytes,2,opt,name=build,proto3" json:"build,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1942,9 +1942,9 @@ func (m *CreateBuildRequest) GetBuild() *Build {
 // Request to get a build.
 type GetBuildRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the build.
-	Id                   string   `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1991,13 +1991,13 @@ func (m *GetBuildRequest) GetId() string {
 // Request to list builds.
 type ListBuildsRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Number of results to return in the list.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token to provide to skip to a particular spot in the list.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The raw filter text to constrain the results.
-	Filter               string   `protobuf:"bytes,8,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,8,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2058,9 +2058,9 @@ func (m *ListBuildsRequest) GetFilter() string {
 // Response including listed builds.
 type ListBuildsResponse struct {
 	// Builds will be sorted by `create_time`, descending.
-	Builds []*Build `protobuf:"bytes,1,rep,name=builds" json:"builds,omitempty"`
+	Builds []*Build `protobuf:"bytes,1,rep,name=builds,proto3" json:"builds,omitempty"`
 	// Token to receive the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2107,9 +2107,9 @@ func (m *ListBuildsResponse) GetNextPageToken() string {
 // Request to cancel an ongoing build.
 type CancelBuildRequest struct {
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the build.
-	Id                   string   `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2159,15 +2159,15 @@ type BuildTrigger struct {
 	// Unique identifier of the trigger.
 	//
 	// @OutputOnly
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Human-readable description of this trigger.
-	Description string `protobuf:"bytes,10,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
 	// Template describing the types of source changes to trigger a build.
 	//
 	// Branch and tag names in trigger templates are interpreted as regular
 	// expressions. Any branch or tag change that matches that regular expression
 	// will trigger a build.
-	TriggerTemplate *RepoSource `protobuf:"bytes,7,opt,name=trigger_template,json=triggerTemplate" json:"trigger_template,omitempty"`
+	TriggerTemplate *RepoSource `protobuf:"bytes,7,opt,name=trigger_template,json=triggerTemplate,proto3" json:"trigger_template,omitempty"`
 	// Template describing the Build request to make when the trigger is matched.
 	//
 	// Types that are valid to be assigned to BuildTemplate:
@@ -2177,11 +2177,11 @@ type BuildTrigger struct {
 	// Time when the trigger was created.
 	//
 	// @OutputOnly
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// If true, the trigger will never result in a build.
-	Disabled bool `protobuf:"varint,9,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled bool `protobuf:"varint,9,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	// Substitutions data for Build resource.
-	Substitutions        map[string]string `protobuf:"bytes,11,rep,name=substitutions" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Substitutions        map[string]string `protobuf:"bytes,11,rep,name=substitutions,proto3" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -2216,10 +2216,10 @@ type isBuildTrigger_BuildTemplate interface {
 }
 
 type BuildTrigger_Build struct {
-	Build *Build `protobuf:"bytes,4,opt,name=build,oneof"`
+	Build *Build `protobuf:"bytes,4,opt,name=build,proto3,oneof"`
 }
 type BuildTrigger_Filename struct {
-	Filename string `protobuf:"bytes,8,opt,name=filename,oneof"`
+	Filename string `protobuf:"bytes,8,opt,name=filename,proto3,oneof"`
 }
 
 func (*BuildTrigger_Build) isBuildTrigger_BuildTemplate()    {}
@@ -2361,9 +2361,9 @@ func _BuildTrigger_OneofSizer(msg proto.Message) (n int) {
 // Request to create a new `BuildTrigger`.
 type CreateBuildTriggerRequest struct {
 	// ID of the project for which to configure automatic builds.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// `BuildTrigger` to create.
-	Trigger              *BuildTrigger `protobuf:"bytes,2,opt,name=trigger" json:"trigger,omitempty"`
+	Trigger              *BuildTrigger `protobuf:"bytes,2,opt,name=trigger,proto3" json:"trigger,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -2410,9 +2410,9 @@ func (m *CreateBuildTriggerRequest) GetTrigger() *BuildTrigger {
 // Returns the `BuildTrigger` with the specified ID.
 type GetBuildTriggerRequest struct {
 	// ID of the project that owns the trigger.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the `BuildTrigger` to get.
-	TriggerId            string   `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId            string   `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2459,7 +2459,7 @@ func (m *GetBuildTriggerRequest) GetTriggerId() string {
 // Request to list existing `BuildTriggers`.
 type ListBuildTriggersRequest struct {
 	// ID of the project for which to list BuildTriggers.
-	ProjectId            string   `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2499,7 +2499,7 @@ func (m *ListBuildTriggersRequest) GetProjectId() string {
 // Response containing existing `BuildTriggers`.
 type ListBuildTriggersResponse struct {
 	// `BuildTriggers` for the project, sorted by `create_time` descending.
-	Triggers             []*BuildTrigger `protobuf:"bytes,1,rep,name=triggers" json:"triggers,omitempty"`
+	Triggers             []*BuildTrigger `protobuf:"bytes,1,rep,name=triggers,proto3" json:"triggers,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -2539,9 +2539,9 @@ func (m *ListBuildTriggersResponse) GetTriggers() []*BuildTrigger {
 // Request to delete a `BuildTrigger`.
 type DeleteBuildTriggerRequest struct {
 	// ID of the project that owns the trigger.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the `BuildTrigger` to delete.
-	TriggerId            string   `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId            string   `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2588,11 +2588,11 @@ func (m *DeleteBuildTriggerRequest) GetTriggerId() string {
 // Request to update an existing `BuildTrigger`.
 type UpdateBuildTriggerRequest struct {
 	// ID of the project that owns the trigger.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the `BuildTrigger` to update.
-	TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	// `BuildTrigger` to update.
-	Trigger              *BuildTrigger `protobuf:"bytes,3,opt,name=trigger" json:"trigger,omitempty"`
+	Trigger              *BuildTrigger `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -2646,24 +2646,24 @@ func (m *UpdateBuildTriggerRequest) GetTrigger() *BuildTrigger {
 // Optional arguments to enable specific features of builds.
 type BuildOptions struct {
 	// Requested hash for SourceProvenance.
-	SourceProvenanceHash []Hash_HashType `protobuf:"varint,1,rep,packed,name=source_provenance_hash,json=sourceProvenanceHash,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"source_provenance_hash,omitempty"`
+	SourceProvenanceHash []Hash_HashType `protobuf:"varint,1,rep,packed,name=source_provenance_hash,json=sourceProvenanceHash,proto3,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"source_provenance_hash,omitempty"`
 	// Requested verifiability options.
-	RequestedVerifyOption BuildOptions_VerifyOption `protobuf:"varint,2,opt,name=requested_verify_option,json=requestedVerifyOption,enum=google.devtools.cloudbuild.v1.BuildOptions_VerifyOption" json:"requested_verify_option,omitempty"`
+	RequestedVerifyOption BuildOptions_VerifyOption `protobuf:"varint,2,opt,name=requested_verify_option,json=requestedVerifyOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_VerifyOption" json:"requested_verify_option,omitempty"`
 	// Compute Engine machine type on which to run the build.
-	MachineType BuildOptions_MachineType `protobuf:"varint,3,opt,name=machine_type,json=machineType,enum=google.devtools.cloudbuild.v1.BuildOptions_MachineType" json:"machine_type,omitempty"`
+	MachineType BuildOptions_MachineType `protobuf:"varint,3,opt,name=machine_type,json=machineType,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_MachineType" json:"machine_type,omitempty"`
 	// Requested disk size for the VM that runs the build. Note that this is *NOT*
 	// "disk free"; some of the space will be used by the operating system and
 	// build utilities. Also note that this is the minimum disk size that will be
 	// allocated for the build -- the build may run with a larger disk than
 	// requested. At present, the maximum disk size is 1000GB; builds that request
 	// more than the maximum are rejected with an error.
-	DiskSizeGb int64 `protobuf:"varint,6,opt,name=disk_size_gb,json=diskSizeGb" json:"disk_size_gb,omitempty"`
+	DiskSizeGb int64 `protobuf:"varint,6,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"`
 	// Option to specify behavior when there is an error in the substitution
 	// checks.
-	SubstitutionOption BuildOptions_SubstitutionOption `protobuf:"varint,4,opt,name=substitution_option,json=substitutionOption,enum=google.devtools.cloudbuild.v1.BuildOptions_SubstitutionOption" json:"substitution_option,omitempty"`
+	SubstitutionOption BuildOptions_SubstitutionOption `protobuf:"varint,4,opt,name=substitution_option,json=substitutionOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_SubstitutionOption" json:"substitution_option,omitempty"`
 	// Option to define build log streaming behavior to Google Cloud
 	// Storage.
-	LogStreamingOption   BuildOptions_LogStreamingOption `protobuf:"varint,5,opt,name=log_streaming_option,json=logStreamingOption,enum=google.devtools.cloudbuild.v1.BuildOptions_LogStreamingOption" json:"log_streaming_option,omitempty"`
+	LogStreamingOption   BuildOptions_LogStreamingOption `protobuf:"varint,5,opt,name=log_streaming_option,json=logStreamingOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_LogStreamingOption" json:"log_streaming_option,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -2970,8 +2970,7 @@ func (c *cloudBuildClient) RunBuildTrigger(ctx context.Context, in *RunBuildTrig
 	return out, nil
 }
 
-// Server API for CloudBuild service
-
+// CloudBuildServer is the server API for CloudBuild service.
 type CloudBuildServer interface {
 	// Starts a build with the specified configuration.
 	//
diff --git a/googleapis/devtools/clouddebugger/v2/controller.pb.go b/googleapis/devtools/clouddebugger/v2/controller.pb.go
index 4eb87ca7138752f25f115c8bec87ec848b47ceda..d5c68b11587bc6e14bea7109d4bfbc2f2ded09d4 100644
--- a/googleapis/devtools/clouddebugger/v2/controller.pb.go
+++ b/googleapis/devtools/clouddebugger/v2/controller.pb.go
@@ -30,7 +30,7 @@ type RegisterDebuggeeRequest struct {
 	// Debuggee information to register.
 	// The fields `project`, `uniquifier`, `description` and `agent_version`
 	// of the debuggee must be set.
-	Debuggee             *Debuggee `protobuf:"bytes,1,opt,name=debuggee" json:"debuggee,omitempty"`
+	Debuggee             *Debuggee `protobuf:"bytes,1,opt,name=debuggee,proto3" json:"debuggee,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -74,7 +74,7 @@ type RegisterDebuggeeResponse struct {
 	// If the field `is_disabled` is set to `true`, the agent should disable
 	// itself by removing all breakpoints and detaching from the application.
 	// It should however continue to poll `RegisterDebuggee` until reenabled.
-	Debuggee             *Debuggee `protobuf:"bytes,1,opt,name=debuggee" json:"debuggee,omitempty"`
+	Debuggee             *Debuggee `protobuf:"bytes,1,opt,name=debuggee,proto3" json:"debuggee,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -114,19 +114,19 @@ func (m *RegisterDebuggeeResponse) GetDebuggee() *Debuggee {
 // Request to list active breakpoints.
 type ListActiveBreakpointsRequest struct {
 	// Identifies the debuggee.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// A token that, if specified, blocks the method call until the list
 	// of active breakpoints has changed, or a server-selected timeout has
 	// expired. The value should be set from the `next_wait_token` field in
 	// the last response. The initial value should be set to `"init"`.
-	WaitToken string `protobuf:"bytes,2,opt,name=wait_token,json=waitToken" json:"wait_token,omitempty"`
+	WaitToken string `protobuf:"bytes,2,opt,name=wait_token,json=waitToken,proto3" json:"wait_token,omitempty"`
 	// If set to `true` (recommended), returns `google.rpc.Code.OK` status and
 	// sets the `wait_expired` response field to `true` when the server-selected
 	// timeout has expired.
 	//
 	// If set to `false` (deprecated), returns `google.rpc.Code.ABORTED` status
 	// when the server-selected timeout has expired.
-	SuccessOnTimeout     bool     `protobuf:"varint,3,opt,name=success_on_timeout,json=successOnTimeout" json:"success_on_timeout,omitempty"`
+	SuccessOnTimeout     bool     `protobuf:"varint,3,opt,name=success_on_timeout,json=successOnTimeout,proto3" json:"success_on_timeout,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -181,14 +181,14 @@ func (m *ListActiveBreakpointsRequest) GetSuccessOnTimeout() bool {
 type ListActiveBreakpointsResponse struct {
 	// List of all active breakpoints.
 	// The fields `id` and `location` are guaranteed to be set on each breakpoint.
-	Breakpoints []*Breakpoint `protobuf:"bytes,1,rep,name=breakpoints" json:"breakpoints,omitempty"`
+	Breakpoints []*Breakpoint `protobuf:"bytes,1,rep,name=breakpoints,proto3" json:"breakpoints,omitempty"`
 	// A token that can be used in the next method call to block until
 	// the list of breakpoints changes.
-	NextWaitToken string `protobuf:"bytes,2,opt,name=next_wait_token,json=nextWaitToken" json:"next_wait_token,omitempty"`
+	NextWaitToken string `protobuf:"bytes,2,opt,name=next_wait_token,json=nextWaitToken,proto3" json:"next_wait_token,omitempty"`
 	// If set to `true`, indicates that there is no change to the
 	// list of active breakpoints and the server-selected timeout has expired.
 	// The `breakpoints` field would be empty and should be ignored.
-	WaitExpired          bool     `protobuf:"varint,3,opt,name=wait_expired,json=waitExpired" json:"wait_expired,omitempty"`
+	WaitExpired          bool     `protobuf:"varint,3,opt,name=wait_expired,json=waitExpired,proto3" json:"wait_expired,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -242,11 +242,11 @@ func (m *ListActiveBreakpointsResponse) GetWaitExpired() bool {
 // Request to update an active breakpoint.
 type UpdateActiveBreakpointRequest struct {
 	// Identifies the debuggee being debugged.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// Updated breakpoint information.
 	// The field `id` must be set.
 	// The agent must echo all Breakpoint specification fields in the update.
-	Breakpoint           *Breakpoint `protobuf:"bytes,2,opt,name=breakpoint" json:"breakpoint,omitempty"`
+	Breakpoint           *Breakpoint `protobuf:"bytes,2,opt,name=breakpoint,proto3" json:"breakpoint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -414,8 +414,7 @@ func (c *controller2Client) UpdateActiveBreakpoint(ctx context.Context, in *Upda
 	return out, nil
 }
 
-// Server API for Controller2 service
-
+// Controller2Server is the server API for Controller2 service.
 type Controller2Server interface {
 	// Registers the debuggee with the controller service.
 	//
diff --git a/googleapis/devtools/clouddebugger/v2/data.pb.go b/googleapis/devtools/clouddebugger/v2/data.pb.go
index 42a2ccfbeeeb44b91740c862c9b453e16e87ae1c..d2901244c927b59e103dc6e99f8faa92e38d1120 100644
--- a/googleapis/devtools/clouddebugger/v2/data.pb.go
+++ b/googleapis/devtools/clouddebugger/v2/data.pb.go
@@ -139,9 +139,9 @@ type FormatMessage struct {
 	// *   `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.`
-	Format string `protobuf:"bytes,1,opt,name=format" json:"format,omitempty"`
+	Format string `protobuf:"bytes,1,opt,name=format,proto3" json:"format,omitempty"`
 	// Optional parameters to be embedded into the message.
-	Parameters           []string `protobuf:"bytes,2,rep,name=parameters" json:"parameters,omitempty"`
+	Parameters           []string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -192,11 +192,11 @@ func (m *FormatMessage) GetParameters() []string {
 // to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
 type StatusMessage struct {
 	// Distinguishes errors from informational messages.
-	IsError bool `protobuf:"varint,1,opt,name=is_error,json=isError" json:"is_error,omitempty"`
+	IsError bool `protobuf:"varint,1,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
 	// Reference to which the message applies.
-	RefersTo StatusMessage_Reference `protobuf:"varint,2,opt,name=refers_to,json=refersTo,enum=google.devtools.clouddebugger.v2.StatusMessage_Reference" json:"refers_to,omitempty"`
+	RefersTo StatusMessage_Reference `protobuf:"varint,2,opt,name=refers_to,json=refersTo,proto3,enum=google.devtools.clouddebugger.v2.StatusMessage_Reference" json:"refers_to,omitempty"`
 	// Status message text.
-	Description          *FormatMessage `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          *FormatMessage `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -250,9 +250,9 @@ func (m *StatusMessage) GetDescription() *FormatMessage {
 // Represents a location in the source code.
 type SourceLocation struct {
 	// Path to the source file within the source context of the target binary.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// Line inside the file. The first line in the file has the value `1`.
-	Line                 int32    `protobuf:"varint,2,opt,name=line" json:"line,omitempty"`
+	Line                 int32    `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -407,20 +407,20 @@ func (m *SourceLocation) GetLine() int32 {
 // The type field is optional. The debugger agent may or may not support it.
 type Variable struct {
 	// Name of the variable, if any.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Simple value of the variable.
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// 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.
-	Type string `protobuf:"bytes,6,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"`
 	// Members contained or pointed to by the variable.
-	Members []*Variable `protobuf:"bytes,3,rep,name=members" json:"members,omitempty"`
+	Members []*Variable `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
 	// 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.
-	VarTableIndex *wrappers.Int32Value `protobuf:"bytes,4,opt,name=var_table_index,json=varTableIndex" json:"var_table_index,omitempty"`
+	VarTableIndex *wrappers.Int32Value `protobuf:"bytes,4,opt,name=var_table_index,json=varTableIndex,proto3" json:"var_table_index,omitempty"`
 	// 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
@@ -440,7 +440,7 @@ type Variable struct {
 	// *   `Malformed string`,
 	// *   `Field f not found in class C`
 	// *   `Null pointer dereference`
-	Status               *StatusMessage `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"`
+	Status               *StatusMessage `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -515,15 +515,15 @@ func (m *Variable) GetStatus() *StatusMessage {
 // Represents a stack frame context.
 type StackFrame struct {
 	// Demangled function name at the call site.
-	Function string `protobuf:"bytes,1,opt,name=function" json:"function,omitempty"`
+	Function string `protobuf:"bytes,1,opt,name=function,proto3" json:"function,omitempty"`
 	// Source location of the call site.
-	Location *SourceLocation `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"`
+	Location *SourceLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
 	// Set of arguments passed to this function.
 	// Note that this might not be populated for all stack frames.
-	Arguments []*Variable `protobuf:"bytes,3,rep,name=arguments" json:"arguments,omitempty"`
+	Arguments []*Variable `protobuf:"bytes,3,rep,name=arguments,proto3" json:"arguments,omitempty"`
 	// Set of local variables at the stack frame location.
 	// Note that this might not be populated for all stack frames.
-	Locals               []*Variable `protobuf:"bytes,4,rep,name=locals" json:"locals,omitempty"`
+	Locals               []*Variable `protobuf:"bytes,4,rep,name=locals,proto3" json:"locals,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -584,21 +584,21 @@ func (m *StackFrame) GetLocals() []*Variable {
 // Represents the breakpoint specification, status and results.
 type Breakpoint struct {
 	// Breakpoint identifier, unique in the scope of the debuggee.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Action that the agent should perform when the code at the
 	// breakpoint location is hit.
-	Action Breakpoint_Action `protobuf:"varint,13,opt,name=action,enum=google.devtools.clouddebugger.v2.Breakpoint_Action" json:"action,omitempty"`
+	Action Breakpoint_Action `protobuf:"varint,13,opt,name=action,proto3,enum=google.devtools.clouddebugger.v2.Breakpoint_Action" json:"action,omitempty"`
 	// Breakpoint source location.
-	Location *SourceLocation `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"`
+	Location *SourceLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
 	// Condition that triggers the breakpoint.
 	// The condition is a compound boolean expression composed using expressions
 	// in a programming language at the source location.
-	Condition string `protobuf:"bytes,3,opt,name=condition" json:"condition,omitempty"`
+	Condition string `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
 	// 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.
-	Expressions []string `protobuf:"bytes,4,rep,name=expressions" json:"expressions,omitempty"`
+	Expressions []string `protobuf:"bytes,4,rep,name=expressions,proto3" json:"expressions,omitempty"`
 	// 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
@@ -607,19 +607,19 @@ type Breakpoint struct {
 	//
 	// Example: `Message received, id = $0, count = $1` with
 	// `expressions` = `[ message.id, message.count ]`.
-	LogMessageFormat string `protobuf:"bytes,14,opt,name=log_message_format,json=logMessageFormat" json:"log_message_format,omitempty"`
+	LogMessageFormat string `protobuf:"bytes,14,opt,name=log_message_format,json=logMessageFormat,proto3" json:"log_message_format,omitempty"`
 	// Indicates the severity of the log. Only relevant when action is `LOG`.
-	LogLevel Breakpoint_LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,enum=google.devtools.clouddebugger.v2.Breakpoint_LogLevel" json:"log_level,omitempty"`
+	LogLevel Breakpoint_LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=google.devtools.clouddebugger.v2.Breakpoint_LogLevel" json:"log_level,omitempty"`
 	// When true, indicates that this is a final result and the
 	// breakpoint state will not change from here on.
-	IsFinalState bool `protobuf:"varint,5,opt,name=is_final_state,json=isFinalState" json:"is_final_state,omitempty"`
+	IsFinalState bool `protobuf:"varint,5,opt,name=is_final_state,json=isFinalState,proto3" json:"is_final_state,omitempty"`
 	// Time this breakpoint was created by the server in seconds resolution.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time this breakpoint was finalized as seen by the server in seconds
 	// resolution.
-	FinalTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=final_time,json=finalTime" json:"final_time,omitempty"`
+	FinalTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=final_time,json=finalTime,proto3" json:"final_time,omitempty"`
 	// E-mail address of the user that created this breakpoint
-	UserEmail string `protobuf:"bytes,16,opt,name=user_email,json=userEmail" json:"user_email,omitempty"`
+	UserEmail string `protobuf:"bytes,16,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
 	// Breakpoint status.
 	//
 	// The status includes an error flag and a human readable message.
@@ -635,9 +635,9 @@ type Breakpoint struct {
 	//
 	// *   `Invalid line number` referring to location
 	// *   `Field f not found in class C` referring to condition
-	Status *StatusMessage `protobuf:"bytes,10,opt,name=status" json:"status,omitempty"`
+	Status *StatusMessage `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"`
 	// The stack at breakpoint time.
-	StackFrames []*StackFrame `protobuf:"bytes,7,rep,name=stack_frames,json=stackFrames" json:"stack_frames,omitempty"`
+	StackFrames []*StackFrame `protobuf:"bytes,7,rep,name=stack_frames,json=stackFrames,proto3" json:"stack_frames,omitempty"`
 	// Values of evaluated expressions at breakpoint time.
 	// The evaluated expressions appear in exactly the same order they
 	// are listed in the `expressions` field.
@@ -645,7 +645,7 @@ type Breakpoint struct {
 	// `members` field holds the result of the evaluated expression.
 	// If the expression cannot be evaluated, the `status` inside the `Variable`
 	// will indicate an error and contain the error text.
-	EvaluatedExpressions []*Variable `protobuf:"bytes,8,rep,name=evaluated_expressions,json=evaluatedExpressions" json:"evaluated_expressions,omitempty"`
+	EvaluatedExpressions []*Variable `protobuf:"bytes,8,rep,name=evaluated_expressions,json=evaluatedExpressions,proto3" json:"evaluated_expressions,omitempty"`
 	// The `variable_table` exists to aid with computation, memory and network
 	// traffic optimization.  It enables storing a variable once and reference
 	// it from multiple variables, including variables stored in the
@@ -658,10 +658,10 @@ type Breakpoint struct {
 	// The stored objects are nameless and get their name from the referencing
 	// variable. The effective variable is a merge of the referencing variable
 	// and the referenced variable.
-	VariableTable []*Variable `protobuf:"bytes,9,rep,name=variable_table,json=variableTable" json:"variable_table,omitempty"`
+	VariableTable []*Variable `protobuf:"bytes,9,rep,name=variable_table,json=variableTable,proto3" json:"variable_table,omitempty"`
 	// A set of custom breakpoint properties, populated by the agent, to be
 	// displayed to the user.
-	Labels               map[string]string `protobuf:"bytes,17,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,17,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -810,46 +810,46 @@ func (m *Breakpoint) GetLabels() map[string]string {
 // exactly the same Debuggee message value when registering.
 type Debuggee struct {
 	// Unique identifier for the debuggee generated by the controller service.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Project the debuggee is associated with.
 	// Use project number or id when registering a Google Cloud Platform project.
-	Project string `protobuf:"bytes,2,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
 	// Uniquifier to further distiguish the application.
 	// It is possible that different applications might have identical values in
 	// the debuggee message, thus, incorrectly identified as a single application
 	// by the Controller service. This field adds salt to further distiguish the
 	// application. Agents should consider seeding this field with value that
 	// identifies the code, binary, configuration and environment.
-	Uniquifier string `protobuf:"bytes,3,opt,name=uniquifier" json:"uniquifier,omitempty"`
+	Uniquifier string `protobuf:"bytes,3,opt,name=uniquifier,proto3" json:"uniquifier,omitempty"`
 	// Human readable description of the debuggee.
 	// Including a human-readable project name, environment name and version
 	// information is recommended.
-	Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 	// If set to `true`, indicates that Controller service does not detect any
 	// activity from the debuggee agents and the application is possibly stopped.
-	IsInactive bool `protobuf:"varint,5,opt,name=is_inactive,json=isInactive" json:"is_inactive,omitempty"`
+	IsInactive bool `protobuf:"varint,5,opt,name=is_inactive,json=isInactive,proto3" json:"is_inactive,omitempty"`
 	// Version ID of the agent.
 	// Schema: `domain/language-platform/vmajor.minor` (for example
 	// `google.com/java-gcp/v1.1`).
-	AgentVersion string `protobuf:"bytes,6,opt,name=agent_version,json=agentVersion" json:"agent_version,omitempty"`
+	AgentVersion string `protobuf:"bytes,6,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"`
 	// If set to `true`, indicates that the agent should disable itself and
 	// detach from the debuggee.
-	IsDisabled bool `protobuf:"varint,7,opt,name=is_disabled,json=isDisabled" json:"is_disabled,omitempty"`
+	IsDisabled bool `protobuf:"varint,7,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"`
 	// Human readable message to be displayed to the user about this debuggee.
 	// Absence of this field indicates no status. The message can be either
 	// informational or an error status.
-	Status *StatusMessage `protobuf:"bytes,8,opt,name=status" json:"status,omitempty"`
+	Status *StatusMessage `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
 	// References to the locations and revisions of the source code used in the
 	// deployed application.
-	SourceContexts []*v1.SourceContext `protobuf:"bytes,9,rep,name=source_contexts,json=sourceContexts" json:"source_contexts,omitempty"`
+	SourceContexts []*v1.SourceContext `protobuf:"bytes,9,rep,name=source_contexts,json=sourceContexts,proto3" json:"source_contexts,omitempty"`
 	// References to the locations and revisions of the source code used in the
 	// deployed application.
 	//
 	// NOTE: this field is experimental and can be ignored.
-	ExtSourceContexts []*v1.ExtendedSourceContext `protobuf:"bytes,13,rep,name=ext_source_contexts,json=extSourceContexts" json:"ext_source_contexts,omitempty"`
+	ExtSourceContexts []*v1.ExtendedSourceContext `protobuf:"bytes,13,rep,name=ext_source_contexts,json=extSourceContexts,proto3" json:"ext_source_contexts,omitempty"`
 	// A set of custom debuggee properties, populated by the agent, to be
 	// displayed to the user.
-	Labels               map[string]string `protobuf:"bytes,11,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/devtools/clouddebugger/v2/debugger.pb.go b/googleapis/devtools/clouddebugger/v2/debugger.pb.go
index b6a4bb276ba4b6c72e7f1048db05f95ace6ed653..b23cc39e47bb2551e3ccdb248c27cbcf8bfcbf9f 100644
--- a/googleapis/devtools/clouddebugger/v2/debugger.pb.go
+++ b/googleapis/devtools/clouddebugger/v2/debugger.pb.go
@@ -28,13 +28,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Request to set a breakpoint
 type SetBreakpointRequest struct {
 	// ID of the debuggee where the breakpoint is to be set.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// Breakpoint specification to set.
 	// The field `location` of the breakpoint must be set.
-	Breakpoint *Breakpoint `protobuf:"bytes,2,opt,name=breakpoint" json:"breakpoint,omitempty"`
+	Breakpoint *Breakpoint `protobuf:"bytes,2,opt,name=breakpoint,proto3" json:"breakpoint,omitempty"`
 	// The client version making the call.
 	// Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
+	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -89,7 +89,7 @@ func (m *SetBreakpointRequest) GetClientVersion() string {
 type SetBreakpointResponse struct {
 	// Breakpoint resource.
 	// The field `id` is guaranteed to be set (in addition to the echoed fileds).
-	Breakpoint           *Breakpoint `protobuf:"bytes,1,opt,name=breakpoint" json:"breakpoint,omitempty"`
+	Breakpoint           *Breakpoint `protobuf:"bytes,1,opt,name=breakpoint,proto3" json:"breakpoint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -129,12 +129,12 @@ func (m *SetBreakpointResponse) GetBreakpoint() *Breakpoint {
 // Request to get breakpoint information.
 type GetBreakpointRequest struct {
 	// ID of the debuggee whose breakpoint to get.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// ID of the breakpoint to get.
-	BreakpointId string `protobuf:"bytes,2,opt,name=breakpoint_id,json=breakpointId" json:"breakpoint_id,omitempty"`
+	BreakpointId string `protobuf:"bytes,2,opt,name=breakpoint_id,json=breakpointId,proto3" json:"breakpoint_id,omitempty"`
 	// The client version making the call.
 	// Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
+	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -189,7 +189,7 @@ func (m *GetBreakpointRequest) GetClientVersion() string {
 type GetBreakpointResponse struct {
 	// Complete breakpoint state.
 	// The fields `id` and `location` are guaranteed to be set.
-	Breakpoint           *Breakpoint `protobuf:"bytes,1,opt,name=breakpoint" json:"breakpoint,omitempty"`
+	Breakpoint           *Breakpoint `protobuf:"bytes,1,opt,name=breakpoint,proto3" json:"breakpoint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -229,12 +229,12 @@ func (m *GetBreakpointResponse) GetBreakpoint() *Breakpoint {
 // Request to delete a breakpoint.
 type DeleteBreakpointRequest struct {
 	// ID of the debuggee whose breakpoint to delete.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// ID of the breakpoint to delete.
-	BreakpointId string `protobuf:"bytes,2,opt,name=breakpoint_id,json=breakpointId" json:"breakpoint_id,omitempty"`
+	BreakpointId string `protobuf:"bytes,2,opt,name=breakpoint_id,json=breakpointId,proto3" json:"breakpoint_id,omitempty"`
 	// The client version making the call.
 	// Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-	ClientVersion        string   `protobuf:"bytes,3,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
+	ClientVersion        string   `protobuf:"bytes,3,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -288,27 +288,27 @@ func (m *DeleteBreakpointRequest) GetClientVersion() string {
 // Request to list breakpoints.
 type ListBreakpointsRequest struct {
 	// ID of the debuggee whose breakpoints to list.
-	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId" json:"debuggee_id,omitempty"`
+	DebuggeeId string `protobuf:"bytes,1,opt,name=debuggee_id,json=debuggeeId,proto3" json:"debuggee_id,omitempty"`
 	// When set to `true`, the response includes the list of breakpoints set by
 	// any user. Otherwise, it includes only breakpoints set by the caller.
-	IncludeAllUsers bool `protobuf:"varint,2,opt,name=include_all_users,json=includeAllUsers" json:"include_all_users,omitempty"`
+	IncludeAllUsers bool `protobuf:"varint,2,opt,name=include_all_users,json=includeAllUsers,proto3" json:"include_all_users,omitempty"`
 	// When set to `true`, the response includes active and inactive
 	// breakpoints. Otherwise, it includes only active breakpoints.
-	IncludeInactive bool `protobuf:"varint,3,opt,name=include_inactive,json=includeInactive" json:"include_inactive,omitempty"`
+	IncludeInactive bool `protobuf:"varint,3,opt,name=include_inactive,json=includeInactive,proto3" json:"include_inactive,omitempty"`
 	// When set, the response includes only breakpoints with the specified action.
-	Action *ListBreakpointsRequest_BreakpointActionValue `protobuf:"bytes,4,opt,name=action" json:"action,omitempty"`
+	Action *ListBreakpointsRequest_BreakpointActionValue `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"`
 	// This field is deprecated. The following fields are always stripped out of
 	// the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
-	StripResults bool `protobuf:"varint,5,opt,name=strip_results,json=stripResults" json:"strip_results,omitempty"`
+	StripResults bool `protobuf:"varint,5,opt,name=strip_results,json=stripResults,proto3" json:"strip_results,omitempty"`
 	// A wait token that, if specified, blocks the call until the breakpoints
 	// list has changed, or a server selected timeout has expired.  The value
 	// should be set from the last response. The error code
 	// `google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
 	// should be called again with the same `wait_token`.
-	WaitToken string `protobuf:"bytes,6,opt,name=wait_token,json=waitToken" json:"wait_token,omitempty"`
+	WaitToken string `protobuf:"bytes,6,opt,name=wait_token,json=waitToken,proto3" json:"wait_token,omitempty"`
 	// The client version making the call.
 	// Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-	ClientVersion        string   `protobuf:"bytes,8,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
+	ClientVersion        string   `protobuf:"bytes,8,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -391,7 +391,7 @@ func (m *ListBreakpointsRequest) GetClientVersion() string {
 // field of breakpoints.
 type ListBreakpointsRequest_BreakpointActionValue struct {
 	// Only breakpoints with the specified action will pass the filter.
-	Value                Breakpoint_Action `protobuf:"varint,1,opt,name=value,enum=google.devtools.clouddebugger.v2.Breakpoint_Action" json:"value,omitempty"`
+	Value                Breakpoint_Action `protobuf:"varint,1,opt,name=value,proto3,enum=google.devtools.clouddebugger.v2.Breakpoint_Action" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -438,10 +438,10 @@ type ListBreakpointsResponse struct {
 	// The fields `id` and `location` are guaranteed to be set on each breakpoint.
 	// The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
 	// are cleared on each breakpoint regardless of its status.
-	Breakpoints []*Breakpoint `protobuf:"bytes,1,rep,name=breakpoints" json:"breakpoints,omitempty"`
+	Breakpoints []*Breakpoint `protobuf:"bytes,1,rep,name=breakpoints,proto3" json:"breakpoints,omitempty"`
 	// A wait token that can be used in the next call to `list` (REST) or
 	// `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
-	NextWaitToken        string   `protobuf:"bytes,2,opt,name=next_wait_token,json=nextWaitToken" json:"next_wait_token,omitempty"`
+	NextWaitToken        string   `protobuf:"bytes,2,opt,name=next_wait_token,json=nextWaitToken,proto3" json:"next_wait_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -488,13 +488,13 @@ func (m *ListBreakpointsResponse) GetNextWaitToken() string {
 // Request to list debuggees.
 type ListDebuggeesRequest struct {
 	// Project number of a Google Cloud project whose debuggees to list.
-	Project string `protobuf:"bytes,2,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
 	// When set to `true`, the result includes all debuggees. Otherwise, the
 	// result includes only debuggees that are active.
-	IncludeInactive bool `protobuf:"varint,3,opt,name=include_inactive,json=includeInactive" json:"include_inactive,omitempty"`
+	IncludeInactive bool `protobuf:"varint,3,opt,name=include_inactive,json=includeInactive,proto3" json:"include_inactive,omitempty"`
 	// The client version making the call.
 	// Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion" json:"client_version,omitempty"`
+	ClientVersion        string   `protobuf:"bytes,4,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -551,7 +551,7 @@ type ListDebuggeesResponse struct {
 	// The fields `debuggee.id` and `description` are guaranteed to be set.
 	// The `description` field is a human readable field provided by agents and
 	// can be displayed to users.
-	Debuggees            []*Debuggee `protobuf:"bytes,1,rep,name=debuggees" json:"debuggees,omitempty"`
+	Debuggees            []*Debuggee `protobuf:"bytes,1,rep,name=debuggees,proto3" json:"debuggees,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -678,8 +678,7 @@ func (c *debugger2Client) ListDebuggees(ctx context.Context, in *ListDebuggeesRe
 	return out, nil
 }
 
-// Server API for Debugger2 service
-
+// Debugger2Server is the server API for Debugger2 service.
 type Debugger2Server interface {
 	// Sets the breakpoint to the debuggee.
 	SetBreakpoint(context.Context, *SetBreakpointRequest) (*SetBreakpointResponse, error)
diff --git a/googleapis/devtools/clouderrorreporting/v1beta1/common.pb.go b/googleapis/devtools/clouderrorreporting/v1beta1/common.pb.go
index 9084cf7c9c47423126f77ddd8f862a17ff35ef7e..0063d3339a6f6116399df11dd04bc870c1154053 100644
--- a/googleapis/devtools/clouderrorreporting/v1beta1/common.pb.go
+++ b/googleapis/devtools/clouderrorreporting/v1beta1/common.pb.go
@@ -25,12 +25,12 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type ErrorGroup struct {
 	// The group resource name.
 	// Example: <code>projects/my-project-123/groups/my-groupid</code>
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Group IDs are unique for a given project. If the same kind of error
 	// occurs in different service contexts, it will receive the same group ID.
-	GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId" json:"group_id,omitempty"`
+	GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
 	// Associated tracking issues.
-	TrackingIssues       []*TrackingIssue `protobuf:"bytes,3,rep,name=tracking_issues,json=trackingIssues" json:"tracking_issues,omitempty"`
+	TrackingIssues       []*TrackingIssue `protobuf:"bytes,3,rep,name=tracking_issues,json=trackingIssues,proto3" json:"tracking_issues,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -85,7 +85,7 @@ func (m *ErrorGroup) GetTrackingIssues() []*TrackingIssue {
 type TrackingIssue struct {
 	// A URL pointing to a related entry in an issue tracking system.
 	// Example: https://github.com/user/project/issues/4
-	Url                  string   `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url                  string   `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -127,13 +127,13 @@ type ErrorEvent struct {
 	// 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.
-	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime" json:"event_time,omitempty"`
+	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
 	// The `ServiceContext` for which this error was reported.
-	ServiceContext *ServiceContext `protobuf:"bytes,2,opt,name=service_context,json=serviceContext" json:"service_context,omitempty"`
+	ServiceContext *ServiceContext `protobuf:"bytes,2,opt,name=service_context,json=serviceContext,proto3" json:"service_context,omitempty"`
 	// The stack trace that was reported or logged by the service.
-	Message string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
+	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
 	// Data about the context in which the error occurred.
-	Context              *ErrorContext `protobuf:"bytes,5,opt,name=context" json:"context,omitempty"`
+	Context              *ErrorContext `protobuf:"bytes,5,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -201,16 +201,16 @@ type ServiceContext struct {
 	//
 	// Contains the service name for error reports extracted from Google
 	// App Engine logs or `default` if the App Engine default service is used.
-	Service string `protobuf:"bytes,2,opt,name=service" json:"service,omitempty"`
+	Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
 	// Represents the source code version that the developer provided,
 	// which could represent a version label or a Git SHA-1 hash, for example.
-	Version string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	// Type of the MonitoredResource. List of possible values:
 	// https://cloud.google.com/monitoring/api/resources
 	//
 	// Value is set automatically for incoming errors and must not be set when
 	// reporting errors.
-	ResourceType         string   `protobuf:"bytes,4,opt,name=resource_type,json=resourceType" json:"resource_type,omitempty"`
+	ResourceType         string   `protobuf:"bytes,4,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -268,7 +268,7 @@ func (m *ServiceContext) GetResourceType() string {
 type ErrorContext struct {
 	// The HTTP request which was processed when the error was
 	// triggered.
-	HttpRequest *HttpRequestContext `protobuf:"bytes,1,opt,name=http_request,json=httpRequest" json:"http_request,omitempty"`
+	HttpRequest *HttpRequestContext `protobuf:"bytes,1,opt,name=http_request,json=httpRequest,proto3" json:"http_request,omitempty"`
 	// 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.
@@ -277,14 +277,14 @@ type ErrorContext struct {
 	// Error Reporting system will use other data, such as remote IP address, to
 	// distinguish affected users. See `affected_users_count` in
 	// `ErrorGroupStats`.
-	User string `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"`
+	User string `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
 	// 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.
-	ReportLocation       *SourceLocation `protobuf:"bytes,3,opt,name=report_location,json=reportLocation" json:"report_location,omitempty"`
+	ReportLocation       *SourceLocation `protobuf:"bytes,3,opt,name=report_location,json=reportLocation,proto3" json:"report_location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -341,20 +341,20 @@ func (m *ErrorContext) GetReportLocation() *SourceLocation {
 // error report has been generated automatically from Google App Engine logs.
 type HttpRequestContext struct {
 	// The type of HTTP request, such as `GET`, `POST`, etc.
-	Method string `protobuf:"bytes,1,opt,name=method" json:"method,omitempty"`
+	Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
 	// The URL of the request.
-	Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
 	// The user agent information that is provided with the request.
-	UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"`
+	UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
 	// The referrer information that is provided with the request.
-	Referrer string `protobuf:"bytes,4,opt,name=referrer" json:"referrer,omitempty"`
+	Referrer string `protobuf:"bytes,4,opt,name=referrer,proto3" json:"referrer,omitempty"`
 	// The HTTP response status code for the request.
-	ResponseStatusCode int32 `protobuf:"varint,5,opt,name=response_status_code,json=responseStatusCode" json:"response_status_code,omitempty"`
+	ResponseStatusCode int32 `protobuf:"varint,5,opt,name=response_status_code,json=responseStatusCode,proto3" json:"response_status_code,omitempty"`
 	// The IP address from which the request originated.
 	// This can be IPv4, IPv6, or a token which is derived from the
 	// IP address, depending on the data that has been provided
 	// in the error report.
-	RemoteIp             string   `protobuf:"bytes,6,opt,name=remote_ip,json=remoteIp" json:"remote_ip,omitempty"`
+	RemoteIp             string   `protobuf:"bytes,6,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,13 +434,13 @@ func (m *HttpRequestContext) GetRemoteIp() string {
 type SourceLocation struct {
 	// The source code filename, which can include a truncated relative
 	// path, or a full path from a production machine.
-	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath" json:"file_path,omitempty"`
+	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
 	// 1-based. 0 indicates that the line number is unknown.
-	LineNumber int32 `protobuf:"varint,2,opt,name=line_number,json=lineNumber" json:"line_number,omitempty"`
+	LineNumber int32 `protobuf:"varint,2,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
 	// Human-readable name of a function or method.
 	// The value can include optional context like the class or package name.
 	// For example, `my.package.MyClass.method` in case of Java.
-	FunctionName         string   `protobuf:"bytes,4,opt,name=function_name,json=functionName" json:"function_name,omitempty"`
+	FunctionName         string   `protobuf:"bytes,4,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/clouderrorreporting/v1beta1/error_group_service.pb.go b/googleapis/devtools/clouderrorreporting/v1beta1/error_group_service.pb.go
index fa40e370ede1013ef8e4c58f2957c5ad6ef34fa7..52d7ac10e1b0b674d4e4eee5b20674fac788cb91 100644
--- a/googleapis/devtools/clouderrorreporting/v1beta1/error_group_service.pb.go
+++ b/googleapis/devtools/clouderrorreporting/v1beta1/error_group_service.pb.go
@@ -34,7 +34,7 @@ type GetGroupRequest struct {
 	// this project.
 	//
 	// Example: <code>projects/my-project-123/groups/my-group</code>
-	GroupName            string   `protobuf:"bytes,1,opt,name=group_name,json=groupName" json:"group_name,omitempty"`
+	GroupName            string   `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -74,7 +74,7 @@ func (m *GetGroupRequest) GetGroupName() string {
 // A request to replace the existing data for the given group.
 type UpdateGroupRequest struct {
 	// [Required] The group which replaces the resource on the server.
-	Group                *ErrorGroup `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+	Group                *ErrorGroup `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -161,8 +161,7 @@ func (c *errorGroupServiceClient) UpdateGroup(ctx context.Context, in *UpdateGro
 	return out, nil
 }
 
-// Server API for ErrorGroupService service
-
+// ErrorGroupServiceServer is the server API for ErrorGroupService service.
 type ErrorGroupServiceServer interface {
 	// Get the specified group.
 	GetGroup(context.Context, *GetGroupRequest) (*ErrorGroup, error)
diff --git a/googleapis/devtools/clouderrorreporting/v1beta1/error_stats_service.pb.go b/googleapis/devtools/clouderrorreporting/v1beta1/error_stats_service.pb.go
index 67122625838c96468a9ac90bc846f714f2c53932..5e2e18f4b3d50483c4d5ee516aacfa7942429bac 100644
--- a/googleapis/devtools/clouderrorreporting/v1beta1/error_stats_service.pb.go
+++ b/googleapis/devtools/clouderrorreporting/v1beta1/error_stats_service.pb.go
@@ -160,13 +160,13 @@ type ListGroupStatsRequest struct {
 	// Platform project ID</a>.
 	//
 	// Example: <code>projects/my-project-123</code>.
-	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName" json:"project_name,omitempty"`
+	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"`
 	// [Optional] List all <code>ErrorGroupStats</code> with these IDs.
-	GroupId []string `protobuf:"bytes,2,rep,name=group_id,json=groupId" json:"group_id,omitempty"`
+	GroupId []string `protobuf:"bytes,2,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
 	// [Optional] List only <code>ErrorGroupStats</code> which belong to a service
 	// context that matches the filter.
 	// Data for all service contexts is returned if this field is not specified.
-	ServiceFilter *ServiceContextFilter `protobuf:"bytes,3,opt,name=service_filter,json=serviceFilter" json:"service_filter,omitempty"`
+	ServiceFilter *ServiceContextFilter `protobuf:"bytes,3,opt,name=service_filter,json=serviceFilter,proto3" json:"service_filter,omitempty"`
 	// [Optional] List data for the given time range.
 	// If not set a default time range is used. The field time_range_begin
 	// in the response will specify the beginning of this time range.
@@ -174,26 +174,26 @@ type ListGroupStatsRequest struct {
 	// range are returned, unless the request contains an explicit group_id list.
 	// If a group_id list is given, also <code>ErrorGroupStats</code> with zero
 	// occurrences are returned.
-	TimeRange *QueryTimeRange `protobuf:"bytes,5,opt,name=time_range,json=timeRange" json:"time_range,omitempty"`
+	TimeRange *QueryTimeRange `protobuf:"bytes,5,opt,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
 	// [Optional] The preferred duration for a single returned `TimedCount`.
 	// If not set, no timed counts are returned.
-	TimedCountDuration *duration.Duration `protobuf:"bytes,6,opt,name=timed_count_duration,json=timedCountDuration" json:"timed_count_duration,omitempty"`
+	TimedCountDuration *duration.Duration `protobuf:"bytes,6,opt,name=timed_count_duration,json=timedCountDuration,proto3" json:"timed_count_duration,omitempty"`
 	// [Optional] The alignment of the timed counts to be returned.
 	// Default is `ALIGNMENT_EQUAL_AT_END`.
-	Alignment TimedCountAlignment `protobuf:"varint,7,opt,name=alignment,enum=google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment" json:"alignment,omitempty"`
+	Alignment TimedCountAlignment `protobuf:"varint,7,opt,name=alignment,proto3,enum=google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment" json:"alignment,omitempty"`
 	// [Optional] Time where the timed counts shall be aligned if rounded
 	// alignment is chosen. Default is 00:00 UTC.
-	AlignmentTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=alignment_time,json=alignmentTime" json:"alignment_time,omitempty"`
+	AlignmentTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=alignment_time,json=alignmentTime,proto3" json:"alignment_time,omitempty"`
 	// [Optional] The sort order in which the results are returned.
 	// Default is `COUNT_DESC`.
-	Order ErrorGroupOrder `protobuf:"varint,9,opt,name=order,enum=google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder" json:"order,omitempty"`
+	Order ErrorGroupOrder `protobuf:"varint,9,opt,name=order,proto3,enum=google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder" json:"order,omitempty"`
 	// [Optional] The maximum number of results to return per response.
 	// Default is 20.
-	PageSize int32 `protobuf:"varint,11,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,11,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// [Optional] A `next_page_token` provided by a previous response. To view
 	// additional results, pass this token along with the identical query
 	// parameters as the first request.
-	PageToken            string   `protobuf:"bytes,12,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,12,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -296,16 +296,16 @@ func (m *ListGroupStatsRequest) GetPageToken() string {
 // Contains a set of requested error group stats.
 type ListGroupStatsResponse struct {
 	// The error group stats which match the given request.
-	ErrorGroupStats []*ErrorGroupStats `protobuf:"bytes,1,rep,name=error_group_stats,json=errorGroupStats" json:"error_group_stats,omitempty"`
+	ErrorGroupStats []*ErrorGroupStats `protobuf:"bytes,1,rep,name=error_group_stats,json=errorGroupStats,proto3" json:"error_group_stats,omitempty"`
 	// 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.
-	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	// 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.
-	TimeRangeBegin       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time_range_begin,json=timeRangeBegin" json:"time_range_begin,omitempty"`
+	TimeRangeBegin       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time_range_begin,json=timeRangeBegin,proto3" json:"time_range_begin,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -360,10 +360,10 @@ func (m *ListGroupStatsResponse) GetTimeRangeBegin() *timestamp.Timestamp {
 // such as a given time period and/or service filter.
 type ErrorGroupStats struct {
 	// Group data that is independent of the filter criteria.
-	Group *ErrorGroup `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+	Group *ErrorGroup `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
 	// Approximate total number of events in the given group that match
 	// the filter criteria.
-	Count int64 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
+	Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 	// Approximate number of affected users in the given group that
 	// match the filter criteria.
 	// Users are distinguished by data in the `ErrorContext` of the
@@ -376,35 +376,35 @@ type ErrorGroupStats struct {
 	// context that was provided in the error report. If more users are
 	// implicitly affected, such as due to a crash of the whole service,
 	// this is not reflected here.
-	AffectedUsersCount int64 `protobuf:"varint,3,opt,name=affected_users_count,json=affectedUsersCount" json:"affected_users_count,omitempty"`
+	AffectedUsersCount int64 `protobuf:"varint,3,opt,name=affected_users_count,json=affectedUsersCount,proto3" json:"affected_users_count,omitempty"`
 	// Approximate number of occurrences over time.
 	// Timed counts returned by ListGroups are guaranteed to be:
 	//
 	// - Inside the requested time interval
 	// - Non-overlapping, and
 	// - Ordered by ascending time.
-	TimedCounts []*TimedCount `protobuf:"bytes,4,rep,name=timed_counts,json=timedCounts" json:"timed_counts,omitempty"`
+	TimedCounts []*TimedCount `protobuf:"bytes,4,rep,name=timed_counts,json=timedCounts,proto3" json:"timed_counts,omitempty"`
 	// Approximate first occurrence that was ever seen for this group
 	// and which matches the given filter criteria, ignoring the
 	// time_range that was specified in the request.
-	FirstSeenTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=first_seen_time,json=firstSeenTime" json:"first_seen_time,omitempty"`
+	FirstSeenTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=first_seen_time,json=firstSeenTime,proto3" json:"first_seen_time,omitempty"`
 	// Approximate last occurrence that was ever seen for this group and
 	// which matches the given filter criteria, ignoring the time_range
 	// that was specified in the request.
-	LastSeenTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=last_seen_time,json=lastSeenTime" json:"last_seen_time,omitempty"`
+	LastSeenTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=last_seen_time,json=lastSeenTime,proto3" json:"last_seen_time,omitempty"`
 	// Service contexts with a non-zero error count for the given filter
 	// criteria. This list can be truncated if multiple services are affected.
 	// Refer to `num_affected_services` for the total count.
-	AffectedServices []*ServiceContext `protobuf:"bytes,7,rep,name=affected_services,json=affectedServices" json:"affected_services,omitempty"`
+	AffectedServices []*ServiceContext `protobuf:"bytes,7,rep,name=affected_services,json=affectedServices,proto3" json:"affected_services,omitempty"`
 	// The total number of services with a non-zero error count for the given
 	// filter criteria.
-	NumAffectedServices int32 `protobuf:"varint,8,opt,name=num_affected_services,json=numAffectedServices" json:"num_affected_services,omitempty"`
+	NumAffectedServices int32 `protobuf:"varint,8,opt,name=num_affected_services,json=numAffectedServices,proto3" json:"num_affected_services,omitempty"`
 	// An arbitrary event that is chosen as representative for the whole group.
 	// The representative event is intended to be used as a quick preview for
 	// the whole group. Events in the group are usually sufficiently similar
 	// to each other such that showing an arbitrary representative provides
 	// insight into the characteristics of the group as a whole.
-	Representative       *ErrorEvent `protobuf:"bytes,9,opt,name=representative" json:"representative,omitempty"`
+	Representative       *ErrorEvent `protobuf:"bytes,9,opt,name=representative,proto3" json:"representative,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -502,11 +502,11 @@ func (m *ErrorGroupStats) GetRepresentative() *ErrorEvent {
 // before counting them.
 type TimedCount struct {
 	// Approximate number of occurrences in the given time period.
-	Count int64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
+	Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
 	// Start of the time period to which `count` refers (included).
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End of the time period to which `count` refers (excluded).
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -564,21 +564,21 @@ type ListEventsRequest struct {
 	// [Google Cloud Platform project
 	// ID](https://support.google.com/cloud/answer/6158840).
 	// Example: `projects/my-project-123`.
-	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName" json:"project_name,omitempty"`
+	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"`
 	// [Required] The group for which events shall be returned.
-	GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId" json:"group_id,omitempty"`
+	GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
 	// [Optional] List only ErrorGroups which belong to a service context that
 	// matches the filter.
 	// Data for all service contexts is returned if this field is not specified.
-	ServiceFilter *ServiceContextFilter `protobuf:"bytes,3,opt,name=service_filter,json=serviceFilter" json:"service_filter,omitempty"`
+	ServiceFilter *ServiceContextFilter `protobuf:"bytes,3,opt,name=service_filter,json=serviceFilter,proto3" json:"service_filter,omitempty"`
 	// [Optional] List only data for the given time range.
 	// If not set a default time range is used. The field time_range_begin
 	// in the response will specify the beginning of this time range.
-	TimeRange *QueryTimeRange `protobuf:"bytes,4,opt,name=time_range,json=timeRange" json:"time_range,omitempty"`
+	TimeRange *QueryTimeRange `protobuf:"bytes,4,opt,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
 	// [Optional] The maximum number of results to return per response.
-	PageSize int32 `protobuf:"varint,6,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,6,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// [Optional] A `next_page_token` provided by a previous response.
-	PageToken            string   `protobuf:"bytes,7,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,7,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -653,13 +653,13 @@ func (m *ListEventsRequest) GetPageToken() string {
 // Contains a set of requested error events.
 type ListEventsResponse struct {
 	// The error events which match the given request.
-	ErrorEvents []*ErrorEvent `protobuf:"bytes,1,rep,name=error_events,json=errorEvents" json:"error_events,omitempty"`
+	ErrorEvents []*ErrorEvent `protobuf:"bytes,1,rep,name=error_events,json=errorEvents,proto3" json:"error_events,omitempty"`
 	// 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.
-	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	// The timestamp specifies the start time to which the request was restricted.
-	TimeRangeBegin       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time_range_begin,json=timeRangeBegin" json:"time_range_begin,omitempty"`
+	TimeRangeBegin       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=time_range_begin,json=timeRangeBegin,proto3" json:"time_range_begin,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -714,7 +714,7 @@ func (m *ListEventsResponse) GetTimeRangeBegin() *timestamp.Timestamp {
 // adjusted for lower durations.
 type QueryTimeRange struct {
 	// Restricts the query to the specified time range.
-	Period               QueryTimeRange_Period `protobuf:"varint,1,opt,name=period,enum=google.devtools.clouderrorreporting.v1beta1.QueryTimeRange_Period" json:"period,omitempty"`
+	Period               QueryTimeRange_Period `protobuf:"varint,1,opt,name=period,proto3,enum=google.devtools.clouderrorreporting.v1beta1.QueryTimeRange_Period" json:"period,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -758,13 +758,13 @@ func (m *QueryTimeRange) GetPeriod() QueryTimeRange_Period {
 type ServiceContextFilter struct {
 	// [Optional] The exact value to match against
 	// [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
-	Service string `protobuf:"bytes,2,opt,name=service" json:"service,omitempty"`
+	Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
 	// [Optional] The exact value to match against
 	// [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
-	Version string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
 	// [Optional] The exact value to match against
 	// [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
-	ResourceType         string   `protobuf:"bytes,4,opt,name=resource_type,json=resourceType" json:"resource_type,omitempty"`
+	ResourceType         string   `protobuf:"bytes,4,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -822,7 +822,7 @@ type DeleteEventsRequest struct {
 	// [Google Cloud Platform project
 	// ID](https://support.google.com/cloud/answer/6158840).
 	// Example: `projects/my-project-123`.
-	ProjectName          string   `protobuf:"bytes,1,opt,name=project_name,json=projectName" json:"project_name,omitempty"`
+	ProjectName          string   `protobuf:"bytes,1,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -961,8 +961,7 @@ func (c *errorStatsServiceClient) DeleteEvents(ctx context.Context, in *DeleteEv
 	return out, nil
 }
 
-// Server API for ErrorStatsService service
-
+// ErrorStatsServiceServer is the server API for ErrorStatsService service.
 type ErrorStatsServiceServer interface {
 	// Lists the specified groups.
 	ListGroupStats(context.Context, *ListGroupStatsRequest) (*ListGroupStatsResponse, error)
diff --git a/googleapis/devtools/clouderrorreporting/v1beta1/report_errors_service.pb.go b/googleapis/devtools/clouderrorreporting/v1beta1/report_errors_service.pb.go
index f126c62b2925bd4547aaba5b51dda30f3de40456..6a9b5ba4c1d5e991c2b5c378b347adc69fd79052 100644
--- a/googleapis/devtools/clouderrorreporting/v1beta1/report_errors_service.pb.go
+++ b/googleapis/devtools/clouderrorreporting/v1beta1/report_errors_service.pb.go
@@ -31,9 +31,9 @@ type ReportErrorEventRequest struct {
 	// as `projects/` plus the
 	// [Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840).
 	// Example: `projects/my-project-123`.
-	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName" json:"project_name,omitempty"`
+	ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"`
 	// [Required] The error event to be reported.
-	Event                *ReportedErrorEvent `protobuf:"bytes,2,opt,name=event" json:"event,omitempty"`
+	Event                *ReportedErrorEvent `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -114,16 +114,16 @@ type ReportedErrorEvent struct {
 	// [Optional] Time when the event occurred.
 	// If not provided, the time when the event was received by the
 	// Error Reporting system will be used.
-	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime" json:"event_time,omitempty"`
+	EventTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
 	// [Required] The service context in which this error has occurred.
-	ServiceContext *ServiceContext `protobuf:"bytes,2,opt,name=service_context,json=serviceContext" json:"service_context,omitempty"`
+	ServiceContext *ServiceContext `protobuf:"bytes,2,opt,name=service_context,json=serviceContext,proto3" json:"service_context,omitempty"`
 	// [Required] A message describing the error. The message can contain an
 	// exception stack in one of the supported programming languages and formats.
 	// In that case, the message is parsed and detailed exception information
 	// is returned when retrieving the error event again.
-	Message string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
+	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
 	// [Optional] A description of the context in which the error occurred.
-	Context              *ErrorContext `protobuf:"bytes,4,opt,name=context" json:"context,omitempty"`
+	Context              *ErrorContext `protobuf:"bytes,4,opt,name=context,proto3" json:"context,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -227,8 +227,7 @@ func (c *reportErrorsServiceClient) ReportErrorEvent(ctx context.Context, in *Re
 	return out, nil
 }
 
-// Server API for ReportErrorsService service
-
+// ReportErrorsServiceServer is the server API for ReportErrorsService service.
 type ReportErrorsServiceServer interface {
 	// Report an individual error event.
 	//
diff --git a/googleapis/devtools/cloudprofiler/v2/profiler.pb.go b/googleapis/devtools/cloudprofiler/v2/profiler.pb.go
index 1148cadc252399b874dd4e4e7d69ca105cb76ebf..53887f89213346854034d2034ee9a0c08cb41785 100644
--- a/googleapis/devtools/cloudprofiler/v2/profiler.pb.go
+++ b/googleapis/devtools/cloudprofiler/v2/profiler.pb.go
@@ -79,12 +79,12 @@ func (ProfileType) EnumDescriptor() ([]byte, []int) {
 // field must be identical to the deployment in the profile.
 type CreateProfileRequest struct {
 	// Deployment details.
-	Deployment *Deployment `protobuf:"bytes,1,opt,name=deployment" json:"deployment,omitempty"`
+	Deployment *Deployment `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
 	// Online mode: One or more profile types that the agent is capable of
 	// providing.
-	ProfileType []ProfileType `protobuf:"varint,2,rep,packed,name=profile_type,json=profileType,enum=google.devtools.cloudprofiler.v2.ProfileType" json:"profile_type,omitempty"`
+	ProfileType []ProfileType `protobuf:"varint,2,rep,packed,name=profile_type,json=profileType,proto3,enum=google.devtools.cloudprofiler.v2.ProfileType" json:"profile_type,omitempty"`
 	// Offline mode: Contents of the profile to create.
-	Profile              *Profile `protobuf:"bytes,3,opt,name=profile" json:"profile,omitempty"`
+	Profile              *Profile `protobuf:"bytes,3,opt,name=profile,proto3" json:"profile,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -138,7 +138,7 @@ func (m *CreateProfileRequest) GetProfile() *Profile {
 // UpdateProfileRequest contains the profile to update.
 type UpdateProfileRequest struct {
 	// Profile to update
-	Profile              *Profile `protobuf:"bytes,1,opt,name=profile" json:"profile,omitempty"`
+	Profile              *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -179,19 +179,19 @@ func (m *UpdateProfileRequest) GetProfile() *Profile {
 type Profile struct {
 	// Opaque, server-assigned, unique ID for this profile.
 	// Output only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Type of profile.
 	// Input (for the offline mode) or output (for the online mode).
-	ProfileType ProfileType `protobuf:"varint,2,opt,name=profile_type,json=profileType,enum=google.devtools.cloudprofiler.v2.ProfileType" json:"profile_type,omitempty"`
+	ProfileType ProfileType `protobuf:"varint,2,opt,name=profile_type,json=profileType,proto3,enum=google.devtools.cloudprofiler.v2.ProfileType" json:"profile_type,omitempty"`
 	// Deployment this profile corresponds to.
-	Deployment *Deployment `protobuf:"bytes,3,opt,name=deployment" json:"deployment,omitempty"`
+	Deployment *Deployment `protobuf:"bytes,3,opt,name=deployment,proto3" json:"deployment,omitempty"`
 	// Duration of the profiling session.
 	// Input (for the offline mode) or output (for the online mode).
 	// The field represents requested profiling duration. It may slightly differ
 	// from the effective profiling duration, which is recorded in the profile
 	// data, in case the profiling can't be stopped immediately (e.g. in case
 	// stopping the profiling is handled asynchronously).
-	Duration *duration.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration,omitempty"`
+	Duration *duration.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"`
 	// Profile bytes, as a gzip compressed serialized proto, the format is
 	// https://github.com/google/pprof/blob/master/proto/profile.proto.
 	ProfileBytes []byte `protobuf:"bytes,5,opt,name=profile_bytes,json=profileBytes,proto3" json:"profile_bytes,omitempty"`
@@ -199,7 +199,7 @@ type Profile struct {
 	// with the deployment labels for the final data set.
 	// See documentation on deployment labels for validation rules and limits.
 	// Input only, will not be populated on responses.
-	Labels               map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -275,14 +275,14 @@ func (m *Profile) GetLabels() map[string]string {
 type Deployment struct {
 	// Project ID is the ID of a cloud project.
 	// Validation regex: `^[a-z][-a-z0-9:.]{4,61}[a-z0-9]$`.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Target is the service name used to group related deployments:
 	// * Service name for GAE Flex / Standard.
 	// * Cluster and container name for GKE.
 	// * User-specified string for direct GCE profiling (e.g. Java).
 	// * Job name for Dataflow.
 	// Validation regex: `^[a-z]([-a-z0-9_.]{0,253}[a-z0-9])?$`.
-	Target string `protobuf:"bytes,2,opt,name=target" json:"target,omitempty"`
+	Target string `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
 	// Labels identify the deployment within the user universe and same target.
 	// Validation regex for label names: `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`.
 	// Value for an individual label must be <= 512 bytes, the total
@@ -296,7 +296,7 @@ type Deployment struct {
 	// should be present describing the deployment location. An example of a zone
 	// is "us-central1-a", an example of a region is "us-central1" or
 	// "us-central".
-	Labels               map[string]string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -418,8 +418,7 @@ func (c *profilerServiceClient) UpdateProfile(ctx context.Context, in *UpdatePro
 	return out, nil
 }
 
-// Server API for ProfilerService service
-
+// ProfilerServiceServer is the server API for ProfilerService service.
 type ProfilerServiceServer interface {
 	// CreateProfile creates a new profile resource.
 	//
diff --git a/googleapis/devtools/cloudtrace/v1/trace.pb.go b/googleapis/devtools/cloudtrace/v1/trace.pb.go
index 5f69519d9705e4ef161ea55f724d7ed56f97b6f3..30b3fc681c488607a401ce263f2ee909793450b8 100644
--- a/googleapis/devtools/cloudtrace/v1/trace.pb.go
+++ b/googleapis/devtools/cloudtrace/v1/trace.pb.go
@@ -102,12 +102,12 @@ func (ListTracesRequest_ViewType) EnumDescriptor() ([]byte, []int) {
 // timed event within the operation.
 type Trace struct {
 	// Project ID of the Cloud project where the trace data is stored.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Globally unique identifier for the trace. This identifier is a 128-bit
 	// numeric value formatted as a 32-byte hex string.
-	TraceId string `protobuf:"bytes,2,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
+	TraceId string `protobuf:"bytes,2,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
 	// Collection of spans in the trace.
-	Spans                []*TraceSpan `protobuf:"bytes,3,rep,name=spans" json:"spans,omitempty"`
+	Spans                []*TraceSpan `protobuf:"bytes,3,rep,name=spans,proto3" json:"spans,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -161,7 +161,7 @@ func (m *Trace) GetSpans() []*TraceSpan {
 // List of new or updated traces.
 type Traces struct {
 	// List of traces.
-	Traces               []*Trace `protobuf:"bytes,1,rep,name=traces" json:"traces,omitempty"`
+	Traces               []*Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -206,11 +206,11 @@ func (m *Traces) GetTraces() []*Trace {
 type TraceSpan struct {
 	// Identifier for the span. Must be a 64-bit integer other than 0 and
 	// unique within a trace.
-	SpanId uint64 `protobuf:"fixed64,1,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
+	SpanId uint64 `protobuf:"fixed64,1,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
 	// Distinguishes between spans generated in a particular context. For example,
 	// two spans with the same name may be distinguished using `RPC_CLIENT`
 	// and `RPC_SERVER` to identify queueing latency associated with the span.
-	Kind TraceSpan_SpanKind `protobuf:"varint,2,opt,name=kind,enum=google.devtools.cloudtrace.v1.TraceSpan_SpanKind" json:"kind,omitempty"`
+	Kind TraceSpan_SpanKind `protobuf:"varint,2,opt,name=kind,proto3,enum=google.devtools.cloudtrace.v1.TraceSpan_SpanKind" json:"kind,omitempty"`
 	// Name of the span. Must be less than 128 bytes. The span name is sanitized
 	// and displayed in the Stackdriver Trace tool in the
 	// {% dynamic print site_values.console_name %}.
@@ -218,13 +218,13 @@ type TraceSpan struct {
 	// 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.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// Start time of the span in nanoseconds from the UNIX epoch.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End time of the span in nanoseconds from the UNIX epoch.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// ID of the parent span, if any. Optional.
-	ParentSpanId uint64 `protobuf:"fixed64,6,opt,name=parent_span_id,json=parentSpanId" json:"parent_span_id,omitempty"`
+	ParentSpanId uint64 `protobuf:"fixed64,6,opt,name=parent_span_id,json=parentSpanId,proto3" json:"parent_span_id,omitempty"`
 	// Collection of labels associated with the span. Label keys must be less than
 	// 128 bytes. Label values must be less than 16 kilobytes (10MB for
 	// `/stacktrace` values).
@@ -260,7 +260,7 @@ type TraceSpan struct {
 	// *   `/pid`
 	// *   `/stacktrace`
 	// *   `/tid`
-	Labels               map[string]string `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -343,23 +343,23 @@ func (m *TraceSpan) GetLabels() map[string]string {
 // unless specified.
 type ListTracesRequest struct {
 	// ID of the Cloud project where the trace data is stored.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Type of data returned for traces in the list. Optional. Default is
 	// `MINIMAL`.
-	View ListTracesRequest_ViewType `protobuf:"varint,2,opt,name=view,enum=google.devtools.cloudtrace.v1.ListTracesRequest_ViewType" json:"view,omitempty"`
+	View ListTracesRequest_ViewType `protobuf:"varint,2,opt,name=view,proto3,enum=google.devtools.cloudtrace.v1.ListTracesRequest_ViewType" json:"view,omitempty"`
 	// 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.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token identifying the page of results to return. If provided, use the
 	// value of the `next_page_token` field from a previous request. Optional.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Start of the time interval (inclusive) during which the trace data was
 	// collected from the application.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End of the time interval (inclusive) during which the trace data was
 	// collected from the application.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// An optional filter against labels for the request.
 	//
 	// By default, searches use prefix matching. To specify exact match, prepend
@@ -390,7 +390,7 @@ type ListTracesRequest struct {
 	//     specified.
 	// *   `method:VALUE`: Equivalent to `/http/method:VALUE`.
 	// *   `url:VALUE`: Equivalent to `/http/url:VALUE`.
-	Filter string `protobuf:"bytes,7,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Field used to sort the returned traces. Optional.
 	// Can be one of the following:
 	//
@@ -404,7 +404,7 @@ type ListTracesRequest struct {
 	// (for example, `name desc`).
 	//
 	// Only one sort field is permitted.
-	OrderBy              string   `protobuf:"bytes,8,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy              string   `protobuf:"bytes,8,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -493,11 +493,11 @@ func (m *ListTracesRequest) GetOrderBy() string {
 // The response message for the `ListTraces` method.
 type ListTracesResponse struct {
 	// List of trace records returned.
-	Traces []*Trace `protobuf:"bytes,1,rep,name=traces" json:"traces,omitempty"`
+	Traces []*Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -544,9 +544,9 @@ func (m *ListTracesResponse) GetNextPageToken() string {
 // The request message for the `GetTrace` method.
 type GetTraceRequest struct {
 	// ID of the Cloud project where the trace data is stored.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// ID of the trace to return.
-	TraceId              string   `protobuf:"bytes,2,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
+	TraceId              string   `protobuf:"bytes,2,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -593,9 +593,9 @@ func (m *GetTraceRequest) GetTraceId() string {
 // The request message for the `PatchTraces` method.
 type PatchTracesRequest struct {
 	// ID of the Cloud project where the trace data is stored.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The body of the message.
-	Traces               *Traces  `protobuf:"bytes,2,opt,name=traces" json:"traces,omitempty"`
+	Traces               *Traces  `protobuf:"bytes,2,opt,name=traces,proto3" json:"traces,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -711,8 +711,7 @@ func (c *traceServiceClient) PatchTraces(ctx context.Context, in *PatchTracesReq
 	return out, nil
 }
 
-// Server API for TraceService service
-
+// TraceServiceServer is the server API for TraceService service.
 type TraceServiceServer interface {
 	// Returns of a list of traces that match the specified filter conditions.
 	ListTraces(context.Context, *ListTracesRequest) (*ListTracesResponse, error)
diff --git a/googleapis/devtools/cloudtrace/v2/trace.pb.go b/googleapis/devtools/cloudtrace/v2/trace.pb.go
index e9d968dac77e04dfb8b932e3968246c03e554c28..acdc2f11b53b197855638c0baabf4fca7d18a4d1 100644
--- a/googleapis/devtools/cloudtrace/v2/trace.pb.go
+++ b/googleapis/devtools/cloudtrace/v2/trace.pb.go
@@ -99,12 +99,12 @@ type Span struct {
 	//
 	// [SPAN_ID] is a unique identifier for a span within a trace; it
 	// is a 16-character hexadecimal encoding of an 8-byte array.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The [SPAN_ID] portion of the span's resource name.
-	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
+	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
 	// The [SPAN_ID] of this span's parent span. If this is a root span,
 	// then this field must be empty.
-	ParentSpanId string `protobuf:"bytes,3,opt,name=parent_span_id,json=parentSpanId" json:"parent_span_id,omitempty"`
+	ParentSpanId string `protobuf:"bytes,3,opt,name=parent_span_id,json=parentSpanId,proto3" json:"parent_span_id,omitempty"`
 	// A description of the span's operation (up to 128 bytes).
 	// Stackdriver Trace displays the description in the
 	// {% dynamic print site_values.console_name %}.
@@ -112,35 +112,35 @@ type Span struct {
 	// and a line number where the operation is called. A best practice is to use
 	// the same display name within an application and at the same call point.
 	// This makes it easier to correlate spans in different traces.
-	DisplayName *TruncatableString `protobuf:"bytes,4,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName *TruncatableString `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The start time of the span. On the client side, this is the time kept by
 	// the local machine where the span execution starts. On the server side, this
 	// is the time when the server's application handler starts running.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The end time of the span. On the client side, this is the time kept by
 	// the local machine where the span execution ends. On the server side, this
 	// is the time when the server application handler stops running.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// A set of attributes on the span. You can have up to 32 attributes per
 	// span.
-	Attributes *Span_Attributes `protobuf:"bytes,7,opt,name=attributes" json:"attributes,omitempty"`
+	Attributes *Span_Attributes `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty"`
 	// Stack trace captured at the start of the span.
-	StackTrace *StackTrace `protobuf:"bytes,8,opt,name=stack_trace,json=stackTrace" json:"stack_trace,omitempty"`
+	StackTrace *StackTrace `protobuf:"bytes,8,opt,name=stack_trace,json=stackTrace,proto3" json:"stack_trace,omitempty"`
 	// A set of time events. You can have up to 32 annotations and 128 message
 	// events per span.
-	TimeEvents *Span_TimeEvents `protobuf:"bytes,9,opt,name=time_events,json=timeEvents" json:"time_events,omitempty"`
+	TimeEvents *Span_TimeEvents `protobuf:"bytes,9,opt,name=time_events,json=timeEvents,proto3" json:"time_events,omitempty"`
 	// Links associated with the span. You can have up to 128 links per Span.
-	Links *Span_Links `protobuf:"bytes,10,opt,name=links" json:"links,omitempty"`
+	Links *Span_Links `protobuf:"bytes,10,opt,name=links,proto3" json:"links,omitempty"`
 	// An optional final status for this span.
-	Status *status.Status `protobuf:"bytes,11,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
 	// (Optional) Set this parameter to indicate whether this span is in
 	// the same process as its parent. If you do not set this parameter,
 	// Stackdriver Trace is unable to take advantage of this helpful
 	// information.
-	SameProcessAsParentSpan *wrappers.BoolValue `protobuf:"bytes,12,opt,name=same_process_as_parent_span,json=sameProcessAsParentSpan" json:"same_process_as_parent_span,omitempty"`
+	SameProcessAsParentSpan *wrappers.BoolValue `protobuf:"bytes,12,opt,name=same_process_as_parent_span,json=sameProcessAsParentSpan,proto3" json:"same_process_as_parent_span,omitempty"`
 	// An optional number of child spans that were generated while this span
 	// was active. If set, allows implementation to detect missing child spans.
-	ChildSpanCount       *wrappers.Int32Value `protobuf:"bytes,13,opt,name=child_span_count,json=childSpanCount" json:"child_span_count,omitempty"`
+	ChildSpanCount       *wrappers.Int32Value `protobuf:"bytes,13,opt,name=child_span_count,json=childSpanCount,proto3" json:"child_span_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -271,11 +271,11 @@ type Span_Attributes struct {
 	//     "/http/user_agent": ""
 	//     "/http/request_bytes": 300
 	//     "abc.com/myattribute": true
-	AttributeMap map[string]*AttributeValue `protobuf:"bytes,1,rep,name=attribute_map,json=attributeMap" json:"attribute_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	AttributeMap map[string]*AttributeValue `protobuf:"bytes,1,rep,name=attribute_map,json=attributeMap,proto3" json:"attribute_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The number of attributes that were discarded. Attributes can be discarded
 	// because their keys are too long or because there are too many attributes.
 	// If this value is 0 then all attributes are valid.
-	DroppedAttributesCount int32    `protobuf:"varint,2,opt,name=dropped_attributes_count,json=droppedAttributesCount" json:"dropped_attributes_count,omitempty"`
+	DroppedAttributesCount int32    `protobuf:"varint,2,opt,name=dropped_attributes_count,json=droppedAttributesCount,proto3" json:"dropped_attributes_count,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -322,7 +322,7 @@ func (m *Span_Attributes) GetDroppedAttributesCount() int32 {
 // A time-stamped annotation or message event in the Span.
 type Span_TimeEvent struct {
 	// The timestamp indicating the time the event occurred.
-	Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time" json:"time,omitempty"`
+	Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
 	// A `TimeEvent` can contain either an `Annotation` object or a
 	// `MessageEvent` object, but not both.
 	//
@@ -364,10 +364,10 @@ type isSpan_TimeEvent_Value interface {
 }
 
 type Span_TimeEvent_Annotation_ struct {
-	Annotation *Span_TimeEvent_Annotation `protobuf:"bytes,2,opt,name=annotation,oneof"`
+	Annotation *Span_TimeEvent_Annotation `protobuf:"bytes,2,opt,name=annotation,proto3,oneof"`
 }
 type Span_TimeEvent_MessageEvent_ struct {
-	MessageEvent *Span_TimeEvent_MessageEvent `protobuf:"bytes,3,opt,name=message_event,json=messageEvent,oneof"`
+	MessageEvent *Span_TimeEvent_MessageEvent `protobuf:"bytes,3,opt,name=message_event,json=messageEvent,proto3,oneof"`
 }
 
 func (*Span_TimeEvent_Annotation_) isSpan_TimeEvent_Value()   {}
@@ -479,10 +479,10 @@ func _Span_TimeEvent_OneofSizer(msg proto.Message) (n int) {
 type Span_TimeEvent_Annotation struct {
 	// A user-supplied message describing the event. The maximum length for
 	// the description is 256 bytes.
-	Description *TruncatableString `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
+	Description *TruncatableString `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
 	// A set of attributes on the annotation. You can have up to 4 attributes
 	// per Annotation.
-	Attributes           *Span_Attributes `protobuf:"bytes,2,opt,name=attributes" json:"attributes,omitempty"`
+	Attributes           *Span_Attributes `protobuf:"bytes,2,opt,name=attributes,proto3" json:"attributes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -530,16 +530,16 @@ func (m *Span_TimeEvent_Annotation) GetAttributes() *Span_Attributes {
 type Span_TimeEvent_MessageEvent struct {
 	// Type of MessageEvent. Indicates whether the message was sent or
 	// received.
-	Type Span_TimeEvent_MessageEvent_Type `protobuf:"varint,1,opt,name=type,enum=google.devtools.cloudtrace.v2.Span_TimeEvent_MessageEvent_Type" json:"type,omitempty"`
+	Type Span_TimeEvent_MessageEvent_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.cloudtrace.v2.Span_TimeEvent_MessageEvent_Type" json:"type,omitempty"`
 	// An identifier for the MessageEvent's message that can be used to match
 	// SENT and RECEIVED MessageEvents. It is recommended to be unique within
 	// a Span.
-	Id int64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"`
+	Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
 	// The number of uncompressed bytes sent or received.
-	UncompressedSizeBytes int64 `protobuf:"varint,3,opt,name=uncompressed_size_bytes,json=uncompressedSizeBytes" json:"uncompressed_size_bytes,omitempty"`
+	UncompressedSizeBytes int64 `protobuf:"varint,3,opt,name=uncompressed_size_bytes,json=uncompressedSizeBytes,proto3" json:"uncompressed_size_bytes,omitempty"`
 	// The number of compressed bytes sent or received. If missing assumed to
 	// be the same size as uncompressed.
-	CompressedSizeBytes  int64    `protobuf:"varint,4,opt,name=compressed_size_bytes,json=compressedSizeBytes" json:"compressed_size_bytes,omitempty"`
+	CompressedSizeBytes  int64    `protobuf:"varint,4,opt,name=compressed_size_bytes,json=compressedSizeBytes,proto3" json:"compressed_size_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -602,13 +602,13 @@ func (m *Span_TimeEvent_MessageEvent) GetCompressedSizeBytes() int64 {
 // details of a message sent/received between Spans.
 type Span_TimeEvents struct {
 	// A collection of `TimeEvent`s.
-	TimeEvent []*Span_TimeEvent `protobuf:"bytes,1,rep,name=time_event,json=timeEvent" json:"time_event,omitempty"`
+	TimeEvent []*Span_TimeEvent `protobuf:"bytes,1,rep,name=time_event,json=timeEvent,proto3" json:"time_event,omitempty"`
 	// The number of dropped annotations in all the included time events.
 	// If the value is 0, then no annotations were dropped.
-	DroppedAnnotationsCount int32 `protobuf:"varint,2,opt,name=dropped_annotations_count,json=droppedAnnotationsCount" json:"dropped_annotations_count,omitempty"`
+	DroppedAnnotationsCount int32 `protobuf:"varint,2,opt,name=dropped_annotations_count,json=droppedAnnotationsCount,proto3" json:"dropped_annotations_count,omitempty"`
 	// The number of dropped message events in all the included time events.
 	// If the value is 0, then no message events were dropped.
-	DroppedMessageEventsCount int32    `protobuf:"varint,3,opt,name=dropped_message_events_count,json=droppedMessageEventsCount" json:"dropped_message_events_count,omitempty"`
+	DroppedMessageEventsCount int32    `protobuf:"varint,3,opt,name=dropped_message_events_count,json=droppedMessageEventsCount,proto3" json:"dropped_message_events_count,omitempty"`
 	XXX_NoUnkeyedLiteral      struct{} `json:"-"`
 	XXX_unrecognized          []byte   `json:"-"`
 	XXX_sizecache             int32    `json:"-"`
@@ -665,14 +665,14 @@ func (m *Span_TimeEvents) GetDroppedMessageEventsCount() int32 {
 // traces or when the handler receives a request from a different project.
 type Span_Link struct {
 	// The [TRACE_ID] for a trace within a project.
-	TraceId string `protobuf:"bytes,1,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
+	TraceId string `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
 	// The [SPAN_ID] for a span within a trace.
-	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
+	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
 	// The relationship of the current span relative to the linked span.
-	Type Span_Link_Type `protobuf:"varint,3,opt,name=type,enum=google.devtools.cloudtrace.v2.Span_Link_Type" json:"type,omitempty"`
+	Type Span_Link_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.devtools.cloudtrace.v2.Span_Link_Type" json:"type,omitempty"`
 	// A set of attributes on the link. You have have up to  32 attributes per
 	// link.
-	Attributes           *Span_Attributes `protobuf:"bytes,4,opt,name=attributes" json:"attributes,omitempty"`
+	Attributes           *Span_Attributes `protobuf:"bytes,4,opt,name=attributes,proto3" json:"attributes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -734,10 +734,10 @@ func (m *Span_Link) GetAttributes() *Span_Attributes {
 // in the same or different trace.
 type Span_Links struct {
 	// A collection of links.
-	Link []*Span_Link `protobuf:"bytes,1,rep,name=link" json:"link,omitempty"`
+	Link []*Span_Link `protobuf:"bytes,1,rep,name=link,proto3" json:"link,omitempty"`
 	// The number of dropped links after the maximum size was enforced. If
 	// this value is 0, then no links were dropped.
-	DroppedLinksCount    int32    `protobuf:"varint,2,opt,name=dropped_links_count,json=droppedLinksCount" json:"dropped_links_count,omitempty"`
+	DroppedLinksCount    int32    `protobuf:"varint,2,opt,name=dropped_links_count,json=droppedLinksCount,proto3" json:"dropped_links_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -824,13 +824,13 @@ type isAttributeValue_Value interface {
 }
 
 type AttributeValue_StringValue struct {
-	StringValue *TruncatableString `protobuf:"bytes,1,opt,name=string_value,json=stringValue,oneof"`
+	StringValue *TruncatableString `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type AttributeValue_IntValue struct {
-	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,oneof"`
+	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
 }
 type AttributeValue_BoolValue struct {
-	BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,oneof"`
+	BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"`
 }
 
 func (*AttributeValue_StringValue) isAttributeValue_Value() {}
@@ -955,7 +955,7 @@ func _AttributeValue_OneofSizer(msg proto.Message) (n int) {
 // A call stack appearing in a trace.
 type StackTrace struct {
 	// Stack frames in this stack trace. A maximum of 128 frames are allowed.
-	StackFrames *StackTrace_StackFrames `protobuf:"bytes,1,opt,name=stack_frames,json=stackFrames" json:"stack_frames,omitempty"`
+	StackFrames *StackTrace_StackFrames `protobuf:"bytes,1,opt,name=stack_frames,json=stackFrames,proto3" json:"stack_frames,omitempty"`
 	// The hash ID is used to conserve network bandwidth for duplicate
 	// stack traces within a single trace.
 	//
@@ -965,7 +965,7 @@ type StackTrace struct {
 	//
 	// Subsequent spans within the same request can refer
 	// to that stack trace by only setting `stackTraceHashId`.
-	StackTraceHashId     int64    `protobuf:"varint,2,opt,name=stack_trace_hash_id,json=stackTraceHashId" json:"stack_trace_hash_id,omitempty"`
+	StackTraceHashId     int64    `protobuf:"varint,2,opt,name=stack_trace_hash_id,json=stackTraceHashId,proto3" json:"stack_trace_hash_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1013,23 +1013,23 @@ func (m *StackTrace) GetStackTraceHashId() int64 {
 type StackTrace_StackFrame struct {
 	// The fully-qualified name that uniquely identifies the function or
 	// method that is active in this frame (up to 1024 bytes).
-	FunctionName *TruncatableString `protobuf:"bytes,1,opt,name=function_name,json=functionName" json:"function_name,omitempty"`
+	FunctionName *TruncatableString `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
 	// An un-mangled function name, if `function_name` is
 	// [mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can
 	// be fully-qualified (up to 1024 bytes).
-	OriginalFunctionName *TruncatableString `protobuf:"bytes,2,opt,name=original_function_name,json=originalFunctionName" json:"original_function_name,omitempty"`
+	OriginalFunctionName *TruncatableString `protobuf:"bytes,2,opt,name=original_function_name,json=originalFunctionName,proto3" json:"original_function_name,omitempty"`
 	// The name of the source file where the function call appears (up to 256
 	// bytes).
-	FileName *TruncatableString `protobuf:"bytes,3,opt,name=file_name,json=fileName" json:"file_name,omitempty"`
+	FileName *TruncatableString `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
 	// The line number in `file_name` where the function call appears.
-	LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber" json:"line_number,omitempty"`
+	LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
 	// The column number where the function call appears, if available.
 	// This is important in JavaScript because of its anonymous functions.
-	ColumnNumber int64 `protobuf:"varint,5,opt,name=column_number,json=columnNumber" json:"column_number,omitempty"`
+	ColumnNumber int64 `protobuf:"varint,5,opt,name=column_number,json=columnNumber,proto3" json:"column_number,omitempty"`
 	// The binary module from where the code was loaded.
-	LoadModule *Module `protobuf:"bytes,6,opt,name=load_module,json=loadModule" json:"load_module,omitempty"`
+	LoadModule *Module `protobuf:"bytes,6,opt,name=load_module,json=loadModule,proto3" json:"load_module,omitempty"`
 	// The version of the deployed source code (up to 128 bytes).
-	SourceVersion        *TruncatableString `protobuf:"bytes,7,opt,name=source_version,json=sourceVersion" json:"source_version,omitempty"`
+	SourceVersion        *TruncatableString `protobuf:"bytes,7,opt,name=source_version,json=sourceVersion,proto3" json:"source_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1111,11 +1111,11 @@ func (m *StackTrace_StackFrame) GetSourceVersion() *TruncatableString {
 // A collection of stack frames, which can be truncated.
 type StackTrace_StackFrames struct {
 	// Stack frames in this call stack.
-	Frame []*StackTrace_StackFrame `protobuf:"bytes,1,rep,name=frame" json:"frame,omitempty"`
+	Frame []*StackTrace_StackFrame `protobuf:"bytes,1,rep,name=frame,proto3" json:"frame,omitempty"`
 	// The number of stack frames that were dropped because there
 	// were too many stack frames.
 	// If this value is 0, then no stack frames were dropped.
-	DroppedFramesCount   int32    `protobuf:"varint,2,opt,name=dropped_frames_count,json=droppedFramesCount" json:"dropped_frames_count,omitempty"`
+	DroppedFramesCount   int32    `protobuf:"varint,2,opt,name=dropped_frames_count,json=droppedFramesCount,proto3" json:"dropped_frames_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1163,10 +1163,10 @@ func (m *StackTrace_StackFrames) GetDroppedFramesCount() int32 {
 type Module struct {
 	// For example: main binary, kernel modules, and dynamic libraries
 	// such as libc.so, sharedlib.so (up to 256 bytes).
-	Module *TruncatableString `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"`
+	Module *TruncatableString `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"`
 	// A unique identifier for the module, usually a hash of its
 	// contents (up to 128 bytes).
-	BuildId              *TruncatableString `protobuf:"bytes,2,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
+	BuildId              *TruncatableString `protobuf:"bytes,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1219,10 +1219,10 @@ type TruncatableString struct {
 	// Truncation always happens on a UTF8 character boundary. If there
 	// are multi-byte characters in the string, then the length of the
 	// shortened string might be less than the size limit.
-	Value string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
 	// The number of bytes removed from the original string. If this
 	// value is 0, then the string was not shortened.
-	TruncatedByteCount   int32    `protobuf:"varint,2,opt,name=truncated_byte_count,json=truncatedByteCount" json:"truncated_byte_count,omitempty"`
+	TruncatedByteCount   int32    `protobuf:"varint,2,opt,name=truncated_byte_count,json=truncatedByteCount,proto3" json:"truncated_byte_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/cloudtrace/v2/tracing.pb.go b/googleapis/devtools/cloudtrace/v2/tracing.pb.go
index ea53eb88484e1f94450a427b05e785e4ad6f156a..6d2dd510c523240808bc79941aed302cc26ce7a3 100644
--- a/googleapis/devtools/cloudtrace/v2/tracing.pb.go
+++ b/googleapis/devtools/cloudtrace/v2/tracing.pb.go
@@ -30,10 +30,10 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type BatchWriteSpansRequest struct {
 	// Required. The name of the project where the spans belong. The format is
 	// `projects/[PROJECT_ID]`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A list of new spans. The span names must not match existing
 	// spans, or the results are undefined.
-	Spans                []*Span  `protobuf:"bytes,2,rep,name=spans" json:"spans,omitempty"`
+	Spans                []*Span  `protobuf:"bytes,2,rep,name=spans,proto3" json:"spans,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -126,8 +126,7 @@ func (c *traceServiceClient) CreateSpan(ctx context.Context, in *Span, opts ...g
 	return out, nil
 }
 
-// Server API for TraceService service
-
+// TraceServiceServer is the server API for TraceService service.
 type TraceServiceServer interface {
 	// Sends new spans to new or existing traces. You cannot update
 	// existing spans.
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/bill_of_materials.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/bill_of_materials.pb.go
index 5bb0dbe5814c4336414338df79b7acff05218aa8..794f02fae9585e2949cae033ad3d02e6887c5c95 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/bill_of_materials.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/bill_of_materials.pb.go
@@ -85,19 +85,19 @@ var xxx_messageInfo_PackageManager proto.InternalMessageInfo
 type PackageManager_Distribution struct {
 	// The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
 	// denoting the package manager version distributing a package.
-	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri" json:"cpe_uri,omitempty"`
+	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri,proto3" json:"cpe_uri,omitempty"`
 	// The CPU architecture for which packages in this distribution
 	// channel were built
-	Architecture PackageManager_Architecture `protobuf:"varint,2,opt,name=architecture,enum=google.devtools.containeranalysis.v1alpha1.PackageManager_Architecture" json:"architecture,omitempty"`
+	Architecture PackageManager_Architecture `protobuf:"varint,2,opt,name=architecture,proto3,enum=google.devtools.containeranalysis.v1alpha1.PackageManager_Architecture" json:"architecture,omitempty"`
 	// The latest available version of this package in
 	// this distribution channel.
-	LatestVersion *VulnerabilityType_Version `protobuf:"bytes,3,opt,name=latest_version,json=latestVersion" json:"latest_version,omitempty"`
+	LatestVersion *VulnerabilityType_Version `protobuf:"bytes,3,opt,name=latest_version,json=latestVersion,proto3" json:"latest_version,omitempty"`
 	// A freeform string denoting the maintainer of this package.
-	Maintainer string `protobuf:"bytes,4,opt,name=maintainer" json:"maintainer,omitempty"`
+	Maintainer string `protobuf:"bytes,4,opt,name=maintainer,proto3" json:"maintainer,omitempty"`
 	// The distribution channel-specific homepage for this package.
-	Url string `protobuf:"bytes,6,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
 	// The distribution channel-specific description of this package.
-	Description          string   `protobuf:"bytes,7,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -175,11 +175,11 @@ func (m *PackageManager_Distribution) GetDescription() string {
 type PackageManager_Location struct {
 	// The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
 	// denoting the package manager version distributing a package.
-	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri" json:"cpe_uri,omitempty"`
+	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri,proto3" json:"cpe_uri,omitempty"`
 	// The version installed at this location.
-	Version *VulnerabilityType_Version `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+	Version *VulnerabilityType_Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
 	// The path from which we gathered that this package/version is installed.
-	Path                 string   `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"`
+	Path                 string   `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -235,9 +235,9 @@ func (m *PackageManager_Location) GetPath() string {
 // e.g. glibc (aka libc6) is distributed by many, at various versions.
 type PackageManager_Package struct {
 	// The name of the package.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The various channels by which a package is distributed.
-	Distribution         []*PackageManager_Distribution `protobuf:"bytes,10,rep,name=distribution" json:"distribution,omitempty"`
+	Distribution         []*PackageManager_Distribution `protobuf:"bytes,10,rep,name=distribution,proto3" json:"distribution,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -285,10 +285,10 @@ func (m *PackageManager_Package) GetDistribution() []*PackageManager_Distributio
 // a system.
 type PackageManager_Installation struct {
 	// Output only. The name of the installed package.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// All of the places within the filesystem versions of this package
 	// have been found.
-	Location             []*PackageManager_Location `protobuf:"bytes,2,rep,name=location" json:"location,omitempty"`
+	Location             []*PackageManager_Location `protobuf:"bytes,2,rep,name=location,proto3" json:"location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/containeranalysis.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/containeranalysis.pb.go
index 7b078463e28db86142ca3e8c5c003b9d1d03508a..c74f41e719395db2243842b76611f3cb0401617c 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/containeranalysis.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/containeranalysis.pb.go
@@ -222,20 +222,20 @@ func (PgpSignedAttestation_ContentType) EnumDescriptor() ([]byte, []int) {
 type Occurrence struct {
 	// Output only. The name of the `Occurrence` in the form
 	// "projects/{project_id}/occurrences/{OCCURRENCE_ID}"
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The unique URL of the image or the container for which the `Occurrence`
 	// applies. For example, https://gcr.io/project/image@sha256:foo This field
 	// can be used as a filter in list requests.
-	ResourceUrl string `protobuf:"bytes,2,opt,name=resource_url,json=resourceUrl" json:"resource_url,omitempty"`
+	ResourceUrl string `protobuf:"bytes,2,opt,name=resource_url,json=resourceUrl,proto3" json:"resource_url,omitempty"`
 	// The resource for which the `Occurrence` applies.
-	Resource *Resource `protobuf:"bytes,17,opt,name=resource" json:"resource,omitempty"`
+	Resource *Resource `protobuf:"bytes,17,opt,name=resource,proto3" json:"resource,omitempty"`
 	// An analysis note associated with this image, in the form
 	// "providers/{provider_id}/notes/{NOTE_ID}"
 	// This field can be used as a filter in list requests.
-	NoteName string `protobuf:"bytes,3,opt,name=note_name,json=noteName" json:"note_name,omitempty"`
+	NoteName string `protobuf:"bytes,3,opt,name=note_name,json=noteName,proto3" json:"note_name,omitempty"`
 	// Output only. This explicitly denotes which of the `Occurrence` details are
 	// specified. This field can be used as a filter in list requests.
-	Kind Note_Kind `protobuf:"varint,6,opt,name=kind,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
+	Kind Note_Kind `protobuf:"varint,6,opt,name=kind,proto3,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
 	// Describes the details of the vulnerability `Note` found in this resource.
 	//
 	// Types that are valid to be assigned to Details:
@@ -248,11 +248,11 @@ type Occurrence struct {
 	//	*Occurrence_Attestation
 	Details isOccurrence_Details `protobuf_oneof:"details"`
 	// A description of actions that can be taken to remedy the `Note`
-	Remediation string `protobuf:"bytes,5,opt,name=remediation" json:"remediation,omitempty"`
+	Remediation string `protobuf:"bytes,5,opt,name=remediation,proto3" json:"remediation,omitempty"`
 	// Output only. The time this `Occurrence` was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time this `Occurrence` was last updated.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -287,25 +287,25 @@ type isOccurrence_Details interface {
 }
 
 type Occurrence_VulnerabilityDetails struct {
-	VulnerabilityDetails *VulnerabilityType_VulnerabilityDetails `protobuf:"bytes,8,opt,name=vulnerability_details,json=vulnerabilityDetails,oneof"`
+	VulnerabilityDetails *VulnerabilityType_VulnerabilityDetails `protobuf:"bytes,8,opt,name=vulnerability_details,json=vulnerabilityDetails,proto3,oneof"`
 }
 type Occurrence_BuildDetails struct {
-	BuildDetails *BuildDetails `protobuf:"bytes,7,opt,name=build_details,json=buildDetails,oneof"`
+	BuildDetails *BuildDetails `protobuf:"bytes,7,opt,name=build_details,json=buildDetails,proto3,oneof"`
 }
 type Occurrence_DerivedImage struct {
-	DerivedImage *DockerImage_Derived `protobuf:"bytes,11,opt,name=derived_image,json=derivedImage,oneof"`
+	DerivedImage *DockerImage_Derived `protobuf:"bytes,11,opt,name=derived_image,json=derivedImage,proto3,oneof"`
 }
 type Occurrence_Installation struct {
-	Installation *PackageManager_Installation `protobuf:"bytes,12,opt,name=installation,oneof"`
+	Installation *PackageManager_Installation `protobuf:"bytes,12,opt,name=installation,proto3,oneof"`
 }
 type Occurrence_Deployment struct {
-	Deployment *Deployable_Deployment `protobuf:"bytes,14,opt,name=deployment,oneof"`
+	Deployment *Deployable_Deployment `protobuf:"bytes,14,opt,name=deployment,proto3,oneof"`
 }
 type Occurrence_Discovered struct {
-	Discovered *Discovery_Discovered `protobuf:"bytes,15,opt,name=discovered,oneof"`
+	Discovered *Discovery_Discovered `protobuf:"bytes,15,opt,name=discovered,proto3,oneof"`
 }
 type Occurrence_Attestation struct {
-	Attestation *AttestationAuthority_Attestation `protobuf:"bytes,16,opt,name=attestation,oneof"`
+	Attestation *AttestationAuthority_Attestation `protobuf:"bytes,16,opt,name=attestation,proto3,oneof"`
 }
 
 func (*Occurrence_VulnerabilityDetails) isOccurrence_Details() {}
@@ -600,12 +600,12 @@ func _Occurrence_OneofSizer(msg proto.Message) (n int) {
 // Resource is an entity that can have metadata. E.g., a Docker image.
 type Resource struct {
 	// The name of the resource. E.g., the name of a Docker image - "Debian".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The unique URI of the resource. E.g.,
 	// "https://gcr.io/project/image@sha256:foo" for a Docker image.
-	Uri string `protobuf:"bytes,2,opt,name=uri" json:"uri,omitempty"`
+	Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
 	// The hash of the resource content. E.g., the Docker digest.
-	ContentHash          *Hash    `protobuf:"bytes,3,opt,name=content_hash,json=contentHash" json:"content_hash,omitempty"`
+	ContentHash          *Hash    `protobuf:"bytes,3,opt,name=content_hash,json=contentHash,proto3" json:"content_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -660,14 +660,14 @@ func (m *Resource) GetContentHash() *Hash {
 type Note struct {
 	// The name of the note in the form
 	// "providers/{provider_id}/notes/{NOTE_ID}"
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A one sentence description of this `Note`.
-	ShortDescription string `protobuf:"bytes,3,opt,name=short_description,json=shortDescription" json:"short_description,omitempty"`
+	ShortDescription string `protobuf:"bytes,3,opt,name=short_description,json=shortDescription,proto3" json:"short_description,omitempty"`
 	// A detailed description of this `Note`.
-	LongDescription string `protobuf:"bytes,4,opt,name=long_description,json=longDescription" json:"long_description,omitempty"`
+	LongDescription string `protobuf:"bytes,4,opt,name=long_description,json=longDescription,proto3" json:"long_description,omitempty"`
 	// Output only. This explicitly denotes which kind of note is specified. This
 	// field can be used as a filter in list requests.
-	Kind Note_Kind `protobuf:"varint,9,opt,name=kind,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
+	Kind Note_Kind `protobuf:"varint,9,opt,name=kind,proto3,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
 	// The type of note.
 	//
 	// Types that are valid to be assigned to NoteType:
@@ -680,15 +680,15 @@ type Note struct {
 	//	*Note_AttestationAuthority
 	NoteType isNote_NoteType `protobuf_oneof:"note_type"`
 	// URLs associated with this note
-	RelatedUrl []*Note_RelatedUrl `protobuf:"bytes,7,rep,name=related_url,json=relatedUrl" json:"related_url,omitempty"`
+	RelatedUrl []*Note_RelatedUrl `protobuf:"bytes,7,rep,name=related_url,json=relatedUrl,proto3" json:"related_url,omitempty"`
 	// Time of expiration for this note, null if note does not expire.
-	ExpirationTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=expiration_time,json=expirationTime" json:"expiration_time,omitempty"`
+	ExpirationTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"`
 	// Output only. The time this note was created. This field can be used as a
 	// filter in list requests.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time this note was last updated. This field can be used as
 	// a filter in list requests.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,12,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,12,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -723,25 +723,25 @@ type isNote_NoteType interface {
 }
 
 type Note_VulnerabilityType struct {
-	VulnerabilityType *VulnerabilityType `protobuf:"bytes,6,opt,name=vulnerability_type,json=vulnerabilityType,oneof"`
+	VulnerabilityType *VulnerabilityType `protobuf:"bytes,6,opt,name=vulnerability_type,json=vulnerabilityType,proto3,oneof"`
 }
 type Note_BuildType struct {
-	BuildType *BuildType `protobuf:"bytes,8,opt,name=build_type,json=buildType,oneof"`
+	BuildType *BuildType `protobuf:"bytes,8,opt,name=build_type,json=buildType,proto3,oneof"`
 }
 type Note_BaseImage struct {
-	BaseImage *DockerImage_Basis `protobuf:"bytes,13,opt,name=base_image,json=baseImage,oneof"`
+	BaseImage *DockerImage_Basis `protobuf:"bytes,13,opt,name=base_image,json=baseImage,proto3,oneof"`
 }
 type Note_Package struct {
-	Package *PackageManager_Package `protobuf:"bytes,14,opt,name=package,oneof"`
+	Package *PackageManager_Package `protobuf:"bytes,14,opt,name=package,proto3,oneof"`
 }
 type Note_Deployable struct {
-	Deployable *Deployable `protobuf:"bytes,17,opt,name=deployable,oneof"`
+	Deployable *Deployable `protobuf:"bytes,17,opt,name=deployable,proto3,oneof"`
 }
 type Note_Discovery struct {
-	Discovery *Discovery `protobuf:"bytes,18,opt,name=discovery,oneof"`
+	Discovery *Discovery `protobuf:"bytes,18,opt,name=discovery,proto3,oneof"`
 }
 type Note_AttestationAuthority struct {
-	AttestationAuthority *AttestationAuthority `protobuf:"bytes,19,opt,name=attestation_authority,json=attestationAuthority,oneof"`
+	AttestationAuthority *AttestationAuthority `protobuf:"bytes,19,opt,name=attestation_authority,json=attestationAuthority,proto3,oneof"`
 }
 
 func (*Note_VulnerabilityType) isNote_NoteType()    {}
@@ -1036,9 +1036,9 @@ func _Note_OneofSizer(msg proto.Message) (n int) {
 // Metadata for any related URL information
 type Note_RelatedUrl struct {
 	// Specific URL to associate with the note
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// Label to describe usage of the URL
-	Label                string   `protobuf:"bytes,2,opt,name=label" json:"label,omitempty"`
+	Label                string   `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1085,7 +1085,7 @@ func (m *Note_RelatedUrl) GetLabel() string {
 // An artifact that can be deployed in some runtime.
 type Deployable struct {
 	// Resource URI for the artifact being deployed.
-	ResourceUri          []string `protobuf:"bytes,1,rep,name=resource_uri,json=resourceUri" json:"resource_uri,omitempty"`
+	ResourceUri          []string `protobuf:"bytes,1,rep,name=resource_uri,json=resourceUri,proto3" json:"resource_uri,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1125,20 +1125,20 @@ func (m *Deployable) GetResourceUri() []string {
 // The period during which some deployable was active in a runtime.
 type Deployable_Deployment struct {
 	// Identity of the user that triggered this deployment.
-	UserEmail string `protobuf:"bytes,1,opt,name=user_email,json=userEmail" json:"user_email,omitempty"`
+	UserEmail string `protobuf:"bytes,1,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
 	// Beginning of the lifetime of this deployment.
-	DeployTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=deploy_time,json=deployTime" json:"deploy_time,omitempty"`
+	DeployTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=deploy_time,json=deployTime,proto3" json:"deploy_time,omitempty"`
 	// End of the lifetime of this deployment.
-	UndeployTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=undeploy_time,json=undeployTime" json:"undeploy_time,omitempty"`
+	UndeployTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=undeploy_time,json=undeployTime,proto3" json:"undeploy_time,omitempty"`
 	// Configuration used to create this deployment.
-	Config string `protobuf:"bytes,8,opt,name=config" json:"config,omitempty"`
+	Config string `protobuf:"bytes,8,opt,name=config,proto3" json:"config,omitempty"`
 	// Address of the runtime element hosting this deployment.
-	Address string `protobuf:"bytes,5,opt,name=address" json:"address,omitempty"`
+	Address string `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"`
 	// Output only. Resource URI for the artifact being deployed taken from the
 	// deployable field with the same name.
-	ResourceUri []string `protobuf:"bytes,6,rep,name=resource_uri,json=resourceUri" json:"resource_uri,omitempty"`
+	ResourceUri []string `protobuf:"bytes,6,rep,name=resource_uri,json=resourceUri,proto3" json:"resource_uri,omitempty"`
 	// Platform hosting this deployment.
-	Platform             Deployable_Deployment_Platform `protobuf:"varint,7,opt,name=platform,enum=google.devtools.containeranalysis.v1alpha1.Deployable_Deployment_Platform" json:"platform,omitempty"`
+	Platform             Deployable_Deployment_Platform `protobuf:"varint,7,opt,name=platform,proto3,enum=google.devtools.containeranalysis.v1alpha1.Deployable_Deployment_Platform" json:"platform,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -1224,7 +1224,7 @@ func (m *Deployable_Deployment) GetPlatform() Deployable_Deployment_Platform {
 // note for a resource indicates that analysis hasn't started.
 type Discovery struct {
 	// The kind of analysis that is handled by this discovery.
-	AnalysisKind         Note_Kind `protobuf:"varint,1,opt,name=analysis_kind,json=analysisKind,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"analysis_kind,omitempty"`
+	AnalysisKind         Note_Kind `protobuf:"varint,1,opt,name=analysis_kind,json=analysisKind,proto3,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"analysis_kind,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1264,13 +1264,13 @@ func (m *Discovery) GetAnalysisKind() Note_Kind {
 // Provides information about the scan status of a discovered resource.
 type Discovery_Discovered struct {
 	// Output only. An operation that indicates the status of the current scan.
-	Operation *longrunning.Operation `protobuf:"bytes,1,opt,name=operation" json:"operation,omitempty"`
+	Operation *longrunning.Operation `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
 	// The status of discovery for the resource.
-	AnalysisStatus Discovery_Discovered_AnalysisStatus `protobuf:"varint,5,opt,name=analysis_status,json=analysisStatus,enum=google.devtools.containeranalysis.v1alpha1.Discovery_Discovered_AnalysisStatus" json:"analysis_status,omitempty"`
+	AnalysisStatus Discovery_Discovered_AnalysisStatus `protobuf:"varint,5,opt,name=analysis_status,json=analysisStatus,proto3,enum=google.devtools.containeranalysis.v1alpha1.Discovery_Discovered_AnalysisStatus" json:"analysis_status,omitempty"`
 	// When an error is encountered this will contain a LocalizedMessage under
 	// details to show to the user. The LocalizedMessage output only and
 	// populated by the API.
-	AnalysisStatusError  *status.Status `protobuf:"bytes,6,opt,name=analysis_status_error,json=analysisStatusError" json:"analysis_status_error,omitempty"`
+	AnalysisStatusError  *status.Status `protobuf:"bytes,6,opt,name=analysis_status_error,json=analysisStatusError,proto3" json:"analysis_status_error,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1325,10 +1325,10 @@ func (m *Discovery_Discovered) GetAnalysisStatusError() *status.Status {
 // the provenance message in linked BuildDetails.
 type BuildType struct {
 	// Version of the builder which produced this Note.
-	BuilderVersion string `protobuf:"bytes,1,opt,name=builder_version,json=builderVersion" json:"builder_version,omitempty"`
+	BuilderVersion string `protobuf:"bytes,1,opt,name=builder_version,json=builderVersion,proto3" json:"builder_version,omitempty"`
 	// Signature of the build in Occurrences pointing to the Note containing this
 	// `BuilderDetails`.
-	Signature            *BuildSignature `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
+	Signature            *BuildSignature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -1387,17 +1387,17 @@ type BuildSignature struct {
 	// from `BuildDetails` are base64-decoded into a binary representation in
 	// signed.bin. OpenSSL can then verify the signature:
 	// `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
-	PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
+	PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
 	// Signature of the related `BuildProvenance`, encoded in a base64 string.
-	Signature string `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
+	Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
 	// An Id for the key used to sign. This could be either an Id for the key
 	// stored in `public_key` (such as the Id or fingerprint for a PGP key, or the
 	// CN for a cert), or a reference to an external key (such as a reference to a
 	// key in Cloud Key Management Service).
-	KeyId string `protobuf:"bytes,3,opt,name=key_id,json=keyId" json:"key_id,omitempty"`
+	KeyId string `protobuf:"bytes,3,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"`
 	// The type of the key, either stored in `public_key` or referenced in
 	// `key_id`
-	KeyType              BuildSignature_KeyType `protobuf:"varint,4,opt,name=key_type,json=keyType,enum=google.devtools.containeranalysis.v1alpha1.BuildSignature_KeyType" json:"key_type,omitempty"`
+	KeyType              BuildSignature_KeyType `protobuf:"varint,4,opt,name=key_type,json=keyType,proto3,enum=google.devtools.containeranalysis.v1alpha1.BuildSignature_KeyType" json:"key_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -1468,12 +1468,12 @@ type PgpSignedAttestation struct {
 	// --output=signature.gpg payload.json` will create the signature content
 	// expected in this field in `signature.gpg` for the `payload.json`
 	// attestation payload.
-	Signature string `protobuf:"bytes,1,opt,name=signature" json:"signature,omitempty"`
+	Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
 	// Type (for example schema) of the attestation payload that was signed.
 	// The verifier must ensure that the provided type is one that the verifier
 	// supports, and that the attestation payload is a valid instantiation of that
 	// type (for example by validating a JSON schema).
-	ContentType PgpSignedAttestation_ContentType `protobuf:"varint,3,opt,name=content_type,json=contentType,enum=google.devtools.containeranalysis.v1alpha1.PgpSignedAttestation_ContentType" json:"content_type,omitempty"`
+	ContentType PgpSignedAttestation_ContentType `protobuf:"varint,3,opt,name=content_type,json=contentType,proto3,enum=google.devtools.containeranalysis.v1alpha1.PgpSignedAttestation_ContentType" json:"content_type,omitempty"`
 	// This field is used by verifiers to select the public key used to validate
 	// the signature.  Note that the policy of the verifier ultimately determines
 	// which public keys verify a signature based on the context of the
@@ -1520,7 +1520,7 @@ type isPgpSignedAttestation_KeyId interface {
 }
 
 type PgpSignedAttestation_PgpKeyId struct {
-	PgpKeyId string `protobuf:"bytes,2,opt,name=pgp_key_id,json=pgpKeyId,oneof"`
+	PgpKeyId string `protobuf:"bytes,2,opt,name=pgp_key_id,json=pgpKeyId,proto3,oneof"`
 }
 
 func (*PgpSignedAttestation_PgpKeyId) isPgpSignedAttestation_KeyId() {}
@@ -1613,7 +1613,7 @@ func _PgpSignedAttestation_OneofSizer(msg proto.Message) (n int) {
 // single point of lookup to find all attached Attestation Occurrences, even if
 // they don't all live in the same project.
 type AttestationAuthority struct {
-	Hint                 *AttestationAuthority_AttestationAuthorityHint `protobuf:"bytes,1,opt,name=hint" json:"hint,omitempty"`
+	Hint                 *AttestationAuthority_AttestationAuthorityHint `protobuf:"bytes,1,opt,name=hint,proto3" json:"hint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
 	XXX_unrecognized     []byte                                         `json:"-"`
 	XXX_sizecache        int32                                          `json:"-"`
@@ -1659,7 +1659,7 @@ func (m *AttestationAuthority) GetHint() *AttestationAuthority_AttestationAuthor
 // looking up Attestations to verify.
 type AttestationAuthority_AttestationAuthorityHint struct {
 	// The human readable name of this Attestation Authority, for example "qa".
-	HumanReadableName    string   `protobuf:"bytes,1,opt,name=human_readable_name,json=humanReadableName" json:"human_readable_name,omitempty"`
+	HumanReadableName    string   `protobuf:"bytes,1,opt,name=human_readable_name,json=humanReadableName,proto3" json:"human_readable_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1750,7 +1750,7 @@ type isAttestationAuthority_Attestation_Signature interface {
 }
 
 type AttestationAuthority_Attestation_PgpSignedAttestation struct {
-	PgpSignedAttestation *PgpSignedAttestation `protobuf:"bytes,1,opt,name=pgp_signed_attestation,json=pgpSignedAttestation,oneof"`
+	PgpSignedAttestation *PgpSignedAttestation `protobuf:"bytes,1,opt,name=pgp_signed_attestation,json=pgpSignedAttestation,proto3,oneof"`
 }
 
 func (*AttestationAuthority_Attestation_PgpSignedAttestation) isAttestationAuthority_Attestation_Signature() {
@@ -1828,7 +1828,7 @@ func _AttestationAuthority_Attestation_OneofSizer(msg proto.Message) (n int) {
 // Message encapsulating build provenance details.
 type BuildDetails struct {
 	// The actual provenance
-	Provenance *BuildProvenance `protobuf:"bytes,1,opt,name=provenance" json:"provenance,omitempty"`
+	Provenance *BuildProvenance `protobuf:"bytes,1,opt,name=provenance,proto3" json:"provenance,omitempty"`
 	// Serialized JSON representation of the provenance, used in generating the
 	// `BuildSignature` in the corresponding Result. After verifying the
 	// signature, `provenance_bytes` can be unmarshalled and compared to the
@@ -1840,7 +1840,7 @@ type BuildDetails struct {
 	// The serialized form is captured both to avoid ambiguity in how the
 	// provenance is marshalled to json as well to prevent incompatibilities with
 	// future changes.
-	ProvenanceBytes      string   `protobuf:"bytes,2,opt,name=provenance_bytes,json=provenanceBytes" json:"provenance_bytes,omitempty"`
+	ProvenanceBytes      string   `protobuf:"bytes,2,opt,name=provenance_bytes,json=provenanceBytes,proto3" json:"provenance_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1888,11 +1888,11 @@ func (m *BuildDetails) GetProvenanceBytes() string {
 type ScanConfig struct {
 	// Output only. The name of the ScanConfig in the form
 	// “projects/{project_id}/ScanConfigs/{ScanConfig_id}".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Output only. A human-readable description of what the `ScanConfig` does.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Indicates whether the Scan is enabled.
-	Enabled              bool     `protobuf:"varint,3,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              bool     `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1947,7 +1947,7 @@ func (m *ScanConfig) GetEnabled() bool {
 type GetOccurrenceRequest struct {
 	// The name of the occurrence of the form
 	// "projects/{project_id}/occurrences/{OCCURRENCE_ID}"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1989,17 +1989,17 @@ type ListOccurrencesRequest struct {
 	// The name field contains the project Id. For example:
 	// "projects/{project_id}
 	// @Deprecated
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// This contains the project Id for example: projects/{project_id}.
-	Parent string `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The filter expression.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Number of occurrences to return in the list.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token to provide to skip to a particular spot in the list.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The kind of occurrences to filter on.
-	Kind                 Note_Kind `protobuf:"varint,6,opt,name=kind,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
+	Kind                 Note_Kind `protobuf:"varint,6,opt,name=kind,proto3,enum=google.devtools.containeranalysis.v1alpha1.Note_Kind" json:"kind,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -2074,11 +2074,11 @@ func (m *ListOccurrencesRequest) GetKind() Note_Kind {
 // Response including listed active occurrences.
 type ListOccurrencesResponse struct {
 	// The occurrences requested.
-	Occurrences []*Occurrence `protobuf:"bytes,1,rep,name=occurrences" json:"occurrences,omitempty"`
+	Occurrences []*Occurrence `protobuf:"bytes,1,rep,name=occurrences,proto3" json:"occurrences,omitempty"`
 	// The next pagination token in the list response. It should be used as
 	// `page_token` for the following request. An empty value means no more
 	// results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2126,7 +2126,7 @@ func (m *ListOccurrencesResponse) GetNextPageToken() string {
 type DeleteOccurrenceRequest struct {
 	// The name of the occurrence in the form of
 	// "projects/{project_id}/occurrences/{OCCURRENCE_ID}"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2167,11 +2167,11 @@ func (m *DeleteOccurrenceRequest) GetName() string {
 type CreateOccurrenceRequest struct {
 	// The name of the project.  Should be of the form "projects/{project_id}".
 	// @Deprecated
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// This field contains the project Id for example: "projects/{project_id}"
-	Parent string `protobuf:"bytes,3,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The occurrence to be inserted
-	Occurrence           *Occurrence `protobuf:"bytes,2,opt,name=occurrence" json:"occurrence,omitempty"`
+	Occurrence           *Occurrence `protobuf:"bytes,2,opt,name=occurrence,proto3" json:"occurrence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -2226,11 +2226,11 @@ func (m *CreateOccurrenceRequest) GetOccurrence() *Occurrence {
 type UpdateOccurrenceRequest struct {
 	// The name of the occurrence.
 	// Should be of the form "projects/{project_id}/occurrences/{OCCURRENCE_ID}".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The updated occurrence.
-	Occurrence *Occurrence `protobuf:"bytes,2,opt,name=occurrence" json:"occurrence,omitempty"`
+	Occurrence *Occurrence `protobuf:"bytes,2,opt,name=occurrence,proto3" json:"occurrence,omitempty"`
 	// The fields to update.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2285,7 +2285,7 @@ func (m *UpdateOccurrenceRequest) GetUpdateMask() *field_mask.FieldMask {
 type GetNoteRequest struct {
 	// The name of the note in the form of
 	// "providers/{provider_id}/notes/{NOTE_ID}"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2326,7 +2326,7 @@ func (m *GetNoteRequest) GetName() string {
 type GetOccurrenceNoteRequest struct {
 	// The name of the occurrence in the form
 	// "projects/{project_id}/occurrences/{OCCURRENCE_ID}"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2368,15 +2368,15 @@ type ListNotesRequest struct {
 	// The name field will contain the project Id for example:
 	// "providers/{provider_id}
 	// @Deprecated
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// This field contains the project Id for example: "projects/{PROJECT_ID}".
-	Parent string `protobuf:"bytes,5,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The filter expression.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Number of notes to return in the list.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token to provide to skip to a particular spot in the list.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2444,10 +2444,10 @@ func (m *ListNotesRequest) GetPageToken() string {
 // Response including listed notes.
 type ListNotesResponse struct {
 	// The occurrences requested
-	Notes []*Note `protobuf:"bytes,1,rep,name=notes" json:"notes,omitempty"`
+	Notes []*Note `protobuf:"bytes,1,rep,name=notes,proto3" json:"notes,omitempty"`
 	// The next pagination token in the list response. It should be used as
 	// page_token for the following request. An empty value means no more result.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2495,7 +2495,7 @@ func (m *ListNotesResponse) GetNextPageToken() string {
 type DeleteNoteRequest struct {
 	// The name of the note in the form of
 	// "providers/{provider_id}/notes/{NOTE_ID}"
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2537,14 +2537,14 @@ type CreateNoteRequest struct {
 	// The name of the project.
 	// Should be of the form "providers/{provider_id}".
 	// @Deprecated
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// This field contains the project Id for example:
 	// "projects/{project_id}
-	Parent string `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The ID to use for this note.
-	NoteId string `protobuf:"bytes,2,opt,name=note_id,json=noteId" json:"note_id,omitempty"`
+	NoteId string `protobuf:"bytes,2,opt,name=note_id,json=noteId,proto3" json:"note_id,omitempty"`
 	// The Note to be inserted
-	Note                 *Note    `protobuf:"bytes,3,opt,name=note" json:"note,omitempty"`
+	Note                 *Note    `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2606,11 +2606,11 @@ func (m *CreateNoteRequest) GetNote() *Note {
 type UpdateNoteRequest struct {
 	// The name of the note.
 	// Should be of the form "projects/{provider_id}/notes/{note_id}".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The updated note.
-	Note *Note `protobuf:"bytes,2,opt,name=note" json:"note,omitempty"`
+	Note *Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"`
 	// The fields to update.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2665,13 +2665,13 @@ func (m *UpdateNoteRequest) GetUpdateMask() *field_mask.FieldMask {
 type ListNoteOccurrencesRequest struct {
 	// The name field will contain the note name for example:
 	//   "provider/{provider_id}/notes/{note_id}"
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The filter expression.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Number of notes to return in the list.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token to provide to skip to a particular spot in the list.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2732,9 +2732,9 @@ func (m *ListNoteOccurrencesRequest) GetPageToken() string {
 // Response including listed occurrences for a note.
 type ListNoteOccurrencesResponse struct {
 	// The occurrences attached to the specified note.
-	Occurrences []*Occurrence `protobuf:"bytes,1,rep,name=occurrences" json:"occurrences,omitempty"`
+	Occurrences []*Occurrence `protobuf:"bytes,1,rep,name=occurrences,proto3" json:"occurrences,omitempty"`
 	// Token to receive the next page of notes.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2781,11 +2781,11 @@ func (m *ListNoteOccurrencesResponse) GetNextPageToken() string {
 // Request for creating an operation
 type CreateOperationRequest struct {
 	// The project Id that this operation should be created under.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The ID to use for this operation.
-	OperationId string `protobuf:"bytes,2,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId string `protobuf:"bytes,2,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	// The operation to create.
-	Operation            *longrunning.Operation `protobuf:"bytes,3,opt,name=operation" json:"operation,omitempty"`
+	Operation            *longrunning.Operation `protobuf:"bytes,3,opt,name=operation,proto3" json:"operation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -2840,10 +2840,10 @@ func (m *CreateOperationRequest) GetOperation() *longrunning.Operation {
 type UpdateOperationRequest struct {
 	// The name of the Operation.
 	// Should be of the form "projects/{provider_id}/operations/{operation_id}".
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The operation to create.
-	Operation            *longrunning.Operation `protobuf:"bytes,3,opt,name=operation" json:"operation,omitempty"`
-	UpdateMask           *field_mask.FieldMask  `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	Operation            *longrunning.Operation `protobuf:"bytes,3,opt,name=operation,proto3" json:"operation,omitempty"`
+	UpdateMask           *field_mask.FieldMask  `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -2898,9 +2898,9 @@ func (m *UpdateOperationRequest) GetUpdateMask() *field_mask.FieldMask {
 // that created by Container Analysis Providers
 type OperationMetadata struct {
 	// Output only. The time this operation was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time that this operation was marked completed or failed.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -2947,9 +2947,9 @@ func (m *OperationMetadata) GetEndTime() *timestamp.Timestamp {
 // Request to get the vulnz summary for some set of vulnerability Occurrences.
 type GetVulnzOccurrencesSummaryRequest struct {
 	// This contains the project Id for example: projects/{project_id}
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The filter expression.
-	Filter               string   `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2998,7 +2998,7 @@ func (m *GetVulnzOccurrencesSummaryRequest) GetFilter() string {
 // like this.
 type GetVulnzOccurrencesSummaryResponse struct {
 	// A map of how many occurrences were found for each severity.
-	Counts               []*GetVulnzOccurrencesSummaryResponse_SeverityCount `protobuf:"bytes,1,rep,name=counts" json:"counts,omitempty"`
+	Counts               []*GetVulnzOccurrencesSummaryResponse_SeverityCount `protobuf:"bytes,1,rep,name=counts,proto3" json:"counts,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                            `json:"-"`
 	XXX_unrecognized     []byte                                              `json:"-"`
 	XXX_sizecache        int32                                               `json:"-"`
@@ -3038,9 +3038,9 @@ func (m *GetVulnzOccurrencesSummaryResponse) GetCounts() []*GetVulnzOccurrencesS
 // The number of occurrences created for a specific severity.
 type GetVulnzOccurrencesSummaryResponse_SeverityCount struct {
 	// The severity of the occurrences.
-	Severity VulnerabilityType_Severity `protobuf:"varint,1,opt,name=severity,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
+	Severity VulnerabilityType_Severity `protobuf:"varint,1,opt,name=severity,proto3,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
 	// The number of occurrences with the severity.
-	Count                int64    `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
+	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3093,7 +3093,7 @@ type GetScanConfigRequest struct {
 	// The name of the ScanConfig in the form
 	// projects/{project_id}/scan_configs/{ScanConfig_id}
 	// instead.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3134,13 +3134,13 @@ func (m *GetScanConfigRequest) GetName() string {
 type ListScanConfigsRequest struct {
 	// This containers the project Id i.e.: projects/{project_id}
 	// instead.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The filter expression.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The number of items to return.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The page token to use for the next request.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3201,9 +3201,9 @@ func (m *ListScanConfigsRequest) GetPageToken() string {
 // A list of ScanConfigs for the project.
 type ListScanConfigsResponse struct {
 	// The set of scan configs
-	ScanConfigs []*ScanConfig `protobuf:"bytes,1,rep,name=scan_configs,json=scanConfigs" json:"scan_configs,omitempty"`
+	ScanConfigs []*ScanConfig `protobuf:"bytes,1,rep,name=scan_configs,json=scanConfigs,proto3" json:"scan_configs,omitempty"`
 	// A page token to pass in order to get more scans.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3252,10 +3252,10 @@ type UpdateScanConfigRequest struct {
 	// The scan config to update of the form
 	// projects/{project_id}/scan_configs/{ScanConfig_id}
 	// instead.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The new scan configuration
-	ScanConfig           *ScanConfig           `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig" json:"scan_config,omitempty"`
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	ScanConfig           *ScanConfig           `protobuf:"bytes,2,opt,name=scan_config,json=scanConfig,proto3" json:"scan_config,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -3642,8 +3642,7 @@ func (c *containerAnalysisClient) UpdateScanConfig(ctx context.Context, in *Upda
 	return out, nil
 }
 
-// Server API for ContainerAnalysis service
-
+// ContainerAnalysisServer is the server API for ContainerAnalysis service.
 type ContainerAnalysisServer interface {
 	// Returns the requested `Occurrence`.
 	GetOccurrence(context.Context, *GetOccurrenceRequest) (*Occurrence, error)
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/image_basis.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/image_basis.pb.go
index 341d42280550202eff181970a7a76d48342b4dde..fa3ac68e12dd7d0f49b34e72b63ef1475c1a4929 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/image_basis.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/image_basis.pb.go
@@ -144,9 +144,9 @@ var xxx_messageInfo_DockerImage proto.InternalMessageInfo
 // Layer holds metadata specific to a layer of a Docker image.
 type DockerImage_Layer struct {
 	// The recovered Dockerfile directive used to construct this layer.
-	Directive DockerImage_Layer_Directive `protobuf:"varint,1,opt,name=directive,enum=google.devtools.containeranalysis.v1alpha1.DockerImage_Layer_Directive" json:"directive,omitempty"`
+	Directive DockerImage_Layer_Directive `protobuf:"varint,1,opt,name=directive,proto3,enum=google.devtools.containeranalysis.v1alpha1.DockerImage_Layer_Directive" json:"directive,omitempty"`
 	// The recovered arguments to the Dockerfile directive.
-	Arguments            string   `protobuf:"bytes,2,opt,name=arguments" json:"arguments,omitempty"`
+	Arguments            string   `protobuf:"bytes,2,opt,name=arguments,proto3" json:"arguments,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -195,15 +195,15 @@ type DockerImage_Fingerprint struct {
 	// The layer-id of the final layer in the Docker image's v1
 	// representation.
 	// This field can be used as a filter in list requests.
-	V1Name string `protobuf:"bytes,1,opt,name=v1_name,json=v1Name" json:"v1_name,omitempty"`
+	V1Name string `protobuf:"bytes,1,opt,name=v1_name,json=v1Name,proto3" json:"v1_name,omitempty"`
 	// The ordered list of v2 blobs that represent a given image.
-	V2Blob []string `protobuf:"bytes,2,rep,name=v2_blob,json=v2Blob" json:"v2_blob,omitempty"`
+	V2Blob []string `protobuf:"bytes,2,rep,name=v2_blob,json=v2Blob,proto3" json:"v2_blob,omitempty"`
 	// Output only. The name of the image's v2 blobs computed via:
 	//   [bottom] := v2_blob[bottom]
 	//   [N] := sha256(v2_blob[N] + " " + v2_name[N+1])
 	// Only the name of the final blob is kept.
 	// This field can be used as a filter in list requests.
-	V2Name               string   `protobuf:"bytes,3,opt,name=v2_name,json=v2Name" json:"v2_name,omitempty"`
+	V2Name               string   `protobuf:"bytes,3,opt,name=v2_name,json=v2Name,proto3" json:"v2_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,9 +262,9 @@ func (m *DockerImage_Fingerprint) GetV2Name() string {
 type DockerImage_Basis struct {
 	// The resource_url for the resource representing the basis of
 	// associated occurrence images.
-	ResourceUrl string `protobuf:"bytes,1,opt,name=resource_url,json=resourceUrl" json:"resource_url,omitempty"`
+	ResourceUrl string `protobuf:"bytes,1,opt,name=resource_url,json=resourceUrl,proto3" json:"resource_url,omitempty"`
 	// The fingerprint of the base image.
-	Fingerprint          *DockerImage_Fingerprint `protobuf:"bytes,2,opt,name=fingerprint" json:"fingerprint,omitempty"`
+	Fingerprint          *DockerImage_Fingerprint `protobuf:"bytes,2,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -313,17 +313,17 @@ func (m *DockerImage_Basis) GetFingerprint() *DockerImage_Fingerprint {
 // with FROM <DockerImage.Basis in attached Note>.
 type DockerImage_Derived struct {
 	// The fingerprint of the derived image.
-	Fingerprint *DockerImage_Fingerprint `protobuf:"bytes,1,opt,name=fingerprint" json:"fingerprint,omitempty"`
+	Fingerprint *DockerImage_Fingerprint `protobuf:"bytes,1,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
 	// Output only. The number of layers by which this image differs from the
 	// associated image basis.
-	Distance uint32 `protobuf:"varint,2,opt,name=distance" json:"distance,omitempty"`
+	Distance uint32 `protobuf:"varint,2,opt,name=distance,proto3" json:"distance,omitempty"`
 	// This contains layer-specific metadata, if populated it has length
 	// "distance" and is ordered with [distance] being the layer immediately
 	// following the base image and [1] being the final layer.
-	LayerInfo []*DockerImage_Layer `protobuf:"bytes,3,rep,name=layer_info,json=layerInfo" json:"layer_info,omitempty"`
+	LayerInfo []*DockerImage_Layer `protobuf:"bytes,3,rep,name=layer_info,json=layerInfo,proto3" json:"layer_info,omitempty"`
 	// Output only. This contains the base image URL for the derived image
 	// occurrence.
-	BaseResourceUrl      string   `protobuf:"bytes,4,opt,name=base_resource_url,json=baseResourceUrl" json:"base_resource_url,omitempty"`
+	BaseResourceUrl      string   `protobuf:"bytes,4,opt,name=base_resource_url,json=baseResourceUrl,proto3" json:"base_resource_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/package_vulnerability.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/package_vulnerability.pb.go
index 53a07445cf7b78b653469cf82baa309ff2819c66..c679e652c8509fb2b3097275f2956fd8011064f7 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/package_vulnerability.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/package_vulnerability.pb.go
@@ -97,13 +97,13 @@ func (VulnerabilityType_Version_VersionKind) EnumDescriptor() ([]byte, []int) {
 // VulnerabilityType provides metadata about a security vulnerability.
 type VulnerabilityType struct {
 	// The CVSS score for this Vulnerability.
-	CvssScore float32 `protobuf:"fixed32,2,opt,name=cvss_score,json=cvssScore" json:"cvss_score,omitempty"`
+	CvssScore float32 `protobuf:"fixed32,2,opt,name=cvss_score,json=cvssScore,proto3" json:"cvss_score,omitempty"`
 	// Note provider assigned impact of the vulnerability
-	Severity VulnerabilityType_Severity `protobuf:"varint,3,opt,name=severity,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
+	Severity VulnerabilityType_Severity `protobuf:"varint,3,opt,name=severity,proto3,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
 	// All information about the package to specifically identify this
 	// vulnerability. One entry per (version range and cpe_uri) the
 	// package vulnerability has manifested in.
-	Details              []*VulnerabilityType_Detail `protobuf:"bytes,4,rep,name=details" json:"details,omitempty"`
+	Details              []*VulnerabilityType_Detail `protobuf:"bytes,4,rep,name=details,proto3" json:"details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -161,14 +161,14 @@ func (m *VulnerabilityType) GetDetails() []*VulnerabilityType_Detail {
 // http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
 type VulnerabilityType_Version struct {
 	// Used to correct mistakes in the version numbering scheme.
-	Epoch int32 `protobuf:"varint,1,opt,name=epoch" json:"epoch,omitempty"`
+	Epoch int32 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
 	// The main part of the version name.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The iteration of the package build from the above version.
-	Revision string `protobuf:"bytes,3,opt,name=revision" json:"revision,omitempty"`
+	Revision string `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
 	// Distinguish between sentinel MIN/MAX versions and normal versions.
 	// If kind is not NORMAL, then the other fields are ignored.
-	Kind                 VulnerabilityType_Version_VersionKind `protobuf:"varint,5,opt,name=kind,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Version_VersionKind" json:"kind,omitempty"`
+	Kind                 VulnerabilityType_Version_VersionKind `protobuf:"varint,5,opt,name=kind,proto3,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Version_VersionKind" json:"kind,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
 	XXX_unrecognized     []byte                                `json:"-"`
 	XXX_sizecache        int32                                 `json:"-"`
@@ -234,27 +234,27 @@ type VulnerabilityType_Detail struct {
 	// which the vulnerability manifests.  Examples include distro or storage
 	// location for vulnerable jar.
 	// This field can be used as a filter in list requests.
-	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri" json:"cpe_uri,omitempty"`
+	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri,proto3" json:"cpe_uri,omitempty"`
 	// The name of the package where the vulnerability was found.
 	// This field can be used as a filter in list requests.
-	Package string `protobuf:"bytes,8,opt,name=package" json:"package,omitempty"`
+	Package string `protobuf:"bytes,8,opt,name=package,proto3" json:"package,omitempty"`
 	// The min version of the package in which the vulnerability exists.
-	MinAffectedVersion *VulnerabilityType_Version `protobuf:"bytes,6,opt,name=min_affected_version,json=minAffectedVersion" json:"min_affected_version,omitempty"`
+	MinAffectedVersion *VulnerabilityType_Version `protobuf:"bytes,6,opt,name=min_affected_version,json=minAffectedVersion,proto3" json:"min_affected_version,omitempty"`
 	// The max version of the package in which the vulnerability exists.
 	// This field can be used as a filter in list requests.
-	MaxAffectedVersion *VulnerabilityType_Version `protobuf:"bytes,7,opt,name=max_affected_version,json=maxAffectedVersion" json:"max_affected_version,omitempty"`
+	MaxAffectedVersion *VulnerabilityType_Version `protobuf:"bytes,7,opt,name=max_affected_version,json=maxAffectedVersion,proto3" json:"max_affected_version,omitempty"`
 	// The severity (eg: distro assigned severity) for this vulnerability.
-	SeverityName string `protobuf:"bytes,4,opt,name=severity_name,json=severityName" json:"severity_name,omitempty"`
+	SeverityName string `protobuf:"bytes,4,opt,name=severity_name,json=severityName,proto3" json:"severity_name,omitempty"`
 	// A vendor-specific description of this note.
-	Description string `protobuf:"bytes,9,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`
 	// The fix for this specific package version.
-	FixedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,5,opt,name=fixed_location,json=fixedLocation" json:"fixed_location,omitempty"`
+	FixedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,5,opt,name=fixed_location,json=fixedLocation,proto3" json:"fixed_location,omitempty"`
 	// The type of package; whether native or non native(ruby gems,
 	// node.js packages etc)
-	PackageType string `protobuf:"bytes,10,opt,name=package_type,json=packageType" json:"package_type,omitempty"`
+	PackageType string `protobuf:"bytes,10,opt,name=package_type,json=packageType,proto3" json:"package_type,omitempty"`
 	// Whether this Detail is obsolete. Occurrences are expected not to point to
 	// obsolete details.
-	IsObsolete           bool     `protobuf:"varint,11,opt,name=is_obsolete,json=isObsolete" json:"is_obsolete,omitempty"`
+	IsObsolete           bool     `protobuf:"varint,11,opt,name=is_obsolete,json=isObsolete,proto3" json:"is_obsolete,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -352,16 +352,16 @@ func (m *VulnerabilityType_Detail) GetIsObsolete() bool {
 type VulnerabilityType_VulnerabilityDetails struct {
 	// The type of package; whether native or non native(ruby gems,
 	// node.js packages etc)
-	Type string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
 	// Output only. The note provider assigned Severity of the vulnerability.
-	Severity VulnerabilityType_Severity `protobuf:"varint,4,opt,name=severity,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
+	Severity VulnerabilityType_Severity `protobuf:"varint,4,opt,name=severity,proto3,enum=google.devtools.containeranalysis.v1alpha1.VulnerabilityType_Severity" json:"severity,omitempty"`
 	// Output only. The CVSS score of this vulnerability. CVSS score is on a
 	// scale of 0-10 where 0 indicates low severity and 10 indicates high
 	// severity.
-	CvssScore float32 `protobuf:"fixed32,5,opt,name=cvss_score,json=cvssScore" json:"cvss_score,omitempty"`
+	CvssScore float32 `protobuf:"fixed32,5,opt,name=cvss_score,json=cvssScore,proto3" json:"cvss_score,omitempty"`
 	// The set of affected locations and their fixes (if available) within
 	// the associated resource.
-	PackageIssue         []*VulnerabilityType_PackageIssue `protobuf:"bytes,6,rep,name=package_issue,json=packageIssue" json:"package_issue,omitempty"`
+	PackageIssue         []*VulnerabilityType_PackageIssue `protobuf:"bytes,6,rep,name=package_issue,json=packageIssue,proto3" json:"package_issue,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -425,11 +425,11 @@ func (m *VulnerabilityType_VulnerabilityDetails) GetPackageIssue() []*Vulnerabil
 // associated fix (if one is available).
 type VulnerabilityType_PackageIssue struct {
 	// The location of the vulnerability.
-	AffectedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,1,opt,name=affected_location,json=affectedLocation" json:"affected_location,omitempty"`
+	AffectedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,1,opt,name=affected_location,json=affectedLocation,proto3" json:"affected_location,omitempty"`
 	// The location of the available fix for vulnerability.
-	FixedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,2,opt,name=fixed_location,json=fixedLocation" json:"fixed_location,omitempty"`
+	FixedLocation *VulnerabilityType_VulnerabilityLocation `protobuf:"bytes,2,opt,name=fixed_location,json=fixedLocation,proto3" json:"fixed_location,omitempty"`
 	// The severity (eg: distro assigned severity) for this vulnerability.
-	SeverityName         string   `protobuf:"bytes,3,opt,name=severity_name,json=severityName" json:"severity_name,omitempty"`
+	SeverityName         string   `protobuf:"bytes,3,opt,name=severity_name,json=severityName,proto3" json:"severity_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -485,12 +485,12 @@ type VulnerabilityType_VulnerabilityLocation struct {
 	// The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/)
 	// format. Examples include distro or storage location for vulnerable jar.
 	// This field can be used as a filter in list requests.
-	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri" json:"cpe_uri,omitempty"`
+	CpeUri string `protobuf:"bytes,1,opt,name=cpe_uri,json=cpeUri,proto3" json:"cpe_uri,omitempty"`
 	// The package being described.
-	Package string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"`
+	Package string `protobuf:"bytes,2,opt,name=package,proto3" json:"package,omitempty"`
 	// The version of the package being described.
 	// This field can be used as a filter in list requests.
-	Version              *VulnerabilityType_Version `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"`
+	Version              *VulnerabilityType_Version `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/provenance.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/provenance.pb.go
index 6f2ec83af26dd816d111257bcd4a639d6be522f1..ab27d49c5c0c1e974f4d3a51a54e8a162eda42e7 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/provenance.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/provenance.pb.go
@@ -50,34 +50,34 @@ func (Hash_HashType) EnumDescriptor() ([]byte, []int) {
 // details about the build from source to completion.
 type BuildProvenance struct {
 	// Unique identifier of the build.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// ID of the project.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Commands requested by the build.
-	Commands []*Command `protobuf:"bytes,5,rep,name=commands" json:"commands,omitempty"`
+	Commands []*Command `protobuf:"bytes,5,rep,name=commands,proto3" json:"commands,omitempty"`
 	// Output of the build.
-	BuiltArtifacts []*Artifact `protobuf:"bytes,6,rep,name=built_artifacts,json=builtArtifacts" json:"built_artifacts,omitempty"`
+	BuiltArtifacts []*Artifact `protobuf:"bytes,6,rep,name=built_artifacts,json=builtArtifacts,proto3" json:"built_artifacts,omitempty"`
 	// Time at which the build was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time at which execution of the build was started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time at which execution of the build was finished.
-	FinishTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=finish_time,json=finishTime" json:"finish_time,omitempty"`
+	FinishTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
 	// E-mail address of the user who initiated this build. Note that this was the
 	// user's e-mail address at the time the build was initiated; this address may
 	// not represent the same end-user for all time.
-	Creator string `protobuf:"bytes,11,opt,name=creator" json:"creator,omitempty"`
+	Creator string `protobuf:"bytes,11,opt,name=creator,proto3" json:"creator,omitempty"`
 	// Google Cloud Storage bucket where logs were written.
-	LogsBucket string `protobuf:"bytes,13,opt,name=logs_bucket,json=logsBucket" json:"logs_bucket,omitempty"`
+	LogsBucket string `protobuf:"bytes,13,opt,name=logs_bucket,json=logsBucket,proto3" json:"logs_bucket,omitempty"`
 	// Details of the Source input to the build.
-	SourceProvenance *Source `protobuf:"bytes,14,opt,name=source_provenance,json=sourceProvenance" json:"source_provenance,omitempty"`
+	SourceProvenance *Source `protobuf:"bytes,14,opt,name=source_provenance,json=sourceProvenance,proto3" json:"source_provenance,omitempty"`
 	// Trigger identifier if the build was triggered automatically; empty if not.
-	TriggerId string `protobuf:"bytes,15,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId string `protobuf:"bytes,15,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	// Special options applied to this build. This is a catch-all field where
 	// build providers can enter any desired additional details.
-	BuildOptions map[string]string `protobuf:"bytes,16,rep,name=build_options,json=buildOptions" json:"build_options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	BuildOptions map[string]string `protobuf:"bytes,16,rep,name=build_options,json=buildOptions,proto3" json:"build_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Version string of the builder at the time this build was executed.
-	BuilderVersion       string   `protobuf:"bytes,17,opt,name=builder_version,json=builderVersion" json:"builder_version,omitempty"`
+	BuilderVersion       string   `protobuf:"bytes,17,opt,name=builder_version,json=builderVersion,proto3" json:"builder_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -208,7 +208,7 @@ type Source struct {
 	Source isSource_Source `protobuf_oneof:"source"`
 	// If provided, the input binary artifacts for the build came from this
 	// location.
-	ArtifactStorageSource *StorageSource `protobuf:"bytes,4,opt,name=artifact_storage_source,json=artifactStorageSource" json:"artifact_storage_source,omitempty"`
+	ArtifactStorageSource *StorageSource `protobuf:"bytes,4,opt,name=artifact_storage_source,json=artifactStorageSource,proto3" json:"artifact_storage_source,omitempty"`
 	// Hash(es) of the build source, which can be used to verify that the original
 	// source integrity was maintained in the build.
 	//
@@ -217,14 +217,14 @@ type Source struct {
 	//
 	// If the build source came in a single package such as a gzipped tarfile
 	// (.tar.gz), the FileHash will be for the single path to that file.
-	FileHashes map[string]*FileHashes `protobuf:"bytes,3,rep,name=file_hashes,json=fileHashes" json:"file_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	FileHashes map[string]*FileHashes `protobuf:"bytes,3,rep,name=file_hashes,json=fileHashes,proto3" json:"file_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// If provided, the source code used for the build came from this location.
-	Context *SourceContext `protobuf:"bytes,7,opt,name=context" json:"context,omitempty"`
+	Context *SourceContext `protobuf:"bytes,7,opt,name=context,proto3" json:"context,omitempty"`
 	// If provided, some of the source code used for the build may be found in
 	// these locations, in the case where the source repository had multiple
 	// remotes or submodules. This list will not include the context specified in
 	// the context field.
-	AdditionalContexts   []*SourceContext `protobuf:"bytes,8,rep,name=additional_contexts,json=additionalContexts" json:"additional_contexts,omitempty"`
+	AdditionalContexts   []*SourceContext `protobuf:"bytes,8,rep,name=additional_contexts,json=additionalContexts,proto3" json:"additional_contexts,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -259,10 +259,10 @@ type isSource_Source interface {
 }
 
 type Source_StorageSource struct {
-	StorageSource *StorageSource `protobuf:"bytes,1,opt,name=storage_source,json=storageSource,oneof"`
+	StorageSource *StorageSource `protobuf:"bytes,1,opt,name=storage_source,json=storageSource,proto3,oneof"`
 }
 type Source_RepoSource struct {
-	RepoSource *RepoSource `protobuf:"bytes,2,opt,name=repo_source,json=repoSource,oneof"`
+	RepoSource *RepoSource `protobuf:"bytes,2,opt,name=repo_source,json=repoSource,proto3,oneof"`
 }
 
 func (*Source_StorageSource) isSource_Source() {}
@@ -395,7 +395,7 @@ func _Source_OneofSizer(msg proto.Message) (n int) {
 // messages to verify integrity of source input to the build.
 type FileHashes struct {
 	// Collection of file hashes.
-	FileHash             []*Hash  `protobuf:"bytes,1,rep,name=file_hash,json=fileHash" json:"file_hash,omitempty"`
+	FileHash             []*Hash  `protobuf:"bytes,1,rep,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -435,7 +435,7 @@ func (m *FileHashes) GetFileHash() []*Hash {
 // Container message for hash values.
 type Hash struct {
 	// The type of hash that was performed.
-	Type Hash_HashType `protobuf:"varint,1,opt,name=type,enum=google.devtools.containeranalysis.v1alpha1.Hash_HashType" json:"type,omitempty"`
+	Type Hash_HashType `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.containeranalysis.v1alpha1.Hash_HashType" json:"type,omitempty"`
 	// The hash value.
 	Value                []byte   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -487,11 +487,11 @@ type StorageSource struct {
 	// Google Cloud Storage bucket containing source (see [Bucket Name
 	// Requirements]
 	// (https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-	Bucket string `protobuf:"bytes,1,opt,name=bucket" json:"bucket,omitempty"`
+	Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"`
 	// Google Cloud Storage object containing source.
-	Object string `protobuf:"bytes,2,opt,name=object" json:"object,omitempty"`
+	Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"`
 	// Google Cloud Storage generation for the object.
-	Generation           int64    `protobuf:"varint,3,opt,name=generation" json:"generation,omitempty"`
+	Generation           int64    `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -546,9 +546,9 @@ func (m *StorageSource) GetGeneration() int64 {
 // Repository.
 type RepoSource struct {
 	// ID of the project that owns the repo.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Name of the repo.
-	RepoName string `protobuf:"bytes,2,opt,name=repo_name,json=repoName" json:"repo_name,omitempty"`
+	RepoName string `protobuf:"bytes,2,opt,name=repo_name,json=repoName,proto3" json:"repo_name,omitempty"`
 	// A revision within the source repository must be specified in
 	// one of these ways.
 	//
@@ -591,13 +591,13 @@ type isRepoSource_Revision interface {
 }
 
 type RepoSource_BranchName struct {
-	BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,oneof"`
+	BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,proto3,oneof"`
 }
 type RepoSource_TagName struct {
-	TagName string `protobuf:"bytes,4,opt,name=tag_name,json=tagName,oneof"`
+	TagName string `protobuf:"bytes,4,opt,name=tag_name,json=tagName,proto3,oneof"`
 }
 type RepoSource_CommitSha struct {
-	CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,oneof"`
+	CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,proto3,oneof"`
 }
 
 func (*RepoSource_BranchName) isRepoSource_Revision() {}
@@ -731,19 +731,19 @@ func _RepoSource_OneofSizer(msg proto.Message) (n int) {
 type Command struct {
 	// Name of the command, as presented on the command line, or if the command is
 	// packaged as a Docker container, as presented to `docker pull`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Environment variables set before running this Command.
-	Env []string `protobuf:"bytes,2,rep,name=env" json:"env,omitempty"`
+	Env []string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"`
 	// Command-line arguments used when executing this Command.
-	Args []string `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"`
+	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
 	// Working directory (relative to project source root) used when running
 	// this Command.
-	Dir string `protobuf:"bytes,4,opt,name=dir" json:"dir,omitempty"`
+	Dir string `protobuf:"bytes,4,opt,name=dir,proto3" json:"dir,omitempty"`
 	// Optional unique identifier for this Command, used in wait_for to reference
 	// this Command as a dependency.
-	Id string `protobuf:"bytes,5,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
 	// The ID(s) of the Command(s) that this Command depends on.
-	WaitFor              []string `protobuf:"bytes,6,rep,name=wait_for,json=waitFor" json:"wait_for,omitempty"`
+	WaitFor              []string `protobuf:"bytes,6,rep,name=wait_for,json=waitFor,proto3" json:"wait_for,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -825,19 +825,19 @@ type Artifact struct {
 	// to exist here to allow existing BuildProvenance serialized to json in
 	// google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to
 	// deserialize back into proto.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Hash or checksum value of a binary, or Docker Registry 2.0 digest of a
 	// container.
-	Checksum string `protobuf:"bytes,2,opt,name=checksum" json:"checksum,omitempty"`
+	Checksum string `protobuf:"bytes,2,opt,name=checksum,proto3" json:"checksum,omitempty"`
 	// Artifact ID, if any; for container images, this will be a URL by digest
 	// like gcr.io/projectID/imagename@sha256:123456
-	Id string `protobuf:"bytes,3,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
 	// Related artifact names. This may be the path to a binary or jar file, or in
 	// the case of a container build, the name used to push the container image to
 	// Google Container Registry, as presented to `docker push`. Note that a
 	// single Artifact ID can have multiple names, for example if two tags are
 	// applied to one image.
-	Names                []string `protobuf:"bytes,4,rep,name=names" json:"names,omitempty"`
+	Names                []string `protobuf:"bytes,4,rep,name=names,proto3" json:"names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/containeranalysis/v1alpha1/source_context.pb.go b/googleapis/devtools/containeranalysis/v1alpha1/source_context.pb.go
index c5592aa24f498a6830ce623f0160d64588fd9816..fb17d4ebaf328e140c35f38c8f1ab6f0af465655 100644
--- a/googleapis/devtools/containeranalysis/v1alpha1/source_context.pb.go
+++ b/googleapis/devtools/containeranalysis/v1alpha1/source_context.pb.go
@@ -65,7 +65,7 @@ type SourceContext struct {
 	//	*SourceContext_Git
 	Context isSourceContext_Context `protobuf_oneof:"context"`
 	// Labels with user defined metadata.
-	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -100,13 +100,13 @@ type isSourceContext_Context interface {
 }
 
 type SourceContext_CloudRepo struct {
-	CloudRepo *CloudRepoSourceContext `protobuf:"bytes,1,opt,name=cloud_repo,json=cloudRepo,oneof"`
+	CloudRepo *CloudRepoSourceContext `protobuf:"bytes,1,opt,name=cloud_repo,json=cloudRepo,proto3,oneof"`
 }
 type SourceContext_Gerrit struct {
-	Gerrit *GerritSourceContext `protobuf:"bytes,2,opt,name=gerrit,oneof"`
+	Gerrit *GerritSourceContext `protobuf:"bytes,2,opt,name=gerrit,proto3,oneof"`
 }
 type SourceContext_Git struct {
-	Git *GitSourceContext `protobuf:"bytes,3,opt,name=git,oneof"`
+	Git *GitSourceContext `protobuf:"bytes,3,opt,name=git,proto3,oneof"`
 }
 
 func (*SourceContext_CloudRepo) isSourceContext_Context() {}
@@ -244,9 +244,9 @@ func _SourceContext_OneofSizer(msg proto.Message) (n int) {
 // An alias to a repo revision.
 type AliasContext struct {
 	// The alias kind.
-	Kind AliasContext_Kind `protobuf:"varint,1,opt,name=kind,enum=google.devtools.containeranalysis.v1alpha1.AliasContext_Kind" json:"kind,omitempty"`
+	Kind AliasContext_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=google.devtools.containeranalysis.v1alpha1.AliasContext_Kind" json:"kind,omitempty"`
 	// The alias name.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -294,7 +294,7 @@ func (m *AliasContext) GetName() string {
 // Source Repo.
 type CloudRepoSourceContext struct {
 	// The ID of the repo.
-	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId" json:"repo_id,omitempty"`
+	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
 	// A revision in a Cloud Repo can be identified by either its revision ID or
 	// its alias.
 	//
@@ -336,10 +336,10 @@ type isCloudRepoSourceContext_Revision interface {
 }
 
 type CloudRepoSourceContext_RevisionId struct {
-	RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,oneof"`
+	RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3,oneof"`
 }
 type CloudRepoSourceContext_AliasContext struct {
-	AliasContext *AliasContext `protobuf:"bytes,3,opt,name=alias_context,json=aliasContext,oneof"`
+	AliasContext *AliasContext `protobuf:"bytes,3,opt,name=alias_context,json=aliasContext,proto3,oneof"`
 }
 
 func (*CloudRepoSourceContext_RevisionId) isCloudRepoSourceContext_Revision()   {}
@@ -446,11 +446,11 @@ func _CloudRepoSourceContext_OneofSizer(msg proto.Message) (n int) {
 // A SourceContext referring to a Gerrit project.
 type GerritSourceContext struct {
 	// The URI of a running Gerrit instance.
-	HostUri string `protobuf:"bytes,1,opt,name=host_uri,json=hostUri" json:"host_uri,omitempty"`
+	HostUri string `protobuf:"bytes,1,opt,name=host_uri,json=hostUri,proto3" json:"host_uri,omitempty"`
 	// The full project name within the host. Projects may be nested, so
 	// "project/subproject" is a valid project name. The "repo name" is
 	// the hostURI/project.
-	GerritProject string `protobuf:"bytes,2,opt,name=gerrit_project,json=gerritProject" json:"gerrit_project,omitempty"`
+	GerritProject string `protobuf:"bytes,2,opt,name=gerrit_project,json=gerritProject,proto3" json:"gerrit_project,omitempty"`
 	// A revision in a Gerrit project can be identified by either its revision ID
 	// or its alias.
 	//
@@ -492,10 +492,10 @@ type isGerritSourceContext_Revision interface {
 }
 
 type GerritSourceContext_RevisionId struct {
-	RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,oneof"`
+	RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3,oneof"`
 }
 type GerritSourceContext_AliasContext struct {
-	AliasContext *AliasContext `protobuf:"bytes,4,opt,name=alias_context,json=aliasContext,oneof"`
+	AliasContext *AliasContext `protobuf:"bytes,4,opt,name=alias_context,json=aliasContext,proto3,oneof"`
 }
 
 func (*GerritSourceContext_RevisionId) isGerritSourceContext_Revision()   {}
@@ -610,10 +610,10 @@ func _GerritSourceContext_OneofSizer(msg proto.Message) (n int) {
 // repository (e.g., GitHub).
 type GitSourceContext struct {
 	// Git repository URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// Required.
 	// Git commit hash.
-	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId" json:"revision_id,omitempty"`
+	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -700,10 +700,10 @@ type isRepoId_Id interface {
 }
 
 type RepoId_ProjectRepoId struct {
-	ProjectRepoId *ProjectRepoId `protobuf:"bytes,1,opt,name=project_repo_id,json=projectRepoId,oneof"`
+	ProjectRepoId *ProjectRepoId `protobuf:"bytes,1,opt,name=project_repo_id,json=projectRepoId,proto3,oneof"`
 }
 type RepoId_Uid struct {
-	Uid string `protobuf:"bytes,2,opt,name=uid,oneof"`
+	Uid string `protobuf:"bytes,2,opt,name=uid,proto3,oneof"`
 }
 
 func (*RepoId_ProjectRepoId) isRepoId_Id() {}
@@ -804,9 +804,9 @@ func _RepoId_OneofSizer(msg proto.Message) (n int) {
 // winged-cargo-31) and a repo name within that project.
 type ProjectRepoId struct {
 	// The ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the repo. Leave empty for the default repo.
-	RepoName             string   `protobuf:"bytes,2,opt,name=repo_name,json=repoName" json:"repo_name,omitempty"`
+	RepoName             string   `protobuf:"bytes,2,opt,name=repo_name,json=repoName,proto3" json:"repo_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/remoteexecution/v1test/remote_execution.pb.go b/googleapis/devtools/remoteexecution/v1test/remote_execution.pb.go
index f8be19149a46bb92b25f3dbc3010187adeeeb5a5..3defc4741a81541722657548efc7852b8a1d715c 100644
--- a/googleapis/devtools/remoteexecution/v1test/remote_execution.pb.go
+++ b/googleapis/devtools/remoteexecution/v1test/remote_execution.pb.go
@@ -87,7 +87,7 @@ type Action struct {
 	// The digest of the [Command][google.devtools.remoteexecution.v1test.Command]
 	// to run, which MUST be present in the
 	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
-	CommandDigest *Digest `protobuf:"bytes,1,opt,name=command_digest,json=commandDigest" json:"command_digest,omitempty"`
+	CommandDigest *Digest `protobuf:"bytes,1,opt,name=command_digest,json=commandDigest,proto3" json:"command_digest,omitempty"`
 	// The digest of the root
 	// [Directory][google.devtools.remoteexecution.v1test.Directory] for the input
 	// files. The files in the directory tree are available in the correct
@@ -95,7 +95,7 @@ type Action struct {
 	// directory, as well as every subdirectory and content blob referred to, MUST
 	// be in the
 	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
-	InputRootDigest *Digest `protobuf:"bytes,2,opt,name=input_root_digest,json=inputRootDigest" json:"input_root_digest,omitempty"`
+	InputRootDigest *Digest `protobuf:"bytes,2,opt,name=input_root_digest,json=inputRootDigest,proto3" json:"input_root_digest,omitempty"`
 	// A list of the output files that the client expects to retrieve from the
 	// action. Only the listed files, as well as directories listed in
 	// `output_directories`, will be returned to the client as output.
@@ -110,7 +110,7 @@ type Action struct {
 	// In order to ensure consistent hashing of the same Action, the output paths
 	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
 	// bytes).
-	OutputFiles []string `protobuf:"bytes,3,rep,name=output_files,json=outputFiles" json:"output_files,omitempty"`
+	OutputFiles []string `protobuf:"bytes,3,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
 	// A list of the output directories that the client expects to retrieve from
 	// the action. Only the contents of the indicated directories (recursively
 	// including the contents of their subdirectories) will be
@@ -128,12 +128,12 @@ type Action struct {
 	// In order to ensure consistent hashing of the same Action, the output paths
 	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
 	// bytes).
-	OutputDirectories []string `protobuf:"bytes,4,rep,name=output_directories,json=outputDirectories" json:"output_directories,omitempty"`
+	OutputDirectories []string `protobuf:"bytes,4,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
 	// The platform requirements for the execution environment. The server MAY
 	// choose to execute the action on any worker satisfying the requirements, so
 	// the client SHOULD ensure that running the action on any such worker will
 	// have the same result.
-	Platform *Platform `protobuf:"bytes,5,opt,name=platform" json:"platform,omitempty"`
+	Platform *Platform `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"`
 	// A timeout after which the execution should be killed. If the timeout is
 	// absent, then the client is specifying that the execution should continue
 	// as long as the server will let it. The server SHOULD impose a timeout if
@@ -150,9 +150,9 @@ type Action struct {
 	// timeout is too short. By encoding it directly in the `Action`, a lower
 	// timeout will result in a cache miss and the execution timeout will fail
 	// immediately, rather than whenever the cache entry gets evicted.
-	Timeout *duration.Duration `protobuf:"bytes,6,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// If true, then the `Action`'s result cannot be cached.
-	DoNotCache           bool     `protobuf:"varint,7,opt,name=do_not_cache,json=doNotCache" json:"do_not_cache,omitempty"`
+	DoNotCache           bool     `protobuf:"varint,7,opt,name=do_not_cache,json=doNotCache,proto3" json:"do_not_cache,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -243,7 +243,7 @@ type Command struct {
 	// evaluated with respect to the input root, or an absolute path.
 	//
 	// The working directory will always be the input root.
-	Arguments []string `protobuf:"bytes,1,rep,name=arguments" json:"arguments,omitempty"`
+	Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
 	// The environment variables to set when running the program. The worker may
 	// provide its own default environment variables; these defaults can be
 	// overridden using this field. Additional variables can also be specified.
@@ -251,7 +251,7 @@ type Command struct {
 	// In order to ensure that equivalent `Command`s always hash to the same
 	// value, the environment variables MUST be lexicographically sorted by name.
 	// Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
-	EnvironmentVariables []*Command_EnvironmentVariable `protobuf:"bytes,2,rep,name=environment_variables,json=environmentVariables" json:"environment_variables,omitempty"`
+	EnvironmentVariables []*Command_EnvironmentVariable `protobuf:"bytes,2,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -299,9 +299,9 @@ func (m *Command) GetEnvironmentVariables() []*Command_EnvironmentVariable {
 // environment.
 type Command_EnvironmentVariable struct {
 	// The variable name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The variable value.
-	Value                string   `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -358,7 +358,7 @@ type Platform struct {
 	// equivalent `Platform`s always hash to the same value, the properties MUST
 	// be lexicographically sorted by name, and then by value. Sorting of strings
 	// is done by code point, equivalently, by the UTF-8 bytes.
-	Properties           []*Platform_Property `protobuf:"bytes,1,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Platform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -414,9 +414,9 @@ func (m *Platform) GetProperties() []*Platform_Property {
 // files available to the worker.
 type Platform_Property struct {
 	// The property name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The property value.
-	Value                string   `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -522,9 +522,9 @@ func (m *Platform_Property) GetValue() string {
 // ```
 type Directory struct {
 	// The files in the directory.
-	Files []*FileNode `protobuf:"bytes,1,rep,name=files" json:"files,omitempty"`
+	Files []*FileNode `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
 	// The subdirectories in the directory.
-	Directories          []*DirectoryNode `protobuf:"bytes,2,rep,name=directories" json:"directories,omitempty"`
+	Directories          []*DirectoryNode `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -571,11 +571,11 @@ func (m *Directory) GetDirectories() []*DirectoryNode {
 // A `FileNode` represents a single file and associated metadata.
 type FileNode struct {
 	// The name of the file.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The digest of the file's content.
-	Digest *Digest `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	// True if file is executable, false otherwise.
-	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable" json:"is_executable,omitempty"`
+	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -631,12 +631,12 @@ func (m *FileNode) GetIsExecutable() bool {
 // a `Directory` and its associated metadata.
 type DirectoryNode struct {
 	// The name of the directory.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The digest of the
 	// [Directory][google.devtools.remoteexecution.v1test.Directory] object
 	// represented. See [Digest][google.devtools.remoteexecution.v1test.Digest]
 	// for information about how to take the digest of a proto message.
-	Digest               *Digest  `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest               *Digest  `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -714,9 +714,9 @@ func (m *DirectoryNode) GetDigest() *Digest {
 type Digest struct {
 	// The hash. In the case of SHA-256, it will always be a lowercase hex string
 	// exactly 64 characters long.
-	Hash string `protobuf:"bytes,1,opt,name=hash" json:"hash,omitempty"`
+	Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
 	// The size of the blob, in bytes.
-	SizeBytes            int64    `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes" json:"size_bytes,omitempty"`
+	SizeBytes            int64    `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -771,7 +771,7 @@ type ActionResult struct {
 	// directory where a regular file is expected or vice versa, then that output
 	// will be omitted from the list. The server is free to arrange the output
 	// list as desired; clients MUST NOT assume that the output list is sorted.
-	OutputFiles []*OutputFile `protobuf:"bytes,2,rep,name=output_files,json=outputFiles" json:"output_files,omitempty"`
+	OutputFiles []*OutputFile `protobuf:"bytes,2,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
 	// The output directories of the action. For each output directory requested
 	// in the `output_directories` field of the Action, if the corresponding
 	// directory existed after the action completed, a single entry will be
@@ -830,9 +830,9 @@ type ActionResult struct {
 	//   }
 	// }
 	// ```
-	OutputDirectories []*OutputDirectory `protobuf:"bytes,3,rep,name=output_directories,json=outputDirectories" json:"output_directories,omitempty"`
+	OutputDirectories []*OutputDirectory `protobuf:"bytes,3,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
 	// The exit code of the command.
-	ExitCode int32 `protobuf:"varint,4,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"`
+	ExitCode int32 `protobuf:"varint,4,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
 	// The standard output buffer of the action. The server will determine, based
 	// on the size of the buffer, whether to return it in raw form or to return
 	// a digest in `stdout_digest` that points to the buffer. If neither is set,
@@ -844,7 +844,7 @@ type ActionResult struct {
 	// can be retrieved from the
 	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
 	// See `stdout_raw` for when this will be set.
-	StdoutDigest *Digest `protobuf:"bytes,6,opt,name=stdout_digest,json=stdoutDigest" json:"stdout_digest,omitempty"`
+	StdoutDigest *Digest `protobuf:"bytes,6,opt,name=stdout_digest,json=stdoutDigest,proto3" json:"stdout_digest,omitempty"`
 	// The standard error buffer of the action. The server will determine, based
 	// on the size of the buffer, whether to return it in raw form or to return
 	// a digest in `stderr_digest` that points to the buffer. If neither is set,
@@ -856,7 +856,7 @@ type ActionResult struct {
 	// can be retrieved from the
 	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
 	// See `stderr_raw` for when this will be set.
-	StderrDigest         *Digest  `protobuf:"bytes,8,opt,name=stderr_digest,json=stderrDigest" json:"stderr_digest,omitempty"`
+	StderrDigest         *Digest  `protobuf:"bytes,8,opt,name=stderr_digest,json=stderrDigest,proto3" json:"stderr_digest,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -945,9 +945,9 @@ type OutputFile struct {
 	// The full path of the file relative to the input root, including the
 	// filename. The path separator is a forward slash `/`. Since this is a
 	// relative path, it MUST NOT begin with a leading forward slash.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// The digest of the file's content.
-	Digest *Digest `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	// The raw content of the file.
 	//
 	// This field may be used by the server to provide the content of a file
@@ -960,7 +960,7 @@ type OutputFile struct {
 	// and always be prepared to retrieve it via `digest`.
 	Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
 	// True if file is executable, false otherwise.
-	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable" json:"is_executable,omitempty"`
+	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1023,12 +1023,12 @@ func (m *OutputFile) GetIsExecutable() bool {
 // single directory Merkle tree, compressed into one message.
 type Tree struct {
 	// The root directory in the tree.
-	Root *Directory `protobuf:"bytes,1,opt,name=root" json:"root,omitempty"`
+	Root *Directory `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
 	// All the child directories: the directories referred to by the root and,
 	// recursively, all its children. In order to reconstruct the directory tree,
 	// the client must take the digests of each of the child directories and then
 	// build up a tree starting from the `root`.
-	Children             []*Directory `protobuf:"bytes,2,rep,name=children" json:"children,omitempty"`
+	Children             []*Directory `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -1079,13 +1079,13 @@ type OutputDirectory struct {
 	// separator is a forward slash `/`. Since this is a relative path, it MUST
 	// NOT begin with a leading forward slash. The empty string value is allowed,
 	// and it denotes the entire working directory.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// DEPRECATED: This field is deprecated and should no longer be used.
-	Digest *Digest `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	// The digest of the encoded
 	// [Tree][google.devtools.remoteexecution.v1test.Tree] proto containing the
 	// directory's contents.
-	TreeDigest           *Digest  `protobuf:"bytes,3,opt,name=tree_digest,json=treeDigest" json:"tree_digest,omitempty"`
+	TreeDigest           *Digest  `protobuf:"bytes,3,opt,name=tree_digest,json=treeDigest,proto3" json:"tree_digest,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1144,19 +1144,19 @@ type ExecuteRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The action to be performed.
-	Action *Action `protobuf:"bytes,2,opt,name=action" json:"action,omitempty"`
+	Action *Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
 	// If true, the action will be executed anew even if its result was already
 	// present in the cache. If false, the result may be served from the
 	// [ActionCache][google.devtools.remoteexecution.v1test.ActionCache].
-	SkipCacheLookup bool `protobuf:"varint,3,opt,name=skip_cache_lookup,json=skipCacheLookup" json:"skip_cache_lookup,omitempty"`
+	SkipCacheLookup bool `protobuf:"varint,3,opt,name=skip_cache_lookup,json=skipCacheLookup,proto3" json:"skip_cache_lookup,omitempty"`
 	// DEPRECATED: This field should be ignored by clients and servers and will be
 	// removed.
-	TotalInputFileCount int32 `protobuf:"varint,4,opt,name=total_input_file_count,json=totalInputFileCount" json:"total_input_file_count,omitempty"`
+	TotalInputFileCount int32 `protobuf:"varint,4,opt,name=total_input_file_count,json=totalInputFileCount,proto3" json:"total_input_file_count,omitempty"`
 	// DEPRECATED: This field should be ignored by clients and servers and will be
 	// removed.
-	TotalInputFileBytes  int64    `protobuf:"varint,5,opt,name=total_input_file_bytes,json=totalInputFileBytes" json:"total_input_file_bytes,omitempty"`
+	TotalInputFileBytes  int64    `protobuf:"varint,5,opt,name=total_input_file_bytes,json=totalInputFileBytes,proto3" json:"total_input_file_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1224,13 +1224,13 @@ func (m *ExecuteRequest) GetTotalInputFileBytes() int64 {
 // A `LogFile` is a log stored in the CAS.
 type LogFile struct {
 	// The digest of the log contents.
-	Digest *Digest `protobuf:"bytes,1,opt,name=digest" json:"digest,omitempty"`
+	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
 	// This is a hint as to the purpose of the log, and is set to true if the log
 	// is human-readable text that can be usefully displayed to a user, and false
 	// otherwise. For instance, if a command-line client wishes to print the
 	// server logs to the terminal for a failed action, this allows it to avoid
 	// displaying a binary file.
-	HumanReadable        bool     `protobuf:"varint,2,opt,name=human_readable,json=humanReadable" json:"human_readable,omitempty"`
+	HumanReadable        bool     `protobuf:"varint,2,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1281,9 +1281,9 @@ func (m *LogFile) GetHumanReadable() bool {
 // [Operation][google.longrunning.Operation].
 type ExecuteResponse struct {
 	// The result of the action.
-	Result *ActionResult `protobuf:"bytes,1,opt,name=result" json:"result,omitempty"`
+	Result *ActionResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
 	// True if the result was served from cache, false if it was executed.
-	CachedResult bool `protobuf:"varint,2,opt,name=cached_result,json=cachedResult" json:"cached_result,omitempty"`
+	CachedResult bool `protobuf:"varint,2,opt,name=cached_result,json=cachedResult,proto3" json:"cached_result,omitempty"`
 	// If the status has a code other than `OK`, it indicates that the action did
 	// not finish execution. For example, if the operation times out during
 	// execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST
@@ -1294,7 +1294,7 @@ type ExecuteResponse struct {
 	// For an error status, the `result` field is optional; the server may
 	// populate the output-, stdout-, and stderr-related fields if it has any
 	// information available, such as the stdout and stderr of a timed-out action.
-	Status *status.Status `protobuf:"bytes,3,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
 	// An optional list of additional log outputs the server wishes to provide. A
 	// server can use this to return execution-specific logs however it wishes.
 	// This is intended primarily to make it easier for users to debug issues that
@@ -1302,7 +1302,7 @@ type ExecuteResponse struct {
 	// worker executing the action or by providing logs from the worker's setup
 	// phase. The keys SHOULD be human readable so that a client can display them
 	// to a user.
-	ServerLogs           map[string]*LogFile `protobuf:"bytes,4,rep,name=server_logs,json=serverLogs" json:"server_logs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ServerLogs           map[string]*LogFile `protobuf:"bytes,4,rep,name=server_logs,json=serverLogs,proto3" json:"server_logs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1366,18 +1366,18 @@ func (m *ExecuteResponse) GetServerLogs() map[string]*LogFile {
 // field][google.longrunning.Operation.response] of the
 // [Operation][google.longrunning.Operation].
 type ExecuteOperationMetadata struct {
-	Stage ExecuteOperationMetadata_Stage `protobuf:"varint,1,opt,name=stage,enum=google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage" json:"stage,omitempty"`
+	Stage ExecuteOperationMetadata_Stage `protobuf:"varint,1,opt,name=stage,proto3,enum=google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage" json:"stage,omitempty"`
 	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
 	// being executed.
-	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest" json:"action_digest,omitempty"`
+	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
 	// If set, the client can use this name with
 	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
 	// standard output.
-	StdoutStreamName string `protobuf:"bytes,3,opt,name=stdout_stream_name,json=stdoutStreamName" json:"stdout_stream_name,omitempty"`
+	StdoutStreamName string `protobuf:"bytes,3,opt,name=stdout_stream_name,json=stdoutStreamName,proto3" json:"stdout_stream_name,omitempty"`
 	// If set, the client can use this name with
 	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
 	// standard error.
-	StderrStreamName     string   `protobuf:"bytes,4,opt,name=stderr_stream_name,json=stderrStreamName" json:"stderr_stream_name,omitempty"`
+	StderrStreamName     string   `protobuf:"bytes,4,opt,name=stderr_stream_name,json=stderrStreamName,proto3" json:"stderr_stream_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1443,10 +1443,10 @@ type GetActionResultRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
 	// whose result is requested.
-	ActionDigest         *Digest  `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest" json:"action_digest,omitempty"`
+	ActionDigest         *Digest  `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1498,13 +1498,13 @@ type UpdateActionResultRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
 	// whose result is being uploaded.
-	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest" json:"action_digest,omitempty"`
+	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
 	// The [ActionResult][google.devtools.remoteexecution.v1test.ActionResult]
 	// to store in the cache.
-	ActionResult         *ActionResult `protobuf:"bytes,3,opt,name=action_result,json=actionResult" json:"action_result,omitempty"`
+	ActionResult         *ActionResult `protobuf:"bytes,3,opt,name=action_result,json=actionResult,proto3" json:"action_result,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -1563,9 +1563,9 @@ type FindMissingBlobsRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// A list of the blobs to check.
-	BlobDigests          []*Digest `protobuf:"bytes,2,rep,name=blob_digests,json=blobDigests" json:"blob_digests,omitempty"`
+	BlobDigests          []*Digest `protobuf:"bytes,2,rep,name=blob_digests,json=blobDigests,proto3" json:"blob_digests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1613,7 +1613,7 @@ func (m *FindMissingBlobsRequest) GetBlobDigests() []*Digest {
 // [ContentAddressableStorage.FindMissingBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs].
 type FindMissingBlobsResponse struct {
 	// A list of the blobs requested *not* present in the storage.
-	MissingBlobDigests   []*Digest `protobuf:"bytes,2,rep,name=missing_blob_digests,json=missingBlobDigests" json:"missing_blob_digests,omitempty"`
+	MissingBlobDigests   []*Digest `protobuf:"bytes,2,rep,name=missing_blob_digests,json=missingBlobDigests,proto3" json:"missing_blob_digests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -1654,7 +1654,7 @@ func (m *FindMissingBlobsResponse) GetMissingBlobDigests() []*Digest {
 // [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
 type UpdateBlobRequest struct {
 	// The digest of the blob. This MUST be the digest of `data`.
-	ContentDigest *Digest `protobuf:"bytes,1,opt,name=content_digest,json=contentDigest" json:"content_digest,omitempty"`
+	ContentDigest *Digest `protobuf:"bytes,1,opt,name=content_digest,json=contentDigest,proto3" json:"content_digest,omitempty"`
 	// The raw binary data.
 	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1708,9 +1708,9 @@ type BatchUpdateBlobsRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The individual upload requests.
-	Requests             []*UpdateBlobRequest `protobuf:"bytes,2,rep,name=requests" json:"requests,omitempty"`
+	Requests             []*UpdateBlobRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1758,7 +1758,7 @@ func (m *BatchUpdateBlobsRequest) GetRequests() []*UpdateBlobRequest {
 // [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
 type BatchUpdateBlobsResponse struct {
 	// The responses to the requests.
-	Responses            []*BatchUpdateBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses" json:"responses,omitempty"`
+	Responses            []*BatchUpdateBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
 	XXX_unrecognized     []byte                               `json:"-"`
 	XXX_sizecache        int32                                `json:"-"`
@@ -1798,9 +1798,9 @@ func (m *BatchUpdateBlobsResponse) GetResponses() []*BatchUpdateBlobsResponse_Re
 // A response corresponding to a single blob that the client tried to upload.
 type BatchUpdateBlobsResponse_Response struct {
 	// The digest to which this response corresponds.
-	BlobDigest *Digest `protobuf:"bytes,1,opt,name=blob_digest,json=blobDigest" json:"blob_digest,omitempty"`
+	BlobDigest *Digest `protobuf:"bytes,1,opt,name=blob_digest,json=blobDigest,proto3" json:"blob_digest,omitempty"`
 	// The result of attempting to upload that blob.
-	Status               *status.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
+	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1852,21 +1852,21 @@ type GetTreeRequest struct {
 	// storage, caches, etc.). The server MAY require use of this field to select
 	// between them in an implementation-defined fashion, otherwise it can be
 	// omitted.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The digest of the root, which must be an encoded
 	// [Directory][google.devtools.remoteexecution.v1test.Directory] message
 	// stored in the
 	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
-	RootDigest *Digest `protobuf:"bytes,2,opt,name=root_digest,json=rootDigest" json:"root_digest,omitempty"`
+	RootDigest *Digest `protobuf:"bytes,2,opt,name=root_digest,json=rootDigest,proto3" json:"root_digest,omitempty"`
 	// A maximum page size to request. If present, the server will request no more
 	// than this many items. Regardless of whether a page size is specified, the
 	// server may place its own limit on the number of items to be returned and
 	// require the client to retrieve more items using a subsequent request.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A page token, which must be a value received in a previous
 	// [GetTreeResponse][google.devtools.remoteexecution.v1test.GetTreeResponse].
 	// If present, the server will use it to return the following page of results.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1928,12 +1928,12 @@ func (m *GetTreeRequest) GetPageToken() string {
 // [ContentAddressableStorage.GetTree][google.devtools.remoteexecution.v1test.ContentAddressableStorage.GetTree].
 type GetTreeResponse struct {
 	// The directories descended from the requested root.
-	Directories []*Directory `protobuf:"bytes,1,rep,name=directories" json:"directories,omitempty"`
+	Directories []*Directory `protobuf:"bytes,1,rep,name=directories,proto3" json:"directories,omitempty"`
 	// If present, signifies that there are more results which the client can
 	// retrieve by passing this as the page_token in a subsequent
 	// [request][google.devtools.remoteexecution.v1test.GetTreeRequest].
 	// If empty, signifies that this is the last page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1980,9 +1980,9 @@ func (m *GetTreeResponse) GetNextPageToken() string {
 // Details for the tool used to call the API.
 type ToolDetails struct {
 	// Name of the tool, e.g. bazel.
-	ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName" json:"tool_name,omitempty"`
+	ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"`
 	// Version of the tool used for the request, e.g. 5.0.3.
-	ToolVersion          string   `protobuf:"bytes,2,opt,name=tool_version,json=toolVersion" json:"tool_version,omitempty"`
+	ToolVersion          string   `protobuf:"bytes,2,opt,name=tool_version,json=toolVersion,proto3" json:"tool_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2034,17 +2034,17 @@ func (m *ToolDetails) GetToolVersion() string {
 // contents: the base64 encoded binary RequestMetadata message.
 type RequestMetadata struct {
 	// The details for the tool invoking the requests.
-	ToolDetails *ToolDetails `protobuf:"bytes,1,opt,name=tool_details,json=toolDetails" json:"tool_details,omitempty"`
+	ToolDetails *ToolDetails `protobuf:"bytes,1,opt,name=tool_details,json=toolDetails,proto3" json:"tool_details,omitempty"`
 	// An identifier that ties multiple requests to the same action.
 	// For example, multiple requests to the CAS, Action Cache, and Execution
 	// API are used in order to compile foo.cc.
-	ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId" json:"action_id,omitempty"`
+	ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
 	// An identifier that ties multiple actions together to a final result.
 	// For example, multiple actions are required to build and run foo_test.
-	ToolInvocationId string `protobuf:"bytes,3,opt,name=tool_invocation_id,json=toolInvocationId" json:"tool_invocation_id,omitempty"`
+	ToolInvocationId string `protobuf:"bytes,3,opt,name=tool_invocation_id,json=toolInvocationId,proto3" json:"tool_invocation_id,omitempty"`
 	// An identifier to tie multiple tool invocations together. For example,
 	// runs of foo_test, bar_test and baz_test on a post-submit of a given patch.
-	CorrelatedInvocationsId string   `protobuf:"bytes,4,opt,name=correlated_invocations_id,json=correlatedInvocationsId" json:"correlated_invocations_id,omitempty"`
+	CorrelatedInvocationsId string   `protobuf:"bytes,4,opt,name=correlated_invocations_id,json=correlatedInvocationsId,proto3" json:"correlated_invocations_id,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
 	XXX_unrecognized        []byte   `json:"-"`
 	XXX_sizecache           int32    `json:"-"`
@@ -2231,8 +2231,7 @@ func (c *executionClient) Execute(ctx context.Context, in *ExecuteRequest, opts
 	return out, nil
 }
 
-// Server API for Execution service
-
+// ExecutionServer is the server API for Execution service.
 type ExecutionServer interface {
 	// Execute an action remotely.
 	//
@@ -2384,8 +2383,7 @@ func (c *actionCacheClient) UpdateActionResult(ctx context.Context, in *UpdateAc
 	return out, nil
 }
 
-// Server API for ActionCache service
-
+// ActionCacheServer is the server API for ActionCache service.
 type ActionCacheServer interface {
 	// Retrieve a cached execution result.
 	//
@@ -2547,8 +2545,7 @@ func (c *contentAddressableStorageClient) GetTree(ctx context.Context, in *GetTr
 	return out, nil
 }
 
-// Server API for ContentAddressableStorage service
-
+// ContentAddressableStorageServer is the server API for ContentAddressableStorage service.
 type ContentAddressableStorageServer interface {
 	// Determine if blobs are present in the CAS.
 	//
diff --git a/googleapis/devtools/remoteworkers/v1test2/bots.pb.go b/googleapis/devtools/remoteworkers/v1test2/bots.pb.go
index f436938b1b787485ba0d412563b859e946f5529e..a859a71ab1d7ffb2c1c659ba004e7050c33cea35 100644
--- a/googleapis/devtools/remoteworkers/v1test2/bots.pb.go
+++ b/googleapis/devtools/remoteworkers/v1test2/bots.pb.go
@@ -205,7 +205,7 @@ func (PostBotEventTempRequest_Type) EnumDescriptor() ([]byte, []int) {
 type BotSession struct {
 	// The bot session name, as selected by the server. Output only during a call
 	// to CreateBotSession.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A unique bot ID within the farm used to persistently identify this bot over
 	// time (i.e., over multiple sessions). This ID must be unique within a
 	// farm. Typically, the bot ID will be the same as the name of the primary
@@ -220,10 +220,10 @@ type BotSession struct {
 	// invalid session, the server must reject that request, and may also
 	// quarantine the other bot with the same bot IDs (ie, stop sending it new
 	// leases and alert an admin).
-	BotId string `protobuf:"bytes,2,opt,name=bot_id,json=botId" json:"bot_id,omitempty"`
+	BotId string `protobuf:"bytes,2,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
 	// The status of the bot. This must be populated in every call to
 	// UpdateBotSession.
-	Status BotStatus `protobuf:"varint,3,opt,name=status,enum=google.devtools.remoteworkers.v1test2.BotStatus" json:"status,omitempty"`
+	Status BotStatus `protobuf:"varint,3,opt,name=status,proto3,enum=google.devtools.remoteworkers.v1test2.BotStatus" json:"status,omitempty"`
 	// A description of the worker hosting this bot. The Worker message is used
 	// here in the Status context (see Worker for more information).  If multiple
 	// bots are running on the worker, this field should only describe the
@@ -232,16 +232,16 @@ type BotSession struct {
 	// During the call to CreateBotSession, the server may make arbitrary changes
 	// to the worker's `server_properties` field (see that field for more
 	// information). Otherwise, this field is input-only.
-	Worker *Worker `protobuf:"bytes,4,opt,name=worker" json:"worker,omitempty"`
+	Worker *Worker `protobuf:"bytes,4,opt,name=worker,proto3" json:"worker,omitempty"`
 	// A list of all leases that are a part of this session. See the Lease message
 	// for details.
-	Leases []*Lease `protobuf:"bytes,5,rep,name=leases" json:"leases,omitempty"`
+	Leases []*Lease `protobuf:"bytes,5,rep,name=leases,proto3" json:"leases,omitempty"`
 	// The time at which this bot session will expire, unless the bot calls
 	// UpdateBotSession again. Output only.
-	ExpireTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// The version of the bot code currently running. The server may use this
 	// information to issue an admin action to tell the bot to update itself.
-	Version              string   `protobuf:"bytes,7,opt,name=version" json:"version,omitempty"`
+	Version              string   `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -358,9 +358,9 @@ type Lease struct {
 	// [https://cloud.google.com/apis/design/resource_names#full_resource_name] if
 	// it should be accessed through an endpoint that is not already known to the
 	// bot.
-	Assignment string `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"`
+	Assignment string `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
 	// The state of the lease. See LeaseState for more information.
-	State LeaseState `protobuf:"varint,2,opt,name=state,enum=google.devtools.remoteworkers.v1test2.LeaseState" json:"state,omitempty"`
+	State LeaseState `protobuf:"varint,2,opt,name=state,proto3,enum=google.devtools.remoteworkers.v1test2.LeaseState" json:"state,omitempty"`
 	// The final status of the lease (should be populated by the bot if the state
 	// is completed). This is the status of the lease, not of any task represented
 	// by the lease. For example, if the bot could not accept the lease because it
@@ -368,14 +368,14 @@ type Lease struct {
 	// FAILED_PRECONDITION. But if the assignment in the lease didn't execute
 	// correctly, this field will be `OK` while the failure of the assignment must
 	// be tracked elsewhere (e.g., through the Tasks interface).
-	Status *status.Status `protobuf:"bytes,3,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
 	// The requirements that are being claimed by this lease. This field may be
 	// omitted by the server if the lease is not pending.
-	Requirements *Worker `protobuf:"bytes,4,opt,name=requirements" json:"requirements,omitempty"`
+	Requirements *Worker `protobuf:"bytes,4,opt,name=requirements,proto3" json:"requirements,omitempty"`
 	// The time at which this lease expires. The server *may* extend this over
 	// time, but due to race conditions, the bot is not *required* to respect any
 	// expiry date except the first one.
-	ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// While the `assignment` field is a resource name that allows the bot to
 	// get the actual assignment, the server can also optionally include the
 	// assignment itself inline in order to save a round trip to the server.
@@ -388,7 +388,7 @@ type Lease struct {
 	//
 	// This field may be omitted by the server if the lease is not in the
 	// `PENDING` state.
-	InlineAssignment     *any.Any `protobuf:"bytes,6,opt,name=inline_assignment,json=inlineAssignment" json:"inline_assignment,omitempty"`
+	InlineAssignment     *any.Any `protobuf:"bytes,6,opt,name=inline_assignment,json=inlineAssignment,proto3" json:"inline_assignment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -474,9 +474,9 @@ func (m *Lease) GetInlineAssignment() *any.Any {
 // project (http://github.com/luci/luci-py/appengine/swarming).
 type AdminTemp struct {
 	// The admin action; see `Command` for legal values.
-	Command AdminTemp_Command `protobuf:"varint,1,opt,name=command,enum=google.devtools.remoteworkers.v1test2.AdminTemp_Command" json:"command,omitempty"`
+	Command AdminTemp_Command `protobuf:"varint,1,opt,name=command,proto3,enum=google.devtools.remoteworkers.v1test2.AdminTemp_Command" json:"command,omitempty"`
 	// The argument to the admin action; see `Command` for semantics.
-	Arg                  string   `protobuf:"bytes,2,opt,name=arg" json:"arg,omitempty"`
+	Arg                  string   `protobuf:"bytes,2,opt,name=arg,proto3" json:"arg,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -523,9 +523,9 @@ func (m *AdminTemp) GetArg() string {
 // Request message for CreateBotSession.
 type CreateBotSessionRequest struct {
 	// The farm resource.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The bot session to create. Server-assigned fields like name must be unset.
-	BotSession           *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession" json:"bot_session,omitempty"`
+	BotSession           *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession,proto3" json:"bot_session,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -572,12 +572,12 @@ func (m *CreateBotSessionRequest) GetBotSession() *BotSession {
 // Request message for UpdateBotSession.
 type UpdateBotSessionRequest struct {
 	// The bot session name. Must match bot_session.name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The bot session resource to update.
-	BotSession *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession" json:"bot_session,omitempty"`
+	BotSession *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession,proto3" json:"bot_session,omitempty"`
 	// The fields on the bot that should be updated. See the BotSession resource
 	// for which fields are updatable by which caller.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -631,11 +631,11 @@ func (m *UpdateBotSessionRequest) GetUpdateMask() *field_mask.FieldMask {
 // Request message for PostBotEventTemp
 type PostBotEventTempRequest struct {
 	// The bot session name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The type of bot event.
-	Type PostBotEventTempRequest_Type `protobuf:"varint,2,opt,name=type,enum=google.devtools.remoteworkers.v1test2.PostBotEventTempRequest_Type" json:"type,omitempty"`
+	Type PostBotEventTempRequest_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.devtools.remoteworkers.v1test2.PostBotEventTempRequest_Type" json:"type,omitempty"`
 	// A human-readable message.
-	Msg                  string   `protobuf:"bytes,3,opt,name=msg" json:"msg,omitempty"`
+	Msg                  string   `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -761,8 +761,7 @@ func (c *botsClient) PostBotEventTemp(ctx context.Context, in *PostBotEventTempR
 	return out, nil
 }
 
-// Server API for Bots service
-
+// BotsServer is the server API for Bots service.
 type BotsServer interface {
 	// CreateBotSession is called when the bot first joins the farm, and
 	// establishes a session ID to ensure that multiple machines do not register
diff --git a/googleapis/devtools/remoteworkers/v1test2/command.pb.go b/googleapis/devtools/remoteworkers/v1test2/command.pb.go
index 79554110b6d43724d8cc0eb38117c2e8cec2b844..75ffebcdf3bc6dde919e510cc67c56ed8a8b643d 100644
--- a/googleapis/devtools/remoteworkers/v1test2/command.pb.go
+++ b/googleapis/devtools/remoteworkers/v1test2/command.pb.go
@@ -22,11 +22,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Describes a shell-style task to execute.
 type CommandTask struct {
 	// The inputs to the task.
-	Inputs *CommandTask_Inputs `protobuf:"bytes,1,opt,name=inputs" json:"inputs,omitempty"`
+	Inputs *CommandTask_Inputs `protobuf:"bytes,1,opt,name=inputs,proto3" json:"inputs,omitempty"`
 	// The expected outputs from the task.
-	ExpectedOutputs *CommandTask_Outputs `protobuf:"bytes,4,opt,name=expected_outputs,json=expectedOutputs" json:"expected_outputs,omitempty"`
+	ExpectedOutputs *CommandTask_Outputs `protobuf:"bytes,4,opt,name=expected_outputs,json=expectedOutputs,proto3" json:"expected_outputs,omitempty"`
 	// The timeouts of this task.
-	Timeouts             *CommandTask_Timeouts `protobuf:"bytes,5,opt,name=timeouts" json:"timeouts,omitempty"`
+	Timeouts             *CommandTask_Timeouts `protobuf:"bytes,5,opt,name=timeouts,proto3" json:"timeouts,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -80,7 +80,7 @@ func (m *CommandTask) GetTimeouts() *CommandTask_Timeouts {
 // Describes the inputs to a shell-style task.
 type CommandTask_Inputs struct {
 	// The command itself to run (e.g., argv)
-	Arguments []string `protobuf:"bytes,1,rep,name=arguments" json:"arguments,omitempty"`
+	Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
 	// The input filesystem to be set up prior to the task beginning. The
 	// contents should be a repeated set of FileMetadata messages though other
 	// formats are allowed if better for the implementation (eg, a LUCI-style
@@ -90,9 +90,9 @@ type CommandTask_Inputs struct {
 	// metadata, in which case it may be useful to break up portions of the
 	// filesystem that change frequently (eg, specific input files) from those
 	// that don't (eg, standard header files).
-	Files []*Digest `protobuf:"bytes,2,rep,name=files" json:"files,omitempty"`
+	Files []*Digest `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"`
 	// All environment variables required by the task.
-	EnvironmentVariables []*CommandTask_Inputs_EnvironmentVariable `protobuf:"bytes,3,rep,name=environment_variables,json=environmentVariables" json:"environment_variables,omitempty"`
+	EnvironmentVariables []*CommandTask_Inputs_EnvironmentVariable `protobuf:"bytes,3,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
 	XXX_unrecognized     []byte                                    `json:"-"`
 	XXX_sizecache        int32                                     `json:"-"`
@@ -146,9 +146,9 @@ func (m *CommandTask_Inputs) GetEnvironmentVariables() []*CommandTask_Inputs_Env
 // An environment variable required by this task.
 type CommandTask_Inputs_EnvironmentVariable struct {
 	// The envvar name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The envvar value.
-	Value                string   `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -197,9 +197,9 @@ func (m *CommandTask_Inputs_EnvironmentVariable) GetValue() string {
 // Describes the expected outputs of the command.
 type CommandTask_Outputs struct {
 	// A list of expected files, relative to the execution root.
-	Files []string `protobuf:"bytes,1,rep,name=files" json:"files,omitempty"`
+	Files []string `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
 	// A list of expected directories, relative to the execution root.
-	Directories          []string `protobuf:"bytes,2,rep,name=directories" json:"directories,omitempty"`
+	Directories          []string `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -248,19 +248,19 @@ type CommandTask_Timeouts struct {
 	// This specifies the maximum time that the task can run, excluding the
 	// time required to download inputs or upload outputs. That is, the worker
 	// will terminate the task if it runs longer than this.
-	Execution *duration.Duration `protobuf:"bytes,1,opt,name=execution" json:"execution,omitempty"`
+	Execution *duration.Duration `protobuf:"bytes,1,opt,name=execution,proto3" json:"execution,omitempty"`
 	// This specifies the maximum amount of time the task can be idle - that is,
 	// go without generating some output in either stdout or stderr. If the
 	// process is silent for more than the specified time, the worker will
 	// terminate the task.
-	Idle *duration.Duration `protobuf:"bytes,2,opt,name=idle" json:"idle,omitempty"`
+	Idle *duration.Duration `protobuf:"bytes,2,opt,name=idle,proto3" json:"idle,omitempty"`
 	// If the execution or IO timeouts are exceeded, the worker will try to
 	// gracefully terminate the task and return any existing logs. However,
 	// tasks may be hard-frozen in which case this process will fail. This
 	// timeout specifies how long to wait for a terminated task to shut down
 	// gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g.
 	// SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).
-	Shutdown             *duration.Duration `protobuf:"bytes,3,opt,name=shutdown" json:"shutdown,omitempty"`
+	Shutdown             *duration.Duration `protobuf:"bytes,3,opt,name=shutdown,proto3" json:"shutdown,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -317,12 +317,12 @@ type CommandOutputs struct {
 	// exceeded its deadline or was cancelled, the process may still produce an
 	// exit code as it is cancelled, and this will be populated, but a successful
 	// (zero) is unlikely to be correct unless the status code is OK.
-	ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"`
+	ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
 	// The output files. The blob referenced by the digest should contain
 	// one of the following (implementation-dependent):
 	//    * A marshalled DirectoryMetadata of the returned filesystem
 	//    * A LUCI-style .isolated file
-	Outputs              *Digest  `protobuf:"bytes,2,opt,name=outputs" json:"outputs,omitempty"`
+	Outputs              *Digest  `protobuf:"bytes,2,opt,name=outputs,proto3" json:"outputs,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -372,10 +372,10 @@ type CommandOverhead struct {
 	// The elapsed time between calling Accept and Complete. The server will also
 	// have its own idea of what this should be, but this excludes the overhead of
 	// the RPCs and the bot response time.
-	Duration *duration.Duration `protobuf:"bytes,1,opt,name=duration" json:"duration,omitempty"`
+	Duration *duration.Duration `protobuf:"bytes,1,opt,name=duration,proto3" json:"duration,omitempty"`
 	// The amount of time *not* spent executing the command (ie
 	// uploading/downloading files).
-	Overhead             *duration.Duration `protobuf:"bytes,2,opt,name=overhead" json:"overhead,omitempty"`
+	Overhead             *duration.Duration `protobuf:"bytes,2,opt,name=overhead,proto3" json:"overhead,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -427,15 +427,15 @@ type FileMetadata struct {
 	// root and must correspond to an entry in CommandTask.outputs.files. If this
 	// message is part of a Directory message, then the path is relative to the
 	// root of that directory.
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// A pointer to the contents of the file. The method by which a client
 	// retrieves the contents from a CAS system is not defined here.
-	Digest *Digest `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	// If the file is small enough, its contents may also or alternatively be
 	// listed here.
 	Contents []byte `protobuf:"bytes,3,opt,name=contents,proto3" json:"contents,omitempty"`
 	// Properties of the file
-	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable" json:"is_executable,omitempty"`
+	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -497,10 +497,10 @@ func (m *FileMetadata) GetIsExecutable() bool {
 // Execution API.
 type DirectoryMetadata struct {
 	// The path of the directory, as in [FileMetadata.path][google.devtools.remoteworkers.v1test2.FileMetadata.path].
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// A pointer to the contents of the directory, in the form of a marshalled
 	// Directory message.
-	Digest               *Digest  `protobuf:"bytes,2,opt,name=digest" json:"digest,omitempty"`
+	Digest               *Digest  `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -550,12 +550,12 @@ func (m *DirectoryMetadata) GetDigest() *Digest {
 type Digest struct {
 	// A string-encoded hash (eg "1a2b3c", not the byte array [0x1a, 0x2b, 0x3c])
 	// using an implementation-defined hash algorithm (eg SHA-256).
-	Hash string `protobuf:"bytes,1,opt,name=hash" json:"hash,omitempty"`
+	Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
 	// The size of the contents. While this is not strictly required as part of an
 	// identifier (after all, any given hash will have exactly one canonical
 	// size), it's useful in almost all cases when one might want to send or
 	// retrieve blobs of content and is included here for this reason.
-	SizeBytes            int64    `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes" json:"size_bytes,omitempty"`
+	SizeBytes            int64    `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -603,9 +603,9 @@ func (m *Digest) GetSizeBytes() int64 {
 // Execution API.
 type Directory struct {
 	// The files in this directory
-	Files []*FileMetadata `protobuf:"bytes,1,rep,name=files" json:"files,omitempty"`
+	Files []*FileMetadata `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
 	// Any subdirectories
-	Directories          []*DirectoryMetadata `protobuf:"bytes,2,rep,name=directories" json:"directories,omitempty"`
+	Directories          []*DirectoryMetadata `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
diff --git a/googleapis/devtools/remoteworkers/v1test2/tasks.pb.go b/googleapis/devtools/remoteworkers/v1test2/tasks.pb.go
index b2827a393979e796b6125de229b85477d0094ac9..f3cd9964ea1fa48ef06d8e5c1bb76312cf6820c0 100644
--- a/googleapis/devtools/remoteworkers/v1test2/tasks.pb.go
+++ b/googleapis/devtools/remoteworkers/v1test2/tasks.pb.go
@@ -38,17 +38,17 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // overhead.
 type Task struct {
 	// The name of this task. Output only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The actual task to perform. For example, this could be CommandTask to run a
 	// command line.
-	Description *any.Any `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description *any.Any `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Handles to logs. The key is a human-readable name like `stdout`, and the
 	// handle is a resource name that can be passed to ByteStream or other
 	// accessors.
 	//
 	// An implementation may define some logs by default (like `stdout`), and may
 	// allow clients to add new logs via AddTaskLog.
-	Logs                 map[string]string `protobuf:"bytes,3,rep,name=logs" json:"logs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Logs                 map[string]string `protobuf:"bytes,3,rep,name=logs,proto3" json:"logs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -103,7 +103,7 @@ func (m *Task) GetLogs() map[string]string {
 type TaskResult struct {
 	// The name of the task result; must be a name of a `Task` followed by
 	// `/result`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The result may be updated several times; the client must only set
 	// `complete` to true to indicate that no further updates are allowed.
 	// If this is not true, the `status` field must not be examined since its zero
@@ -111,17 +111,17 @@ type TaskResult struct {
 	//
 	// Once a task is completed, it must not be updated with further results,
 	// though the implementation may choose to continue to receive logs.
-	Complete bool `protobuf:"varint,2,opt,name=complete" json:"complete,omitempty"`
+	Complete bool `protobuf:"varint,2,opt,name=complete,proto3" json:"complete,omitempty"`
 	// The final status of the task itself. For example, if task.description
 	// included a timeout which was violated, status.code may be
 	// DEADLINE_EXCEEDED. This field can only be read if `complete` is true.
-	Status *status.Status `protobuf:"bytes,3,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
 	// Any non-log output, such as output files and exit codes. See
 	// CommandResult as an example.
-	Output *any.Any `protobuf:"bytes,4,opt,name=output" json:"output,omitempty"`
+	Output *any.Any `protobuf:"bytes,4,opt,name=output,proto3" json:"output,omitempty"`
 	// Any information about how the command was executed, eg runtime. See
 	// CommandOverhead as an example.
-	Meta                 *any.Any `protobuf:"bytes,5,opt,name=meta" json:"meta,omitempty"`
+	Meta                 *any.Any `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -189,7 +189,7 @@ func (m *TaskResult) GetMeta() *any.Any {
 // Request message for `GetTask`.
 type GetTaskRequest struct {
 	// The task name.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -229,15 +229,15 @@ func (m *GetTaskRequest) GetName() string {
 // Request message for `UpdateTaskResult`.
 type UpdateTaskResultRequest struct {
 	// The task result name; must match `result.name`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The result being updated.
-	Result *TaskResult `protobuf:"bytes,2,opt,name=result" json:"result,omitempty"`
+	Result *TaskResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
 	// The fields within `result` that are specified.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// If this is being updated by a bot from BotManager, the source should be
 	// bot.session_id. That way, if two bots accidentally get the same name, we'll
 	// know to reject updates from the older one.
-	Source               string   `protobuf:"bytes,4,opt,name=source" json:"source,omitempty"`
+	Source               string   `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -298,9 +298,9 @@ func (m *UpdateTaskResultRequest) GetSource() string {
 // Request message for `AddTaskLog`.
 type AddTaskLogRequest struct {
 	// The name of the task that will own the new log.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The human-readable name of the log, like `stdout` or a relative file path.
-	LogId                string   `protobuf:"bytes,2,opt,name=log_id,json=logId" json:"log_id,omitempty"`
+	LogId                string   `protobuf:"bytes,2,opt,name=log_id,json=logId,proto3" json:"log_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -347,7 +347,7 @@ func (m *AddTaskLogRequest) GetLogId() string {
 // Response message for `AddTaskLog`.
 type AddTaskLogResponse struct {
 	// The handle for the new log, as would be returned in Task.logs.
-	Handle               string   `protobuf:"bytes,1,opt,name=handle" json:"handle,omitempty"`
+	Handle               string   `protobuf:"bytes,1,opt,name=handle,proto3" json:"handle,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -454,8 +454,7 @@ func (c *tasksClient) AddTaskLog(ctx context.Context, in *AddTaskLogRequest, opt
 	return out, nil
 }
 
-// Server API for Tasks service
-
+// TasksServer is the server API for Tasks service.
 type TasksServer interface {
 	// GetTask reads the current state of the task. Tasks must be created through
 	// some other interface, and should be immutable once created and exposed to
diff --git a/googleapis/devtools/remoteworkers/v1test2/worker.pb.go b/googleapis/devtools/remoteworkers/v1test2/worker.pb.go
index 7bd386963ec6b624d87a6151c6d891ed00b77861..58ea4c197648009c43e7264b18baf4f7c6b21c72 100644
--- a/googleapis/devtools/remoteworkers/v1test2/worker.pb.go
+++ b/googleapis/devtools/remoteworkers/v1test2/worker.pb.go
@@ -56,7 +56,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Worker struct {
 	// A list of devices; the first device is the primary device. See the `Device`
 	// message for more information.
-	Devices []*Device `protobuf:"bytes,1,rep,name=devices" json:"devices,omitempty"`
+	Devices []*Device `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"`
 	// A worker may contain "global" properties. For example, certain machines
 	// might be reserved for certain types of jobs, like short-running compilation
 	// versus long-running integration tests. This property is known as a "pool"
@@ -64,7 +64,7 @@ type Worker struct {
 	// to the worker as a whole.
 	//
 	// The behaviour of repeated keys is identical to that of Device.Property.
-	Properties           []*Worker_Property `protobuf:"bytes,2,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Worker_Property `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -120,9 +120,9 @@ type Worker_Property struct {
 	// throughput. To support this, the server can assign different values for
 	// `pool` (such as "itest" and "utest") to different workers, and then have
 	// jobs request workers from those pools.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// The property's value.
-	Value                string   `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -179,7 +179,7 @@ type Device struct {
 	// logical name expected by the task to a machine-readable name that the task
 	// can actually use, such as a USB address. The method by which this mapping
 	// is communicated to the task is not covered in this API.
-	Handle string `protobuf:"bytes,1,opt,name=handle" json:"handle,omitempty"`
+	Handle string `protobuf:"bytes,1,opt,name=handle,proto3" json:"handle,omitempty"`
 	// Properties of this device that don't change based on the tasks that are
 	// running on it, e.g. OS, CPU architecture, etc.
 	//
@@ -189,7 +189,7 @@ type Device struct {
 	//    example, an "ISA" property might include "x86", "x86-64" and "sse4".
 	//
 	//    * Request context: the device *must* support *all* of the listed values.
-	Properties           []*Device_Property `protobuf:"bytes,2,rep,name=properties" json:"properties,omitempty"`
+	Properties           []*Device_Property `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -246,9 +246,9 @@ type Device_Property struct {
 	//
 	// * has-docker: "true" if the bot has Docker installed. This will be
 	// replaced in the future by a more structured message for Docker support.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// The property's value.
-	Value                string   `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/source/v1/source_context.pb.go b/googleapis/devtools/source/v1/source_context.pb.go
index a3fb2ec0dd114fa1c92bb216b8a27126dbfba1fe..da8bccca92388708accc838aea79edf1708726c9 100644
--- a/googleapis/devtools/source/v1/source_context.pb.go
+++ b/googleapis/devtools/source/v1/source_context.pb.go
@@ -100,16 +100,16 @@ type isSourceContext_Context interface {
 }
 
 type SourceContext_CloudRepo struct {
-	CloudRepo *CloudRepoSourceContext `protobuf:"bytes,1,opt,name=cloud_repo,json=cloudRepo,oneof"`
+	CloudRepo *CloudRepoSourceContext `protobuf:"bytes,1,opt,name=cloud_repo,json=cloudRepo,proto3,oneof"`
 }
 type SourceContext_CloudWorkspace struct {
-	CloudWorkspace *CloudWorkspaceSourceContext `protobuf:"bytes,2,opt,name=cloud_workspace,json=cloudWorkspace,oneof"`
+	CloudWorkspace *CloudWorkspaceSourceContext `protobuf:"bytes,2,opt,name=cloud_workspace,json=cloudWorkspace,proto3,oneof"`
 }
 type SourceContext_Gerrit struct {
-	Gerrit *GerritSourceContext `protobuf:"bytes,3,opt,name=gerrit,oneof"`
+	Gerrit *GerritSourceContext `protobuf:"bytes,3,opt,name=gerrit,proto3,oneof"`
 }
 type SourceContext_Git struct {
-	Git *GitSourceContext `protobuf:"bytes,6,opt,name=git,oneof"`
+	Git *GitSourceContext `protobuf:"bytes,6,opt,name=git,proto3,oneof"`
 }
 
 func (*SourceContext_CloudRepo) isSourceContext_Context()      {}
@@ -268,9 +268,9 @@ func _SourceContext_OneofSizer(msg proto.Message) (n int) {
 // details describing the context.
 type ExtendedSourceContext struct {
 	// Any source context.
-	Context *SourceContext `protobuf:"bytes,1,opt,name=context" json:"context,omitempty"`
+	Context *SourceContext `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"`
 	// Labels with user defined metadata.
-	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -317,9 +317,9 @@ func (m *ExtendedSourceContext) GetLabels() map[string]string {
 // An alias to a repo revision.
 type AliasContext struct {
 	// The alias kind.
-	Kind AliasContext_Kind `protobuf:"varint,1,opt,name=kind,enum=google.devtools.source.v1.AliasContext_Kind" json:"kind,omitempty"`
+	Kind AliasContext_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=google.devtools.source.v1.AliasContext_Kind" json:"kind,omitempty"`
 	// The alias name.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -367,7 +367,7 @@ func (m *AliasContext) GetName() string {
 // repo (a repo hosted by the Google Cloud Platform).
 type CloudRepoSourceContext struct {
 	// The ID of the repo.
-	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId" json:"repo_id,omitempty"`
+	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
 	// A revision in a cloud repository can be identified by either its revision
 	// ID or its Alias.
 	//
@@ -410,13 +410,13 @@ type isCloudRepoSourceContext_Revision interface {
 }
 
 type CloudRepoSourceContext_RevisionId struct {
-	RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,oneof"`
+	RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3,oneof"`
 }
 type CloudRepoSourceContext_AliasName struct {
-	AliasName string `protobuf:"bytes,3,opt,name=alias_name,json=aliasName,oneof"`
+	AliasName string `protobuf:"bytes,3,opt,name=alias_name,json=aliasName,proto3,oneof"`
 }
 type CloudRepoSourceContext_AliasContext struct {
-	AliasContext *AliasContext `protobuf:"bytes,4,opt,name=alias_context,json=aliasContext,oneof"`
+	AliasContext *AliasContext `protobuf:"bytes,4,opt,name=alias_context,json=aliasContext,proto3,oneof"`
 }
 
 func (*CloudRepoSourceContext_RevisionId) isCloudRepoSourceContext_Revision()   {}
@@ -546,10 +546,10 @@ func _CloudRepoSourceContext_OneofSizer(msg proto.Message) (n int) {
 // A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.
 type CloudWorkspaceSourceContext struct {
 	// The ID of the workspace.
-	WorkspaceId *CloudWorkspaceId `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId" json:"workspace_id,omitempty"`
+	WorkspaceId *CloudWorkspaceId `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"`
 	// The ID of the snapshot.
 	// An empty snapshot_id refers to the most recent snapshot.
-	SnapshotId           string   `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId" json:"snapshot_id,omitempty"`
+	SnapshotId           string   `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -596,11 +596,11 @@ func (m *CloudWorkspaceSourceContext) GetSnapshotId() string {
 // A SourceContext referring to a Gerrit project.
 type GerritSourceContext struct {
 	// The URI of a running Gerrit instance.
-	HostUri string `protobuf:"bytes,1,opt,name=host_uri,json=hostUri" json:"host_uri,omitempty"`
+	HostUri string `protobuf:"bytes,1,opt,name=host_uri,json=hostUri,proto3" json:"host_uri,omitempty"`
 	// 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.
-	GerritProject string `protobuf:"bytes,2,opt,name=gerrit_project,json=gerritProject" json:"gerrit_project,omitempty"`
+	GerritProject string `protobuf:"bytes,2,opt,name=gerrit_project,json=gerritProject,proto3" json:"gerrit_project,omitempty"`
 	// A revision in a Gerrit project can be identified by either its revision ID
 	// or its alias.
 	//
@@ -643,13 +643,13 @@ type isGerritSourceContext_Revision interface {
 }
 
 type GerritSourceContext_RevisionId struct {
-	RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,oneof"`
+	RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3,oneof"`
 }
 type GerritSourceContext_AliasName struct {
-	AliasName string `protobuf:"bytes,4,opt,name=alias_name,json=aliasName,oneof"`
+	AliasName string `protobuf:"bytes,4,opt,name=alias_name,json=aliasName,proto3,oneof"`
 }
 type GerritSourceContext_AliasContext struct {
-	AliasContext *AliasContext `protobuf:"bytes,5,opt,name=alias_context,json=aliasContext,oneof"`
+	AliasContext *AliasContext `protobuf:"bytes,5,opt,name=alias_context,json=aliasContext,proto3,oneof"`
 }
 
 func (*GerritSourceContext_RevisionId) isGerritSourceContext_Revision()   {}
@@ -787,10 +787,10 @@ func _GerritSourceContext_OneofSizer(msg proto.Message) (n int) {
 // repository (e.g. GitHub).
 type GitSourceContext struct {
 	// Git repository URL.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// Git commit hash.
 	// required.
-	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId" json:"revision_id,omitempty"`
+	RevisionId           string   `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -877,10 +877,10 @@ type isRepoId_Id interface {
 }
 
 type RepoId_ProjectRepoId struct {
-	ProjectRepoId *ProjectRepoId `protobuf:"bytes,1,opt,name=project_repo_id,json=projectRepoId,oneof"`
+	ProjectRepoId *ProjectRepoId `protobuf:"bytes,1,opt,name=project_repo_id,json=projectRepoId,proto3,oneof"`
 }
 type RepoId_Uid struct {
-	Uid string `protobuf:"bytes,2,opt,name=uid,oneof"`
+	Uid string `protobuf:"bytes,2,opt,name=uid,proto3,oneof"`
 }
 
 func (*RepoId_ProjectRepoId) isRepoId_Id() {}
@@ -981,9 +981,9 @@ func _RepoId_OneofSizer(msg proto.Message) (n int) {
 // (e.g. winged-cargo-31) and a repo name within that project.
 type ProjectRepoId struct {
 	// The ID of the project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The name of the repo. Leave empty for the default repo.
-	RepoName             string   `protobuf:"bytes,2,opt,name=repo_name,json=repoName" json:"repo_name,omitempty"`
+	RepoName             string   `protobuf:"bytes,2,opt,name=repo_name,json=repoName,proto3" json:"repo_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1032,10 +1032,10 @@ func (m *ProjectRepoId) GetRepoName() string {
 // can be stored before they are committed.
 type CloudWorkspaceId struct {
 	// The ID of the repo containing the workspace.
-	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId" json:"repo_id,omitempty"`
+	RepoId *RepoId `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
 	// The unique name of the workspace within the repo.  This is the name
 	// chosen by the client in the Source API's CreateWorkspace method.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/devtools/sourcerepo/v1/sourcerepo.pb.go b/googleapis/devtools/sourcerepo/v1/sourcerepo.pb.go
index b01fa42ffc6e251be6ea61b7748f3b611338bdad..326d0a84443c21778f35f49cd09cc0e1ae8331dc 100644
--- a/googleapis/devtools/sourcerepo/v1/sourcerepo.pb.go
+++ b/googleapis/devtools/sourcerepo/v1/sourcerepo.pb.go
@@ -31,16 +31,16 @@ type Repo struct {
 	// Resource name of the repository, of the form
 	// `projects/<project>/repos/<repo>`.  The repo name may contain slashes.
 	// eg, `projects/myproject/repos/name/with/slash`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The disk usage of the repo, in bytes. Read-only field. Size is only
 	// returned by GetRepo.
-	Size int64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
+	Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
 	// URL to clone the repository from Google Cloud Source Repositories.
 	// Read-only field.
-	Url string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
 	// How this repository mirrors a repository managed by another service.
 	// Read-only field.
-	MirrorConfig         *MirrorConfig `protobuf:"bytes,4,opt,name=mirror_config,json=mirrorConfig" json:"mirror_config,omitempty"`
+	MirrorConfig         *MirrorConfig `protobuf:"bytes,4,opt,name=mirror_config,json=mirrorConfig,proto3" json:"mirror_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -102,16 +102,16 @@ func (m *Repo) GetMirrorConfig() *MirrorConfig {
 // hosting service, for example GitHub or BitBucket.
 type MirrorConfig struct {
 	// URL of the main repository at the other hosting service.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// ID of the webhook listening to updates to trigger mirroring.
 	// Removing this webhook from the other hosting service will stop
 	// Google Cloud Source Repositories from receiving notifications,
 	// and thereby disabling mirroring.
-	WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId" json:"webhook_id,omitempty"`
+	WebhookId string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"`
 	// ID of the SSH deploy key at the other hosting service.
 	// Removing this key from the other service would deauthorize
 	// Google Cloud Source Repositories from mirroring.
-	DeployKeyId          string   `protobuf:"bytes,3,opt,name=deploy_key_id,json=deployKeyId" json:"deploy_key_id,omitempty"`
+	DeployKeyId          string   `protobuf:"bytes,3,opt,name=deploy_key_id,json=deployKeyId,proto3" json:"deploy_key_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -166,7 +166,7 @@ func (m *MirrorConfig) GetDeployKeyId() string {
 type GetRepoRequest struct {
 	// The name of the requested repository. Values are of the form
 	// `projects/<project>/repos/<repo>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -207,14 +207,14 @@ func (m *GetRepoRequest) GetName() string {
 type ListReposRequest struct {
 	// The project ID whose repos should be listed. Values are of the form
 	// `projects/<project>`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Maximum number of repositories to return; between 1 and 500.
 	// If not set or zero, defaults to 100 at the server.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -268,11 +268,11 @@ func (m *ListReposRequest) GetPageToken() string {
 // Response for ListRepos.  The size is not set in the returned repositories.
 type ListReposResponse struct {
 	// The listed repos.
-	Repos []*Repo `protobuf:"bytes,1,rep,name=repos" json:"repos,omitempty"`
+	Repos []*Repo `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -320,10 +320,10 @@ func (m *ListReposResponse) GetNextPageToken() string {
 type CreateRepoRequest struct {
 	// The project in which to create the repo. Values are of the form
 	// `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The repo to create.  Only name should be set; setting other fields
 	// is an error.  The project in the name should match the parent field.
-	Repo                 *Repo    `protobuf:"bytes,2,opt,name=repo" json:"repo,omitempty"`
+	Repo                 *Repo    `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -371,7 +371,7 @@ func (m *CreateRepoRequest) GetRepo() *Repo {
 type DeleteRepoRequest struct {
 	// The name of the repo to delete. Values are of the form
 	// `projects/<project>/repos/<repo>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -526,8 +526,7 @@ func (c *sourceRepoClient) TestIamPermissions(ctx context.Context, in *v1.TestIa
 	return out, nil
 }
 
-// Server API for SourceRepo service
-
+// SourceRepoServer is the server API for SourceRepo service.
 type SourceRepoServer interface {
 	// 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.
diff --git a/googleapis/example/library/v1/library.pb.go b/googleapis/example/library/v1/library.pb.go
index 251eabed091a8d146a4b5ea71cdcb8a4a2a596e7..8039d942d49ea3c392933027b3c2b5447a79f6eb 100644
--- a/googleapis/example/library/v1/library.pb.go
+++ b/googleapis/example/library/v1/library.pb.go
@@ -30,13 +30,13 @@ type Book struct {
 	// The resource name of the book.
 	// Book names have the form `shelves/{shelf_id}/books/{book_id}`.
 	// The name is ignored when creating a book.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the book author.
-	Author string `protobuf:"bytes,2,opt,name=author" json:"author,omitempty"`
+	Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
 	// The title of the book.
-	Title string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
 	// Value indicating whether the book has been read.
-	Read                 bool     `protobuf:"varint,4,opt,name=read" json:"read,omitempty"`
+	Read                 bool     `protobuf:"varint,4,opt,name=read,proto3" json:"read,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -99,9 +99,9 @@ type Shelf struct {
 	// The resource name of the shelf.
 	// Shelf names have the form `shelves/{shelf_id}`.
 	// The name is ignored when creating a shelf.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The theme of the shelf
-	Theme                string   `protobuf:"bytes,2,opt,name=theme" json:"theme,omitempty"`
+	Theme                string   `protobuf:"bytes,2,opt,name=theme,proto3" json:"theme,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -148,7 +148,7 @@ func (m *Shelf) GetTheme() string {
 // Request message for LibraryService.CreateShelf.
 type CreateShelfRequest struct {
 	// The shelf to create.
-	Shelf                *Shelf   `protobuf:"bytes,1,opt,name=shelf" json:"shelf,omitempty"`
+	Shelf                *Shelf   `protobuf:"bytes,1,opt,name=shelf,proto3" json:"shelf,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -188,7 +188,7 @@ func (m *CreateShelfRequest) GetShelf() *Shelf {
 // Request message for LibraryService.GetShelf.
 type GetShelfRequest struct {
 	// The name of the shelf to retrieve.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -229,12 +229,12 @@ func (m *GetShelfRequest) GetName() string {
 type ListShelvesRequest struct {
 	// Requested page size. Server may return fewer shelves than requested.
 	// If unspecified, server will pick an appropriate default.
-	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying a page of results the server should return.
 	// Typically, this is the value of
 	// [ListShelvesResponse.next_page_token][google.example.library.v1.ListShelvesResponse.next_page_token]
 	// returned from the previous call to `ListShelves` method.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -281,13 +281,13 @@ func (m *ListShelvesRequest) GetPageToken() string {
 // Response message for LibraryService.ListShelves.
 type ListShelvesResponse struct {
 	// The list of shelves.
-	Shelves []*Shelf `protobuf:"bytes,1,rep,name=shelves" json:"shelves,omitempty"`
+	Shelves []*Shelf `protobuf:"bytes,1,rep,name=shelves,proto3" json:"shelves,omitempty"`
 	// A token to retrieve next page of results.
 	// Pass this value in the
 	// [ListShelvesRequest.page_token][google.example.library.v1.ListShelvesRequest.page_token]
 	// field in the subsequent call to `ListShelves` method to retrieve the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -334,7 +334,7 @@ func (m *ListShelvesResponse) GetNextPageToken() string {
 // Request message for LibraryService.DeleteShelf.
 type DeleteShelfRequest struct {
 	// The name of the shelf to delete.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -375,9 +375,9 @@ func (m *DeleteShelfRequest) GetName() string {
 // (name) in this merge.
 type MergeShelvesRequest struct {
 	// The name of the shelf we're adding books to.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the shelf we're removing books from and deleting.
-	OtherShelfName       string   `protobuf:"bytes,2,opt,name=other_shelf_name,json=otherShelfName" json:"other_shelf_name,omitempty"`
+	OtherShelfName       string   `protobuf:"bytes,2,opt,name=other_shelf_name,json=otherShelfName,proto3" json:"other_shelf_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -424,9 +424,9 @@ func (m *MergeShelvesRequest) GetOtherShelfName() string {
 // Request message for LibraryService.CreateBook.
 type CreateBookRequest struct {
 	// The name of the shelf in which the book is created.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The book to create.
-	Book                 *Book    `protobuf:"bytes,2,opt,name=book" json:"book,omitempty"`
+	Book                 *Book    `protobuf:"bytes,2,opt,name=book,proto3" json:"book,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -473,7 +473,7 @@ func (m *CreateBookRequest) GetBook() *Book {
 // Request message for LibraryService.GetBook.
 type GetBookRequest struct {
 	// The name of the book to retrieve.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -513,15 +513,15 @@ func (m *GetBookRequest) GetName() string {
 // Request message for LibraryService.ListBooks.
 type ListBooksRequest struct {
 	// The name of the shelf whose books we'd like to list.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Requested page size. Server may return fewer books than requested.
 	// If unspecified, server will pick an appropriate default.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A token identifying a page of results the server should return.
 	// Typically, this is the value of
 	// [ListBooksResponse.next_page_token][google.example.library.v1.ListBooksResponse.next_page_token].
 	// returned from the previous call to `ListBooks` method.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -575,13 +575,13 @@ func (m *ListBooksRequest) GetPageToken() string {
 // Response message for LibraryService.ListBooks.
 type ListBooksResponse struct {
 	// The list of books.
-	Books []*Book `protobuf:"bytes,1,rep,name=books" json:"books,omitempty"`
+	Books []*Book `protobuf:"bytes,1,rep,name=books,proto3" json:"books,omitempty"`
 	// A token to retrieve next page of results.
 	// Pass this value in the
 	// [ListBooksRequest.page_token][google.example.library.v1.ListBooksRequest.page_token]
 	// field in the subsequent call to `ListBooks` method to retrieve the next
 	// page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -628,9 +628,9 @@ func (m *ListBooksResponse) GetNextPageToken() string {
 // Request message for LibraryService.UpdateBook.
 type UpdateBookRequest struct {
 	// The name of the book to update.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The book to update with. The name must match or be empty.
-	Book                 *Book    `protobuf:"bytes,2,opt,name=book" json:"book,omitempty"`
+	Book                 *Book    `protobuf:"bytes,2,opt,name=book,proto3" json:"book,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -677,7 +677,7 @@ func (m *UpdateBookRequest) GetBook() *Book {
 // Request message for LibraryService.DeleteBook.
 type DeleteBookRequest struct {
 	// The name of the book to delete.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -718,9 +718,9 @@ func (m *DeleteBookRequest) GetName() string {
 // to (other_shelf_name).
 type MoveBookRequest struct {
 	// The name of the book to move.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the destination shelf.
-	OtherShelfName       string   `protobuf:"bytes,2,opt,name=other_shelf_name,json=otherShelfName" json:"other_shelf_name,omitempty"`
+	OtherShelfName       string   `protobuf:"bytes,2,opt,name=other_shelf_name,json=otherShelfName,proto3" json:"other_shelf_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -936,8 +936,7 @@ func (c *libraryServiceClient) MoveBook(ctx context.Context, in *MoveBookRequest
 	return out, nil
 }
 
-// Server API for LibraryService service
-
+// LibraryServiceServer is the server API for LibraryService service.
 type LibraryServiceServer interface {
 	// Creates a shelf, and returns the new Shelf.
 	CreateShelf(context.Context, *CreateShelfRequest) (*Shelf, error)
diff --git a/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go b/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go
index 0029c3a8a02ca1ee6b2e7e23149a5057867dfb92..09c077a4094a6ee40ac5af755839d3f84fdd9acd 100644
--- a/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go
+++ b/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go
@@ -57,21 +57,21 @@ func (IndexOperationMetadata_OperationType) EnumDescriptor() ([]byte, []int) {
 // the metadata field of [google.longrunning.Operation][google.longrunning.Operation].
 type IndexOperationMetadata struct {
 	// The time that work began on the operation.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time the operation ended, either successfully or otherwise. Unset if
 	// the operation is still active.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// The index resource that this operation is acting on. For example:
 	// `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
-	Index string `protobuf:"bytes,3,opt,name=index" json:"index,omitempty"`
+	Index string `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"`
 	// The type of index operation.
-	OperationType IndexOperationMetadata_OperationType `protobuf:"varint,4,opt,name=operation_type,json=operationType,enum=google.firestore.admin.v1beta1.IndexOperationMetadata_OperationType" json:"operation_type,omitempty"`
+	OperationType IndexOperationMetadata_OperationType `protobuf:"varint,4,opt,name=operation_type,json=operationType,proto3,enum=google.firestore.admin.v1beta1.IndexOperationMetadata_OperationType" json:"operation_type,omitempty"`
 	// True if the [google.longrunning.Operation] was cancelled. If the
 	// cancellation is in progress, cancelled will be true but
 	// [google.longrunning.Operation.done][google.longrunning.Operation.done] will be false.
-	Cancelled bool `protobuf:"varint,5,opt,name=cancelled" json:"cancelled,omitempty"`
+	Cancelled bool `protobuf:"varint,5,opt,name=cancelled,proto3" json:"cancelled,omitempty"`
 	// Progress of the existing operation, measured in number of documents.
-	DocumentProgress     *Progress `protobuf:"bytes,6,opt,name=document_progress,json=documentProgress" json:"document_progress,omitempty"`
+	DocumentProgress     *Progress `protobuf:"bytes,6,opt,name=document_progress,json=documentProgress,proto3" json:"document_progress,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -147,10 +147,10 @@ func (m *IndexOperationMetadata) GetDocumentProgress() *Progress {
 type Progress struct {
 	// An estimate of how much work has been completed. Note that this may be
 	// greater than `work_estimated`.
-	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted" json:"work_completed,omitempty"`
+	WorkCompleted int64 `protobuf:"varint,1,opt,name=work_completed,json=workCompleted,proto3" json:"work_completed,omitempty"`
 	// An estimate of how much work needs to be performed. Zero if the
 	// work estimate is unavailable. May change as work progresses.
-	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated" json:"work_estimated,omitempty"`
+	WorkEstimated        int64    `protobuf:"varint,2,opt,name=work_estimated,json=workEstimated,proto3" json:"work_estimated,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -198,10 +198,10 @@ func (m *Progress) GetWorkEstimated() int64 {
 type CreateIndexRequest struct {
 	// The name of the database this index will apply to. For example:
 	// `projects/{project_id}/databases/{database_id}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The index to create. The name and state fields are output only and will be
 	// ignored. Certain single field indexes cannot be created or deleted.
-	Index                *Index   `protobuf:"bytes,2,opt,name=index" json:"index,omitempty"`
+	Index                *Index   `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -249,7 +249,7 @@ func (m *CreateIndexRequest) GetIndex() *Index {
 type GetIndexRequest struct {
 	// The name of the index. For example:
 	// `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -290,12 +290,12 @@ func (m *GetIndexRequest) GetName() string {
 type ListIndexesRequest struct {
 	// The database name. For example:
 	// `projects/{project_id}/databases/{database_id}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The standard List page size.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The standard List page token.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -357,7 +357,7 @@ func (m *ListIndexesRequest) GetPageToken() string {
 type DeleteIndexRequest struct {
 	// The index name. For example:
 	// `projects/{project_id}/databases/{database_id}/indexes/{index_id}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -397,9 +397,9 @@ func (m *DeleteIndexRequest) GetName() string {
 // The response for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes].
 type ListIndexesResponse struct {
 	// The indexes.
-	Indexes []*Index `protobuf:"bytes,1,rep,name=indexes" json:"indexes,omitempty"`
+	Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"`
 	// The standard List next-page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -532,8 +532,7 @@ func (c *firestoreAdminClient) DeleteIndex(ctx context.Context, in *DeleteIndexR
 	return out, nil
 }
 
-// Server API for FirestoreAdmin service
-
+// FirestoreAdminServer is the server API for FirestoreAdmin service.
 type FirestoreAdminServer interface {
 	// Creates the specified index.
 	// A newly created index's initial state is `CREATING`. On completion of the
diff --git a/googleapis/firestore/admin/v1beta1/index.pb.go b/googleapis/firestore/admin/v1beta1/index.pb.go
index d10a334459fee0c842f4e0071270d618b5cbe2a9..64d16ec0ed009122a4cf6f0e7307f52b3e2dea81 100644
--- a/googleapis/firestore/admin/v1beta1/index.pb.go
+++ b/googleapis/firestore/admin/v1beta1/index.pb.go
@@ -103,9 +103,9 @@ type IndexField struct {
 	// by [google.firestore.v1beta1.Document.fields][fields].
 	// Special field path `__name__` may be used by itself or at the end of a
 	// path. `__type__` may be used only at the end of path.
-	FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath" json:"field_path,omitempty"`
+	FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"`
 	// The field's mode.
-	Mode                 IndexField_Mode `protobuf:"varint,2,opt,name=mode,enum=google.firestore.admin.v1beta1.IndexField_Mode" json:"mode,omitempty"`
+	Mode                 IndexField_Mode `protobuf:"varint,2,opt,name=mode,proto3,enum=google.firestore.admin.v1beta1.IndexField_Mode" json:"mode,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -153,14 +153,14 @@ func (m *IndexField) GetMode() IndexField_Mode {
 type Index struct {
 	// The resource name of the index.
 	// Output only.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The collection ID to which this index applies. Required.
-	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId" json:"collection_id,omitempty"`
+	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
 	// The fields to index.
-	Fields []*IndexField `protobuf:"bytes,3,rep,name=fields" json:"fields,omitempty"`
+	Fields []*IndexField `protobuf:"bytes,3,rep,name=fields,proto3" json:"fields,omitempty"`
 	// The state of the index.
 	// Output only.
-	State                Index_State `protobuf:"varint,6,opt,name=state,enum=google.firestore.admin.v1beta1.Index_State" json:"state,omitempty"`
+	State                Index_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.firestore.admin.v1beta1.Index_State" json:"state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
diff --git a/googleapis/firestore/v1beta1/common.pb.go b/googleapis/firestore/v1beta1/common.pb.go
index 27eecc261b87ad92ffbe22bb376a3bd42acaa97d..ccf88690f7d1bc16a5b0ff7927825079454a9518 100644
--- a/googleapis/firestore/v1beta1/common.pb.go
+++ b/googleapis/firestore/v1beta1/common.pb.go
@@ -28,7 +28,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type DocumentMask struct {
 	// The list of field paths in the mask. See [Document.fields][google.firestore.v1beta1.Document.fields] for a field
 	// path syntax reference.
-	FieldPaths           []string `protobuf:"bytes,1,rep,name=field_paths,json=fieldPaths" json:"field_paths,omitempty"`
+	FieldPaths           []string `protobuf:"bytes,1,rep,name=field_paths,json=fieldPaths,proto3" json:"field_paths,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -107,10 +107,10 @@ type isPrecondition_ConditionType interface {
 }
 
 type Precondition_Exists struct {
-	Exists bool `protobuf:"varint,1,opt,name=exists,oneof"`
+	Exists bool `protobuf:"varint,1,opt,name=exists,proto3,oneof"`
 }
 type Precondition_UpdateTime struct {
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,oneof"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3,oneof"`
 }
 
 func (*Precondition_Exists) isPrecondition_ConditionType()     {}
@@ -252,10 +252,10 @@ type isTransactionOptions_Mode interface {
 }
 
 type TransactionOptions_ReadOnly_ struct {
-	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,oneof"`
+	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"`
 }
 type TransactionOptions_ReadWrite_ struct {
-	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,3,opt,name=read_write,json=readWrite,oneof"`
+	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,3,opt,name=read_write,json=readWrite,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadOnly_) isTransactionOptions_Mode()  {}
@@ -438,7 +438,7 @@ type isTransactionOptions_ReadOnly_ConsistencySelector interface {
 }
 
 type TransactionOptions_ReadOnly_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadOnly_ReadTime) isTransactionOptions_ReadOnly_ConsistencySelector() {}
diff --git a/googleapis/firestore/v1beta1/document.pb.go b/googleapis/firestore/v1beta1/document.pb.go
index 5fbb4a76f64b53e0fae6e797678c63fee22de998..e9bde698c2a77a35fe370db3bed956f5991ebb7b 100644
--- a/googleapis/firestore/v1beta1/document.pb.go
+++ b/googleapis/firestore/v1beta1/document.pb.go
@@ -28,7 +28,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Document struct {
 	// The resource name of the document, for example
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The document's fields.
 	//
 	// The map keys represent field names.
@@ -53,19 +53,19 @@ type Document struct {
 	// may contain any character. Some characters, including `` ` ``, must be
 	// escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
 	// `` `bak\`tik` `` represents `` bak`tik ``.
-	Fields map[string]*Value `protobuf:"bytes,2,rep,name=fields" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Fields map[string]*Value `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output only. The time at which the document was created.
 	//
 	// This value increases monotonically when a document is deleted then
 	// recreated. It can also be compared to values from other documents and
 	// the `read_time` of a query.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The time at which the document was last changed.
 	//
 	// This value is initally set to the `create_time` then increases
 	// monotonically with each change to the document. It can also be
 	// compared to values from other documents and the `read_time` of a query.
-	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -174,37 +174,37 @@ type isValue_ValueType interface {
 }
 
 type Value_NullValue struct {
-	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,enum=google.protobuf.NullValue,oneof"`
+	NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
 }
 type Value_BooleanValue struct {
-	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,oneof"`
+	BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
 }
 type Value_IntegerValue struct {
-	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,oneof"`
+	IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"`
 }
 type Value_DoubleValue struct {
-	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,oneof"`
+	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
 }
 type Value_TimestampValue struct {
-	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,oneof"`
+	TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
 }
 type Value_StringValue struct {
-	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type Value_BytesValue struct {
 	BytesValue []byte `protobuf:"bytes,18,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
 }
 type Value_ReferenceValue struct {
-	ReferenceValue string `protobuf:"bytes,5,opt,name=reference_value,json=referenceValue,oneof"`
+	ReferenceValue string `protobuf:"bytes,5,opt,name=reference_value,json=referenceValue,proto3,oneof"`
 }
 type Value_GeoPointValue struct {
-	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,oneof"`
+	GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,proto3,oneof"`
 }
 type Value_ArrayValue struct {
-	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,oneof"`
+	ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,proto3,oneof"`
 }
 type Value_MapValue struct {
-	MapValue *MapValue `protobuf:"bytes,6,opt,name=map_value,json=mapValue,oneof"`
+	MapValue *MapValue `protobuf:"bytes,6,opt,name=map_value,json=mapValue,proto3,oneof"`
 }
 
 func (*Value_NullValue) isValue_ValueType()      {}
@@ -523,7 +523,7 @@ func _Value_OneofSizer(msg proto.Message) (n int) {
 // An array value.
 type ArrayValue struct {
 	// Values in the array.
-	Values               []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values               []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -568,7 +568,7 @@ type MapValue struct {
 	// expression `__.*__` are reserved. Reserved field names are forbidden except
 	// in certain documented contexts. The map keys, represented as UTF-8, must
 	// not exceed 1,500 bytes and cannot be empty.
-	Fields               map[string]*Value `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Fields               map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
diff --git a/googleapis/firestore/v1beta1/firestore.pb.go b/googleapis/firestore/v1beta1/firestore.pb.go
index 1812654003ff0b73733a41a8f0e25e7c3b83c121..c953f05eef18e0863073d13906b8600060d3ba59 100644
--- a/googleapis/firestore/v1beta1/firestore.pb.go
+++ b/googleapis/firestore/v1beta1/firestore.pb.go
@@ -80,12 +80,12 @@ func (TargetChange_TargetChangeType) EnumDescriptor() ([]byte, []int) {
 type GetDocumentRequest struct {
 	// The resource name of the Document to get. In the format:
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The fields to return. If not set, returns all fields.
 	//
 	// If the document has a field that is not present in this mask, that field
 	// will not be returned in the response.
-	Mask *DocumentMask `protobuf:"bytes,2,opt,name=mask" json:"mask,omitempty"`
+	Mask *DocumentMask `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"`
 	// The consistency mode for this transaction.
 	// If not set, defaults to strong consistency.
 	//
@@ -130,7 +130,7 @@ type GetDocumentRequest_Transaction struct {
 	Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3,oneof"`
 }
 type GetDocumentRequest_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*GetDocumentRequest_Transaction) isGetDocumentRequest_ConsistencySelector() {}
@@ -249,21 +249,21 @@ type ListDocumentsRequest struct {
 	// For example:
 	// `projects/my-project/databases/my-database/documents` or
 	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The collection ID, relative to `parent`, to list. For example: `chatrooms`
 	// or `messages`.
-	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId" json:"collection_id,omitempty"`
+	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
 	// The maximum number of documents to return.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The `next_page_token` value returned from a previous List request, if any.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The order to sort results by. For example: `priority desc, name`.
-	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// The fields to return. If not set, returns all fields.
 	//
 	// If a document has a field that is not present in this mask, that field
 	// will not be returned in the response.
-	Mask *DocumentMask `protobuf:"bytes,7,opt,name=mask" json:"mask,omitempty"`
+	Mask *DocumentMask `protobuf:"bytes,7,opt,name=mask,proto3" json:"mask,omitempty"`
 	// The consistency mode for this transaction.
 	// If not set, defaults to strong consistency.
 	//
@@ -278,7 +278,7 @@ type ListDocumentsRequest struct {
 	//
 	// Requests with `show_missing` may not specify `where` or
 	// `order_by`.
-	ShowMissing          bool     `protobuf:"varint,12,opt,name=show_missing,json=showMissing" json:"show_missing,omitempty"`
+	ShowMissing          bool     `protobuf:"varint,12,opt,name=show_missing,json=showMissing,proto3" json:"show_missing,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -316,7 +316,7 @@ type ListDocumentsRequest_Transaction struct {
 	Transaction []byte `protobuf:"bytes,8,opt,name=transaction,proto3,oneof"`
 }
 type ListDocumentsRequest_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*ListDocumentsRequest_Transaction) isListDocumentsRequest_ConsistencySelector() {}
@@ -465,9 +465,9 @@ func _ListDocumentsRequest_OneofSizer(msg proto.Message) (n int) {
 // The response for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments].
 type ListDocumentsResponse struct {
 	// The Documents found.
-	Documents []*Document `protobuf:"bytes,1,rep,name=documents" json:"documents,omitempty"`
+	Documents []*Document `protobuf:"bytes,1,rep,name=documents,proto3" json:"documents,omitempty"`
 	// The next page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -516,20 +516,20 @@ type CreateDocumentRequest struct {
 	// The parent resource. For example:
 	// `projects/{project_id}/databases/{database_id}/documents` or
 	// `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The collection ID, relative to `parent`, to list. For example: `chatrooms`.
-	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId" json:"collection_id,omitempty"`
+	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
 	// The client-assigned document ID to use for this document.
 	//
 	// Optional. If not specified, an ID will be assigned by the service.
-	DocumentId string `protobuf:"bytes,3,opt,name=document_id,json=documentId" json:"document_id,omitempty"`
+	DocumentId string `protobuf:"bytes,3,opt,name=document_id,json=documentId,proto3" json:"document_id,omitempty"`
 	// The document to create. `name` must not be set.
-	Document *Document `protobuf:"bytes,4,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,4,opt,name=document,proto3" json:"document,omitempty"`
 	// The fields to return. If not set, returns all fields.
 	//
 	// If the document has a field that is not present in this mask, that field
 	// will not be returned in the response.
-	Mask                 *DocumentMask `protobuf:"bytes,5,opt,name=mask" json:"mask,omitempty"`
+	Mask                 *DocumentMask `protobuf:"bytes,5,opt,name=mask,proto3" json:"mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -598,7 +598,7 @@ func (m *CreateDocumentRequest) GetMask() *DocumentMask {
 type UpdateDocumentRequest struct {
 	// The updated document.
 	// Creates the document if it does not already exist.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The fields to update.
 	// None of the field paths in the mask may contain a reserved name.
 	//
@@ -606,15 +606,15 @@ type UpdateDocumentRequest struct {
 	// mask, they are left unchanged.
 	// Fields referenced in the mask, but not present in the input document, are
 	// deleted from the document on the server.
-	UpdateMask *DocumentMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *DocumentMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// The fields to return. If not set, returns all fields.
 	//
 	// If the document has a field that is not present in this mask, that field
 	// will not be returned in the response.
-	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask" json:"mask,omitempty"`
+	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"`
 	// An optional precondition on the document.
 	// The request will fail if this is set and not met by the target document.
-	CurrentDocument      *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument" json:"current_document,omitempty"`
+	CurrentDocument      *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -676,10 +676,10 @@ func (m *UpdateDocumentRequest) GetCurrentDocument() *Precondition {
 type DeleteDocumentRequest struct {
 	// The resource name of the Document to delete. In the format:
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional precondition on the document.
 	// The request will fail if this is set and not met by the target document.
-	CurrentDocument      *Precondition `protobuf:"bytes,2,opt,name=current_document,json=currentDocument" json:"current_document,omitempty"`
+	CurrentDocument      *Precondition `protobuf:"bytes,2,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -727,17 +727,17 @@ func (m *DeleteDocumentRequest) GetCurrentDocument() *Precondition {
 type BatchGetDocumentsRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The names of the documents to retrieve. In the format:
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
 	// The request will fail if any of the document is not a child resource of the
 	// given `database`. Duplicate names will be elided.
-	Documents []string `protobuf:"bytes,2,rep,name=documents" json:"documents,omitempty"`
+	Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"`
 	// The fields to return. If not set, returns all fields.
 	//
 	// If a document has a field that is not present in this mask, that field will
 	// not be returned in the response.
-	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask" json:"mask,omitempty"`
+	Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"`
 	// The consistency mode for this transaction.
 	// If not set, defaults to strong consistency.
 	//
@@ -783,10 +783,10 @@ type BatchGetDocumentsRequest_Transaction struct {
 	Transaction []byte `protobuf:"bytes,4,opt,name=transaction,proto3,oneof"`
 }
 type BatchGetDocumentsRequest_NewTransaction struct {
-	NewTransaction *TransactionOptions `protobuf:"bytes,5,opt,name=new_transaction,json=newTransaction,oneof"`
+	NewTransaction *TransactionOptions `protobuf:"bytes,5,opt,name=new_transaction,json=newTransaction,proto3,oneof"`
 }
 type BatchGetDocumentsRequest_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*BatchGetDocumentsRequest_Transaction) isBatchGetDocumentsRequest_ConsistencySelector()    {}
@@ -948,7 +948,7 @@ type BatchGetDocumentsResponse struct {
 	// This may be monotically increasing, in this case the previous documents in
 	// the result stream are guaranteed not to have changed between their
 	// read_time and this one.
-	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
+	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -983,10 +983,10 @@ type isBatchGetDocumentsResponse_Result interface {
 }
 
 type BatchGetDocumentsResponse_Found struct {
-	Found *Document `protobuf:"bytes,1,opt,name=found,oneof"`
+	Found *Document `protobuf:"bytes,1,opt,name=found,proto3,oneof"`
 }
 type BatchGetDocumentsResponse_Missing struct {
-	Missing string `protobuf:"bytes,2,opt,name=missing,oneof"`
+	Missing string `protobuf:"bytes,2,opt,name=missing,proto3,oneof"`
 }
 
 func (*BatchGetDocumentsResponse_Found) isBatchGetDocumentsResponse_Result()   {}
@@ -1101,10 +1101,10 @@ func _BatchGetDocumentsResponse_OneofSizer(msg proto.Message) (n int) {
 type BeginTransactionRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The options for the transaction.
 	// Defaults to a read-write transaction.
-	Options              *TransactionOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"`
+	Options              *TransactionOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1192,11 +1192,11 @@ func (m *BeginTransactionResponse) GetTransaction() []byte {
 type CommitRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The writes to apply.
 	//
 	// Always executed atomically and in order.
-	Writes []*Write `protobuf:"bytes,2,rep,name=writes" json:"writes,omitempty"`
+	Writes []*Write `protobuf:"bytes,2,rep,name=writes,proto3" json:"writes,omitempty"`
 	// If set, applies all writes in this transaction, and commits it.
 	Transaction          []byte   `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1255,9 +1255,9 @@ type CommitResponse struct {
 	//
 	// This i-th write result corresponds to the i-th write in the
 	// request.
-	WriteResults []*WriteResult `protobuf:"bytes,1,rep,name=write_results,json=writeResults" json:"write_results,omitempty"`
+	WriteResults []*WriteResult `protobuf:"bytes,1,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"`
 	// The time at which the commit occurred.
-	CommitTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=commit_time,json=commitTime" json:"commit_time,omitempty"`
+	CommitTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1305,7 +1305,7 @@ func (m *CommitResponse) GetCommitTime() *timestamp.Timestamp {
 type RollbackRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The transaction to roll back.
 	Transaction          []byte   `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1359,7 +1359,7 @@ type RunQueryRequest struct {
 	// For example:
 	// `projects/my-project/databases/my-database/documents` or
 	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The query to run.
 	//
 	// Types that are valid to be assigned to QueryType:
@@ -1410,16 +1410,16 @@ type isRunQueryRequest_ConsistencySelector interface {
 }
 
 type RunQueryRequest_StructuredQuery struct {
-	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,oneof"`
+	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"`
 }
 type RunQueryRequest_Transaction struct {
 	Transaction []byte `protobuf:"bytes,5,opt,name=transaction,proto3,oneof"`
 }
 type RunQueryRequest_NewTransaction struct {
-	NewTransaction *TransactionOptions `protobuf:"bytes,6,opt,name=new_transaction,json=newTransaction,oneof"`
+	NewTransaction *TransactionOptions `protobuf:"bytes,6,opt,name=new_transaction,json=newTransaction,proto3,oneof"`
 }
 type RunQueryRequest_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*RunQueryRequest_StructuredQuery) isRunQueryRequest_QueryType()          {}
@@ -1604,7 +1604,7 @@ type RunQueryResponse struct {
 	Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	// A query result.
 	// Not set when reporting partial progress.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The time at which the document was read. This may be monotonically
 	// increasing; in this case, the previous documents in the result stream are
 	// guaranteed not to have changed between their `read_time` and this one.
@@ -1612,10 +1612,10 @@ type RunQueryResponse struct {
 	// If the query returns no results, a response with `read_time` and no
 	// `document` will be sent, and this represents the time at which the query
 	// was run.
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
 	// The number of results that have been skipped due to an offset between
 	// the last response and the current response.
-	SkippedResults       int32    `protobuf:"varint,4,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"`
+	SkippedResults       int32    `protobuf:"varint,4,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1687,18 +1687,18 @@ type WriteRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
 	// This is only required in the first message.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The ID of the write stream to resume.
 	// This may only be set in the first message. When left empty, a new write
 	// stream will be created.
-	StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
+	StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
 	// The writes to apply.
 	//
 	// Always executed atomically and in order.
 	// This must be empty on the first request.
 	// This may be empty on the last request.
 	// This must not be empty on all other requests.
-	Writes []*Write `protobuf:"bytes,3,rep,name=writes" json:"writes,omitempty"`
+	Writes []*Write `protobuf:"bytes,3,rep,name=writes,proto3" json:"writes,omitempty"`
 	// A stream token that was previously sent by the server.
 	//
 	// The client should set this field to the token from the most recent
@@ -1715,7 +1715,7 @@ type WriteRequest struct {
 	// Leave this field unset when creating a new stream.
 	StreamToken []byte `protobuf:"bytes,4,opt,name=stream_token,json=streamToken,proto3" json:"stream_token,omitempty"`
 	// Labels associated with this write request.
-	Labels               map[string]string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1784,7 +1784,7 @@ func (m *WriteRequest) GetLabels() map[string]string {
 type WriteResponse struct {
 	// The ID of the stream.
 	// Only set on the first message, when a new stream was created.
-	StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
+	StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
 	// A token that represents the position of this response in the stream.
 	// This can be used by a client to resume the stream at this point.
 	//
@@ -1794,9 +1794,9 @@ type WriteResponse struct {
 	//
 	// This i-th write result corresponds to the i-th write in the
 	// request.
-	WriteResults []*WriteResult `protobuf:"bytes,3,rep,name=write_results,json=writeResults" json:"write_results,omitempty"`
+	WriteResults []*WriteResult `protobuf:"bytes,3,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"`
 	// The time at which the commit occurred.
-	CommitTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=commit_time,json=commitTime" json:"commit_time,omitempty"`
+	CommitTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1858,7 +1858,7 @@ func (m *WriteResponse) GetCommitTime() *timestamp.Timestamp {
 type ListenRequest struct {
 	// The database name. In the format:
 	// `projects/{project_id}/databases/{database_id}`.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The supported target changes.
 	//
 	// Types that are valid to be assigned to TargetChange:
@@ -1866,7 +1866,7 @@ type ListenRequest struct {
 	//	*ListenRequest_RemoveTarget
 	TargetChange isListenRequest_TargetChange `protobuf_oneof:"target_change"`
 	// Labels associated with this target change.
-	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1901,10 +1901,10 @@ type isListenRequest_TargetChange interface {
 }
 
 type ListenRequest_AddTarget struct {
-	AddTarget *Target `protobuf:"bytes,2,opt,name=add_target,json=addTarget,oneof"`
+	AddTarget *Target `protobuf:"bytes,2,opt,name=add_target,json=addTarget,proto3,oneof"`
 }
 type ListenRequest_RemoveTarget struct {
-	RemoveTarget int32 `protobuf:"varint,3,opt,name=remove_target,json=removeTarget,oneof"`
+	RemoveTarget int32 `protobuf:"varint,3,opt,name=remove_target,json=removeTarget,proto3,oneof"`
 }
 
 func (*ListenRequest_AddTarget) isListenRequest_TargetChange()    {}
@@ -2059,19 +2059,19 @@ type isListenResponse_ResponseType interface {
 }
 
 type ListenResponse_TargetChange struct {
-	TargetChange *TargetChange `protobuf:"bytes,2,opt,name=target_change,json=targetChange,oneof"`
+	TargetChange *TargetChange `protobuf:"bytes,2,opt,name=target_change,json=targetChange,proto3,oneof"`
 }
 type ListenResponse_DocumentChange struct {
-	DocumentChange *DocumentChange `protobuf:"bytes,3,opt,name=document_change,json=documentChange,oneof"`
+	DocumentChange *DocumentChange `protobuf:"bytes,3,opt,name=document_change,json=documentChange,proto3,oneof"`
 }
 type ListenResponse_DocumentDelete struct {
-	DocumentDelete *DocumentDelete `protobuf:"bytes,4,opt,name=document_delete,json=documentDelete,oneof"`
+	DocumentDelete *DocumentDelete `protobuf:"bytes,4,opt,name=document_delete,json=documentDelete,proto3,oneof"`
 }
 type ListenResponse_DocumentRemove struct {
-	DocumentRemove *DocumentRemove `protobuf:"bytes,6,opt,name=document_remove,json=documentRemove,oneof"`
+	DocumentRemove *DocumentRemove `protobuf:"bytes,6,opt,name=document_remove,json=documentRemove,proto3,oneof"`
 }
 type ListenResponse_Filter struct {
-	Filter *ExistenceFilter `protobuf:"bytes,5,opt,name=filter,oneof"`
+	Filter *ExistenceFilter `protobuf:"bytes,5,opt,name=filter,proto3,oneof"`
 }
 
 func (*ListenResponse_TargetChange) isListenResponse_ResponseType()   {}
@@ -2278,9 +2278,9 @@ type Target struct {
 	// client-assigned or be server-assigned in a previous stream. All targets
 	// with client provided IDs must be added before adding a target that needs
 	// a server-assigned id.
-	TargetId int32 `protobuf:"varint,5,opt,name=target_id,json=targetId" json:"target_id,omitempty"`
+	TargetId int32 `protobuf:"varint,5,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
 	// If the target should be removed once it is current and consistent.
-	Once                 bool     `protobuf:"varint,6,opt,name=once" json:"once,omitempty"`
+	Once                 bool     `protobuf:"varint,6,opt,name=once,proto3" json:"once,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2318,16 +2318,16 @@ type isTarget_ResumeType interface {
 }
 
 type Target_Query struct {
-	Query *Target_QueryTarget `protobuf:"bytes,2,opt,name=query,oneof"`
+	Query *Target_QueryTarget `protobuf:"bytes,2,opt,name=query,proto3,oneof"`
 }
 type Target_Documents struct {
-	Documents *Target_DocumentsTarget `protobuf:"bytes,3,opt,name=documents,oneof"`
+	Documents *Target_DocumentsTarget `protobuf:"bytes,3,opt,name=documents,proto3,oneof"`
 }
 type Target_ResumeToken struct {
 	ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3,oneof"`
 }
 type Target_ReadTime struct {
-	ReadTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=read_time,json=readTime,oneof"`
+	ReadTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=read_time,json=readTime,proto3,oneof"`
 }
 
 func (*Target_Query) isTarget_TargetType()       {}
@@ -2516,7 +2516,7 @@ type Target_DocumentsTarget struct {
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
 	// The request will fail if any of the document is not a child resource of
 	// the given `database`. Duplicate names will be elided.
-	Documents            []string `protobuf:"bytes,2,rep,name=documents" json:"documents,omitempty"`
+	Documents            []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2561,7 +2561,7 @@ type Target_QueryTarget struct {
 	// For example:
 	// `projects/my-project/databases/my-database/documents` or
 	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The query to run.
 	//
 	// Types that are valid to be assigned to QueryType:
@@ -2601,7 +2601,7 @@ type isTarget_QueryTarget_QueryType interface {
 }
 
 type Target_QueryTarget_StructuredQuery struct {
-	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,oneof"`
+	StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"`
 }
 
 func (*Target_QueryTarget_StructuredQuery) isTarget_QueryTarget_QueryType() {}
@@ -2685,7 +2685,7 @@ func _Target_QueryTarget_OneofSizer(msg proto.Message) (n int) {
 // Targets being watched have changed.
 type TargetChange struct {
 	// The type of change that occurred.
-	TargetChangeType TargetChange_TargetChangeType `protobuf:"varint,1,opt,name=target_change_type,json=targetChangeType,enum=google.firestore.v1beta1.TargetChange_TargetChangeType" json:"target_change_type,omitempty"`
+	TargetChangeType TargetChange_TargetChangeType `protobuf:"varint,1,opt,name=target_change_type,json=targetChangeType,proto3,enum=google.firestore.v1beta1.TargetChange_TargetChangeType" json:"target_change_type,omitempty"`
 	// The target IDs of targets that have changed.
 	//
 	// If empty, the change applies to all targets.
@@ -2695,9 +2695,9 @@ type TargetChange struct {
 	// associate server-assigned target IDs with added targets.
 	//
 	// For other states, the order of the target IDs is not defined.
-	TargetIds []int32 `protobuf:"varint,2,rep,packed,name=target_ids,json=targetIds" json:"target_ids,omitempty"`
+	TargetIds []int32 `protobuf:"varint,2,rep,packed,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"`
 	// The error that resulted in this change, if applicable.
-	Cause *status.Status `protobuf:"bytes,3,opt,name=cause" json:"cause,omitempty"`
+	Cause *status.Status `protobuf:"bytes,3,opt,name=cause,proto3" json:"cause,omitempty"`
 	// A token that can be used to resume the stream for the given `target_ids`,
 	// or all targets if `target_ids` is empty.
 	//
@@ -2713,7 +2713,7 @@ type TargetChange struct {
 	//
 	// For a given stream, `read_time` is guaranteed to be monotonically
 	// increasing.
-	ReadTime             *timestamp.Timestamp `protobuf:"bytes,6,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
+	ReadTime             *timestamp.Timestamp `protobuf:"bytes,6,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -2784,12 +2784,12 @@ type ListCollectionIdsRequest struct {
 	// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
 	// For example:
 	// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of results to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// A page token. Must be a value from
 	// [ListCollectionIdsResponse][google.firestore.v1beta1.ListCollectionIdsResponse].
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2843,9 +2843,9 @@ func (m *ListCollectionIdsRequest) GetPageToken() string {
 // The response from [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds].
 type ListCollectionIdsResponse struct {
 	// The collection ids.
-	CollectionIds []string `protobuf:"bytes,1,rep,name=collection_ids,json=collectionIds" json:"collection_ids,omitempty"`
+	CollectionIds []string `protobuf:"bytes,1,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"`
 	// A page token that may be used to continue the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3178,8 +3178,7 @@ func (c *firestoreClient) ListCollectionIds(ctx context.Context, in *ListCollect
 	return out, nil
 }
 
-// Server API for Firestore service
-
+// FirestoreServer is the server API for Firestore service.
 type FirestoreServer interface {
 	// Gets a single document.
 	GetDocument(context.Context, *GetDocumentRequest) (*Document, error)
diff --git a/googleapis/firestore/v1beta1/query.pb.go b/googleapis/firestore/v1beta1/query.pb.go
index 1423a08af96ef18f4a11f5396c834fe9d546136f..83362e74c3ed5bded55e71648dd4223d6e699a70 100644
--- a/googleapis/firestore/v1beta1/query.pb.go
+++ b/googleapis/firestore/v1beta1/query.pb.go
@@ -152,11 +152,11 @@ func (StructuredQuery_UnaryFilter_Operator) EnumDescriptor() ([]byte, []int) {
 // A Firestore query.
 type StructuredQuery struct {
 	// The projection to return.
-	Select *StructuredQuery_Projection `protobuf:"bytes,1,opt,name=select" json:"select,omitempty"`
+	Select *StructuredQuery_Projection `protobuf:"bytes,1,opt,name=select,proto3" json:"select,omitempty"`
 	// The collections to query.
-	From []*StructuredQuery_CollectionSelector `protobuf:"bytes,2,rep,name=from" json:"from,omitempty"`
+	From []*StructuredQuery_CollectionSelector `protobuf:"bytes,2,rep,name=from,proto3" json:"from,omitempty"`
 	// The filter to apply.
-	Where *StructuredQuery_Filter `protobuf:"bytes,3,opt,name=where" json:"where,omitempty"`
+	Where *StructuredQuery_Filter `protobuf:"bytes,3,opt,name=where,proto3" json:"where,omitempty"`
 	// The order to apply to the query results.
 	//
 	// Firestore guarantees a stable ordering through the following rules:
@@ -175,21 +175,21 @@ type StructuredQuery struct {
 	//    `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
 	//  * `SELECT * FROM Foo WHERE A > 1` becomes
 	//    `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
-	OrderBy []*StructuredQuery_Order `protobuf:"bytes,4,rep,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy []*StructuredQuery_Order `protobuf:"bytes,4,rep,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// A starting point for the query results.
-	StartAt *Cursor `protobuf:"bytes,7,opt,name=start_at,json=startAt" json:"start_at,omitempty"`
+	StartAt *Cursor `protobuf:"bytes,7,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
 	// A end point for the query results.
-	EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt" json:"end_at,omitempty"`
+	EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"`
 	// The number of results to skip.
 	//
 	// Applies before limit, but after all other constraints. Must be >= 0 if
 	// specified.
-	Offset int32 `protobuf:"varint,6,opt,name=offset" json:"offset,omitempty"`
+	Offset int32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"`
 	// The maximum number of results to return.
 	//
 	// Applies after all other constraints.
 	// Must be >= 0 if specified.
-	Limit                *wrappers.Int32Value `protobuf:"bytes,5,opt,name=limit" json:"limit,omitempty"`
+	Limit                *wrappers.Int32Value `protobuf:"bytes,5,opt,name=limit,proto3" json:"limit,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -279,11 +279,11 @@ func (m *StructuredQuery) GetLimit() *wrappers.Int32Value {
 type StructuredQuery_CollectionSelector struct {
 	// The collection ID.
 	// When set, selects only collections with this ID.
-	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId" json:"collection_id,omitempty"`
+	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
 	// When false, selects only collections that are immediate children of
 	// the `parent` specified in the containing `RunQueryRequest`.
 	// When true, selects all descendant collections.
-	AllDescendants       bool     `protobuf:"varint,3,opt,name=all_descendants,json=allDescendants" json:"all_descendants,omitempty"`
+	AllDescendants       bool     `protobuf:"varint,3,opt,name=all_descendants,json=allDescendants,proto3" json:"all_descendants,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -370,13 +370,13 @@ type isStructuredQuery_Filter_FilterType interface {
 }
 
 type StructuredQuery_Filter_CompositeFilter struct {
-	CompositeFilter *StructuredQuery_CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,oneof"`
+	CompositeFilter *StructuredQuery_CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"`
 }
 type StructuredQuery_Filter_FieldFilter struct {
-	FieldFilter *StructuredQuery_FieldFilter `protobuf:"bytes,2,opt,name=field_filter,json=fieldFilter,oneof"`
+	FieldFilter *StructuredQuery_FieldFilter `protobuf:"bytes,2,opt,name=field_filter,json=fieldFilter,proto3,oneof"`
 }
 type StructuredQuery_Filter_UnaryFilter struct {
-	UnaryFilter *StructuredQuery_UnaryFilter `protobuf:"bytes,3,opt,name=unary_filter,json=unaryFilter,oneof"`
+	UnaryFilter *StructuredQuery_UnaryFilter `protobuf:"bytes,3,opt,name=unary_filter,json=unaryFilter,proto3,oneof"`
 }
 
 func (*StructuredQuery_Filter_CompositeFilter) isStructuredQuery_Filter_FilterType() {}
@@ -507,10 +507,10 @@ func _StructuredQuery_Filter_OneofSizer(msg proto.Message) (n int) {
 // A filter that merges multiple other filters using the given operator.
 type StructuredQuery_CompositeFilter struct {
 	// The operator for combining multiple filters.
-	Op StructuredQuery_CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,enum=google.firestore.v1beta1.StructuredQuery_CompositeFilter_Operator" json:"op,omitempty"`
+	Op StructuredQuery_CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_CompositeFilter_Operator" json:"op,omitempty"`
 	// The list of filters to combine.
 	// Must contain at least one filter.
-	Filters              []*StructuredQuery_Filter `protobuf:"bytes,2,rep,name=filters" json:"filters,omitempty"`
+	Filters              []*StructuredQuery_Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -557,11 +557,11 @@ func (m *StructuredQuery_CompositeFilter) GetFilters() []*StructuredQuery_Filter
 // A filter on a specific field.
 type StructuredQuery_FieldFilter struct {
 	// The field to filter by.
-	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	// The operator to filter by.
-	Op StructuredQuery_FieldFilter_Operator `protobuf:"varint,2,opt,name=op,enum=google.firestore.v1beta1.StructuredQuery_FieldFilter_Operator" json:"op,omitempty"`
+	Op StructuredQuery_FieldFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_FieldFilter_Operator" json:"op,omitempty"`
 	// The value to compare to.
-	Value                *Value   `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
+	Value                *Value   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -615,7 +615,7 @@ func (m *StructuredQuery_FieldFilter) GetValue() *Value {
 // A filter with a single operand.
 type StructuredQuery_UnaryFilter struct {
 	// The unary operator to apply.
-	Op StructuredQuery_UnaryFilter_Operator `protobuf:"varint,1,opt,name=op,enum=google.firestore.v1beta1.StructuredQuery_UnaryFilter_Operator" json:"op,omitempty"`
+	Op StructuredQuery_UnaryFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_UnaryFilter_Operator" json:"op,omitempty"`
 	// The argument to the filter.
 	//
 	// Types that are valid to be assigned to OperandType:
@@ -655,7 +655,7 @@ type isStructuredQuery_UnaryFilter_OperandType interface {
 }
 
 type StructuredQuery_UnaryFilter_Field struct {
-	Field *StructuredQuery_FieldReference `protobuf:"bytes,2,opt,name=field,oneof"`
+	Field *StructuredQuery_FieldReference `protobuf:"bytes,2,opt,name=field,proto3,oneof"`
 }
 
 func (*StructuredQuery_UnaryFilter_Field) isStructuredQuery_UnaryFilter_OperandType() {}
@@ -739,9 +739,9 @@ func _StructuredQuery_UnaryFilter_OneofSizer(msg proto.Message) (n int) {
 // An order on a field.
 type StructuredQuery_Order struct {
 	// The field to order by.
-	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	// The direction to order by. Defaults to `ASCENDING`.
-	Direction            StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,enum=google.firestore.v1beta1.StructuredQuery_Direction" json:"direction,omitempty"`
+	Direction            StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.firestore.v1beta1.StructuredQuery_Direction" json:"direction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -787,7 +787,7 @@ func (m *StructuredQuery_Order) GetDirection() StructuredQuery_Direction {
 
 // A reference to a field, such as `max(messages.time) as max_time`.
 type StructuredQuery_FieldReference struct {
-	FieldPath            string   `protobuf:"bytes,2,opt,name=field_path,json=fieldPath" json:"field_path,omitempty"`
+	FieldPath            string   `protobuf:"bytes,2,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -830,7 +830,7 @@ type StructuredQuery_Projection struct {
 	//
 	// If empty, all fields are returned. To only return the name
 	// of the document, use `['__name__']`.
-	Fields               []*StructuredQuery_FieldReference `protobuf:"bytes,2,rep,name=fields" json:"fields,omitempty"`
+	Fields               []*StructuredQuery_FieldReference `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -873,10 +873,10 @@ type Cursor struct {
 	// the order by clause of a query.
 	//
 	// Can contain fewer values than specified in the order by clause.
-	Values []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	// If the position is just before or just after the given values, relative
 	// to the sort order defined by the query.
-	Before               bool     `protobuf:"varint,2,opt,name=before" json:"before,omitempty"`
+	Before               bool     `protobuf:"varint,2,opt,name=before,proto3" json:"before,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/firestore/v1beta1/write.pb.go b/googleapis/firestore/v1beta1/write.pb.go
index 90cce09fcc29138c4fba6e1e66b5a442ff91f8d7..49615c106eae3de8faec5337529918cdc41daa04 100644
--- a/googleapis/firestore/v1beta1/write.pb.go
+++ b/googleapis/firestore/v1beta1/write.pb.go
@@ -65,11 +65,11 @@ type Write struct {
 	// Fields referenced in the mask, but not present in the input document, are
 	// deleted from the document on the server.
 	// The field paths in this mask must not contain a reserved field name.
-	UpdateMask *DocumentMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *DocumentMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// An optional precondition on the document.
 	//
 	// The write will fail if this is set and not met by the target document.
-	CurrentDocument      *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument" json:"current_document,omitempty"`
+	CurrentDocument      *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -104,13 +104,13 @@ type isWrite_Operation interface {
 }
 
 type Write_Update struct {
-	Update *Document `protobuf:"bytes,1,opt,name=update,oneof"`
+	Update *Document `protobuf:"bytes,1,opt,name=update,proto3,oneof"`
 }
 type Write_Delete struct {
-	Delete string `protobuf:"bytes,2,opt,name=delete,oneof"`
+	Delete string `protobuf:"bytes,2,opt,name=delete,proto3,oneof"`
 }
 type Write_Transform struct {
-	Transform *DocumentTransform `protobuf:"bytes,6,opt,name=transform,oneof"`
+	Transform *DocumentTransform `protobuf:"bytes,6,opt,name=transform,proto3,oneof"`
 }
 
 func (*Write_Update) isWrite_Operation()    {}
@@ -251,11 +251,11 @@ func _Write_OneofSizer(msg proto.Message) (n int) {
 // A transformation of a document.
 type DocumentTransform struct {
 	// The name of the document to transform.
-	Document string `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// The list of transformations to apply to the fields of the document, in
 	// order.
 	// This must not be empty.
-	FieldTransforms      []*DocumentTransform_FieldTransform `protobuf:"bytes,2,rep,name=field_transforms,json=fieldTransforms" json:"field_transforms,omitempty"`
+	FieldTransforms      []*DocumentTransform_FieldTransform `protobuf:"bytes,2,rep,name=field_transforms,json=fieldTransforms,proto3" json:"field_transforms,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
 	XXX_unrecognized     []byte                              `json:"-"`
 	XXX_sizecache        int32                               `json:"-"`
@@ -303,7 +303,7 @@ func (m *DocumentTransform) GetFieldTransforms() []*DocumentTransform_FieldTrans
 type DocumentTransform_FieldTransform struct {
 	// The path of the field. See [Document.fields][google.firestore.v1beta1.Document.fields] for the field path syntax
 	// reference.
-	FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath" json:"field_path,omitempty"`
+	FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"`
 	// The transformation to apply on the field.
 	//
 	// Types that are valid to be assigned to TransformType:
@@ -343,7 +343,7 @@ type isDocumentTransform_FieldTransform_TransformType interface {
 }
 
 type DocumentTransform_FieldTransform_SetToServerValue struct {
-	SetToServerValue DocumentTransform_FieldTransform_ServerValue `protobuf:"varint,2,opt,name=set_to_server_value,json=setToServerValue,enum=google.firestore.v1beta1.DocumentTransform_FieldTransform_ServerValue,oneof"`
+	SetToServerValue DocumentTransform_FieldTransform_ServerValue `protobuf:"varint,2,opt,name=set_to_server_value,json=setToServerValue,proto3,enum=google.firestore.v1beta1.DocumentTransform_FieldTransform_ServerValue,oneof"`
 }
 
 func (*DocumentTransform_FieldTransform_SetToServerValue) isDocumentTransform_FieldTransform_TransformType() {
@@ -427,10 +427,10 @@ type WriteResult struct {
 	//
 	// If the write did not actually change the document, this will be the
 	// previous update_time.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1beta1.DocumentTransform.FieldTransform], in the
 	// same order.
-	TransformResults     []*Value `protobuf:"bytes,2,rep,name=transform_results,json=transformResults" json:"transform_results,omitempty"`
+	TransformResults     []*Value `protobuf:"bytes,2,rep,name=transform_results,json=transformResults,proto3" json:"transform_results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -485,11 +485,11 @@ type DocumentChange struct {
 	// The new state of the [Document][google.firestore.v1beta1.Document].
 	//
 	// If `mask` is set, contains only fields that were updated or added.
-	Document *Document `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// A set of target IDs of targets that match this document.
-	TargetIds []int32 `protobuf:"varint,5,rep,packed,name=target_ids,json=targetIds" json:"target_ids,omitempty"`
+	TargetIds []int32 `protobuf:"varint,5,rep,packed,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"`
 	// A set of target IDs for targets that no longer match this document.
-	RemovedTargetIds     []int32  `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds" json:"removed_target_ids,omitempty"`
+	RemovedTargetIds     []int32  `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -549,13 +549,13 @@ func (m *DocumentChange) GetRemovedTargetIds() []int32 {
 // delete, if multiple targets are affected.
 type DocumentDelete struct {
 	// The resource name of the [Document][google.firestore.v1beta1.Document] that was deleted.
-	Document string `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// A set of target IDs for targets that previously matched this entity.
-	RemovedTargetIds []int32 `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds" json:"removed_target_ids,omitempty"`
+	RemovedTargetIds []int32 `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"`
 	// The read timestamp at which the delete was observed.
 	//
 	// Greater or equal to the `commit_time` of the delete.
-	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
+	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -616,13 +616,13 @@ func (m *DocumentDelete) GetReadTime() *timestamp.Timestamp {
 // write or delete, if multiple targets are affected.
 type DocumentRemove struct {
 	// The resource name of the [Document][google.firestore.v1beta1.Document] that has gone out of view.
-	Document string `protobuf:"bytes,1,opt,name=document" json:"document,omitempty"`
+	Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
 	// A set of target IDs for targets that previously matched this document.
-	RemovedTargetIds []int32 `protobuf:"varint,2,rep,packed,name=removed_target_ids,json=removedTargetIds" json:"removed_target_ids,omitempty"`
+	RemovedTargetIds []int32 `protobuf:"varint,2,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"`
 	// The read timestamp at which the remove was observed.
 	//
 	// Greater or equal to the `commit_time` of the change/delete/remove.
-	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime" json:"read_time,omitempty"`
+	ReadTime             *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -676,12 +676,12 @@ func (m *DocumentRemove) GetReadTime() *timestamp.Timestamp {
 // A digest of all the documents that match a given target.
 type ExistenceFilter struct {
 	// The target ID to which this filter applies.
-	TargetId int32 `protobuf:"varint,1,opt,name=target_id,json=targetId" json:"target_id,omitempty"`
+	TargetId int32 `protobuf:"varint,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
 	// The total count of documents that match [target_id][google.firestore.v1beta1.ExistenceFilter.target_id].
 	//
 	// If different from the count of documents in the client that match, the
 	// client must manually determine which documents no longer match the target.
-	Count                int32    `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
+	Count                int32    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/annotations.pb.go b/googleapis/genomics/v1/annotations.pb.go
index c7b83b42ccb9789fbfce20c02a5d8ef19dc7046c..cd4ff0264941b4698b66d3d0ec43fe28c70cbfda 100644
--- a/googleapis/genomics/v1/annotations.pb.go
+++ b/googleapis/genomics/v1/annotations.pb.go
@@ -258,22 +258,22 @@ func (VariantAnnotation_ClinicalSignificance) EnumDescriptor() ([]byte, []int) {
 // genes from refseq', and 'all variant annotations from ClinVar'.
 type AnnotationSet struct {
 	// The server-generated annotation set ID, unique across all annotation sets.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The dataset to which this annotation set belongs.
-	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The ID of the reference set that defines the coordinate space for this
 	// set's annotations.
-	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// The display name for this annotation set.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The source URI describing the file from which this annotation set was
 	// generated, if any.
-	SourceUri string `protobuf:"bytes,5,opt,name=source_uri,json=sourceUri" json:"source_uri,omitempty"`
+	SourceUri string `protobuf:"bytes,5,opt,name=source_uri,json=sourceUri,proto3" json:"source_uri,omitempty"`
 	// The type of annotations contained within this set.
-	Type AnnotationType `protobuf:"varint,6,opt,name=type,enum=google.genomics.v1.AnnotationType" json:"type,omitempty"`
+	Type AnnotationType `protobuf:"varint,6,opt,name=type,proto3,enum=google.genomics.v1.AnnotationType" json:"type,omitempty"`
 	// 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).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,17,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,17,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -360,34 +360,34 @@ func (m *AnnotationSet) GetInfo() map[string]*_struct.ListValue {
 // `VARIANT`.
 type Annotation struct {
 	// The server-generated annotation ID, unique across all annotations.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The annotation set to which this annotation belongs.
-	AnnotationSetId string `protobuf:"bytes,2,opt,name=annotation_set_id,json=annotationSetId" json:"annotation_set_id,omitempty"`
+	AnnotationSetId string `protobuf:"bytes,2,opt,name=annotation_set_id,json=annotationSetId,proto3" json:"annotation_set_id,omitempty"`
 	// The display name of this annotation.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The ID of the Google Genomics reference associated with this range.
-	ReferenceId string `protobuf:"bytes,4,opt,name=reference_id,json=referenceId" json:"reference_id,omitempty"`
+	ReferenceId string `protobuf:"bytes,4,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"`
 	// The display name corresponding to the reference specified by
 	// `referenceId`, for example `chr1`, `1`, or `chrX`.
-	ReferenceName string `protobuf:"bytes,5,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,5,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The start position of the range on the reference, 0-based inclusive.
-	Start int64 `protobuf:"varint,6,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,6,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive.
-	End int64 `protobuf:"varint,7,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,7,opt,name=end,proto3" json:"end,omitempty"`
 	// 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.
-	ReverseStrand bool `protobuf:"varint,8,opt,name=reverse_strand,json=reverseStrand" json:"reverse_strand,omitempty"`
+	ReverseStrand bool `protobuf:"varint,8,opt,name=reverse_strand,json=reverseStrand,proto3" json:"reverse_strand,omitempty"`
 	// The data type for this annotation. Must match the containing annotation
 	// set's type.
-	Type AnnotationType `protobuf:"varint,9,opt,name=type,enum=google.genomics.v1.AnnotationType" json:"type,omitempty"`
+	Type AnnotationType `protobuf:"varint,9,opt,name=type,proto3,enum=google.genomics.v1.AnnotationType" json:"type,omitempty"`
 	// Types that are valid to be assigned to Value:
 	//	*Annotation_Variant
 	//	*Annotation_Transcript
 	Value isAnnotation_Value `protobuf_oneof:"value"`
 	// 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).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,12,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,12,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -422,10 +422,10 @@ type isAnnotation_Value interface {
 }
 
 type Annotation_Variant struct {
-	Variant *VariantAnnotation `protobuf:"bytes,10,opt,name=variant,oneof"`
+	Variant *VariantAnnotation `protobuf:"bytes,10,opt,name=variant,proto3,oneof"`
 }
 type Annotation_Transcript struct {
-	Transcript *Transcript `protobuf:"bytes,11,opt,name=transcript,oneof"`
+	Transcript *Transcript `protobuf:"bytes,11,opt,name=transcript,proto3,oneof"`
 }
 
 func (*Annotation_Variant) isAnnotation_Value()    {}
@@ -598,27 +598,27 @@ func _Annotation_OneofSizer(msg proto.Message) (n int) {
 
 type VariantAnnotation struct {
 	// Type has been adapted from ClinVar's list of variant types.
-	Type VariantAnnotation_Type `protobuf:"varint,1,opt,name=type,enum=google.genomics.v1.VariantAnnotation_Type" json:"type,omitempty"`
+	Type VariantAnnotation_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.genomics.v1.VariantAnnotation_Type" json:"type,omitempty"`
 	// Effect of the variant on the coding sequence.
-	Effect VariantAnnotation_Effect `protobuf:"varint,2,opt,name=effect,enum=google.genomics.v1.VariantAnnotation_Effect" json:"effect,omitempty"`
+	Effect VariantAnnotation_Effect `protobuf:"varint,2,opt,name=effect,proto3,enum=google.genomics.v1.VariantAnnotation_Effect" json:"effect,omitempty"`
 	// 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.
-	AlternateBases string `protobuf:"bytes,3,opt,name=alternate_bases,json=alternateBases" json:"alternate_bases,omitempty"`
+	AlternateBases string `protobuf:"bytes,3,opt,name=alternate_bases,json=alternateBases,proto3" json:"alternate_bases,omitempty"`
 	// Google annotation ID of the gene affected by this variant. This should
 	// be provided when the variant is created.
-	GeneId string `protobuf:"bytes,4,opt,name=gene_id,json=geneId" json:"gene_id,omitempty"`
+	GeneId string `protobuf:"bytes,4,opt,name=gene_id,json=geneId,proto3" json:"gene_id,omitempty"`
 	// Google annotation IDs of the transcripts affected by this variant. These
 	// should be provided when the variant is created.
-	TranscriptIds []string `protobuf:"bytes,5,rep,name=transcript_ids,json=transcriptIds" json:"transcript_ids,omitempty"`
+	TranscriptIds []string `protobuf:"bytes,5,rep,name=transcript_ids,json=transcriptIds,proto3" json:"transcript_ids,omitempty"`
 	// The set of conditions associated with this variant.
 	// A condition describes the way a variant influences human health.
-	Conditions []*VariantAnnotation_ClinicalCondition `protobuf:"bytes,6,rep,name=conditions" json:"conditions,omitempty"`
+	Conditions []*VariantAnnotation_ClinicalCondition `protobuf:"bytes,6,rep,name=conditions,proto3" json:"conditions,omitempty"`
 	// 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/
-	ClinicalSignificance VariantAnnotation_ClinicalSignificance `protobuf:"varint,7,opt,name=clinical_significance,json=clinicalSignificance,enum=google.genomics.v1.VariantAnnotation_ClinicalSignificance" json:"clinical_significance,omitempty"`
+	ClinicalSignificance VariantAnnotation_ClinicalSignificance `protobuf:"varint,7,opt,name=clinical_significance,json=clinicalSignificance,proto3,enum=google.genomics.v1.VariantAnnotation_ClinicalSignificance" json:"clinical_significance,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                               `json:"-"`
 	XXX_unrecognized     []byte                                 `json:"-"`
 	XXX_sizecache        int32                                  `json:"-"`
@@ -699,15 +699,15 @@ func (m *VariantAnnotation) GetClinicalSignificance() VariantAnnotation_Clinical
 
 type VariantAnnotation_ClinicalCondition struct {
 	// A set of names for the condition.
-	Names []string `protobuf:"bytes,1,rep,name=names" json:"names,omitempty"`
+	Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
 	// The set of external IDs for this condition.
-	ExternalIds []*ExternalId `protobuf:"bytes,2,rep,name=external_ids,json=externalIds" json:"external_ids,omitempty"`
+	ExternalIds []*ExternalId `protobuf:"bytes,2,rep,name=external_ids,json=externalIds,proto3" json:"external_ids,omitempty"`
 	// The MedGen concept id associated with this gene.
 	// Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-	ConceptId string `protobuf:"bytes,3,opt,name=concept_id,json=conceptId" json:"concept_id,omitempty"`
+	ConceptId string `protobuf:"bytes,3,opt,name=concept_id,json=conceptId,proto3" json:"concept_id,omitempty"`
 	// The OMIM id for this condition.
 	// Search for these IDs at http://omim.org/
-	OmimId               string   `protobuf:"bytes,4,opt,name=omim_id,json=omimId" json:"omim_id,omitempty"`
+	OmimId               string   `protobuf:"bytes,4,opt,name=omim_id,json=omimId,proto3" json:"omim_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -769,7 +769,7 @@ func (m *VariantAnnotation_ClinicalCondition) GetOmimId() string {
 // reference genome may be transcribed as RNA.
 type Transcript struct {
 	// The annotation ID of the gene from which this transcript is transcribed.
-	GeneId string `protobuf:"bytes,1,opt,name=gene_id,json=geneId" json:"gene_id,omitempty"`
+	GeneId string `protobuf:"bytes,1,opt,name=gene_id,json=geneId,proto3" json:"gene_id,omitempty"`
 	// The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
 	// this transcript. This field should be unset for genomes where transcript
 	// splicing does not occur, for example prokaryotes.
@@ -784,7 +784,7 @@ type Transcript struct {
 	// to coding DNA sequence.
 	//
 	// Exons are ordered by start position and may not overlap.
-	Exons []*Transcript_Exon `protobuf:"bytes,2,rep,name=exons" json:"exons,omitempty"`
+	Exons []*Transcript_Exon `protobuf:"bytes,2,rep,name=exons,proto3" json:"exons,omitempty"`
 	// 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][google.genomics.v1.Transcript.exons], if any. If there are any
@@ -798,7 +798,7 @@ type Transcript struct {
 	// [exon.frame][google.genomics.v1.Transcript.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.
-	CodingSequence       *Transcript_CodingSequence `protobuf:"bytes,3,opt,name=coding_sequence,json=codingSequence" json:"coding_sequence,omitempty"`
+	CodingSequence       *Transcript_CodingSequence `protobuf:"bytes,3,opt,name=coding_sequence,json=codingSequence,proto3" json:"coding_sequence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -853,11 +853,11 @@ type Transcript_Exon struct {
 	// 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.
-	Start int64 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
 	// 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.
-	End int64 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
 	// 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
@@ -871,7 +871,7 @@ type Transcript_Exon struct {
 	// 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.
-	Frame                *wrappers.Int32Value `protobuf:"bytes,3,opt,name=frame" json:"frame,omitempty"`
+	Frame                *wrappers.Int32Value `protobuf:"bytes,3,opt,name=frame,proto3" json:"frame,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -926,11 +926,11 @@ type Transcript_CodingSequence struct {
 	// 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.
-	Start int64 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
 	// 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.
-	End                  int64    `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
+	End                  int64    `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -976,9 +976,9 @@ func (m *Transcript_CodingSequence) GetEnd() int64 {
 
 type ExternalId struct {
 	// The name of the source of this data.
-	SourceName string `protobuf:"bytes,1,opt,name=source_name,json=sourceName" json:"source_name,omitempty"`
+	SourceName string `protobuf:"bytes,1,opt,name=source_name,json=sourceName,proto3" json:"source_name,omitempty"`
 	// The id used by the source of this data.
-	Id                   string   `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1024,7 +1024,7 @@ func (m *ExternalId) GetId() string {
 
 type CreateAnnotationSetRequest struct {
 	// The annotation set to create.
-	AnnotationSet        *AnnotationSet `protobuf:"bytes,1,opt,name=annotation_set,json=annotationSet" json:"annotation_set,omitempty"`
+	AnnotationSet        *AnnotationSet `protobuf:"bytes,1,opt,name=annotation_set,json=annotationSet,proto3" json:"annotation_set,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1063,7 +1063,7 @@ func (m *CreateAnnotationSetRequest) GetAnnotationSet() *AnnotationSet {
 
 type GetAnnotationSetRequest struct {
 	// The ID of the annotation set to be retrieved.
-	AnnotationSetId      string   `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId" json:"annotation_set_id,omitempty"`
+	AnnotationSetId      string   `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId,proto3" json:"annotation_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1102,15 +1102,15 @@ func (m *GetAnnotationSetRequest) GetAnnotationSetId() string {
 
 type UpdateAnnotationSetRequest struct {
 	// The ID of the annotation set to be updated.
-	AnnotationSetId string `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId" json:"annotation_set_id,omitempty"`
+	AnnotationSetId string `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId,proto3" json:"annotation_set_id,omitempty"`
 	// The new annotation set.
-	AnnotationSet *AnnotationSet `protobuf:"bytes,2,opt,name=annotation_set,json=annotationSet" json:"annotation_set,omitempty"`
+	AnnotationSet *AnnotationSet `protobuf:"bytes,2,opt,name=annotation_set,json=annotationSet,proto3" json:"annotation_set,omitempty"`
 	// An optional mask specifying which fields to update. Mutable fields are
 	// [name][google.genomics.v1.AnnotationSet.name],
 	// [source_uri][google.genomics.v1.AnnotationSet.source_uri], and
 	// [info][google.genomics.v1.AnnotationSet.info]. If unspecified, all
 	// mutable fields will be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1163,7 +1163,7 @@ func (m *UpdateAnnotationSetRequest) GetUpdateMask() *field_mask.FieldMask {
 
 type DeleteAnnotationSetRequest struct {
 	// The ID of the annotation set to be deleted.
-	AnnotationSetId      string   `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId" json:"annotation_set_id,omitempty"`
+	AnnotationSetId      string   `protobuf:"bytes,1,opt,name=annotation_set_id,json=annotationSetId,proto3" json:"annotation_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1203,23 +1203,23 @@ func (m *DeleteAnnotationSetRequest) GetAnnotationSetId() string {
 type SearchAnnotationSetsRequest struct {
 	// Required. The dataset IDs to search within. Caller must have `READ` access
 	// to these datasets.
-	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds" json:"dataset_ids,omitempty"`
+	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds,proto3" json:"dataset_ids,omitempty"`
 	// If specified, only annotation sets associated with the given reference set
 	// are returned.
-	ReferenceSetId string `protobuf:"bytes,2,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,2,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// Only return annotations sets for which a substring of the name matches this
 	// string (case insensitive).
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// If specified, only annotation sets that have any of these types are
 	// returned.
-	Types []AnnotationType `protobuf:"varint,4,rep,packed,name=types,enum=google.genomics.v1.AnnotationType" json:"types,omitempty"`
+	Types []AnnotationType `protobuf:"varint,4,rep,packed,name=types,proto3,enum=google.genomics.v1.AnnotationType" json:"types,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 128. The maximum value is 1024.
-	PageSize             int32    `protobuf:"varint,6,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,6,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1293,11 +1293,11 @@ func (m *SearchAnnotationSetsRequest) GetPageSize() int32 {
 
 type SearchAnnotationSetsResponse struct {
 	// The matching annotation sets.
-	AnnotationSets []*AnnotationSet `protobuf:"bytes,1,rep,name=annotation_sets,json=annotationSets" json:"annotation_sets,omitempty"`
+	AnnotationSets []*AnnotationSet `protobuf:"bytes,1,rep,name=annotation_sets,json=annotationSets,proto3" json:"annotation_sets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1343,7 +1343,7 @@ func (m *SearchAnnotationSetsResponse) GetNextPageToken() string {
 
 type CreateAnnotationRequest struct {
 	// The annotation to be created.
-	Annotation           *Annotation `protobuf:"bytes,1,opt,name=annotation" json:"annotation,omitempty"`
+	Annotation           *Annotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1383,7 +1383,7 @@ func (m *CreateAnnotationRequest) GetAnnotation() *Annotation {
 type BatchCreateAnnotationsRequest struct {
 	// The annotations to be created. At most 4096 can be specified in a single
 	// request.
-	Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations" json:"annotations,omitempty"`
+	Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"`
 	// 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
@@ -1391,7 +1391,7 @@ type BatchCreateAnnotationsRequest struct {
 	// 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.
-	RequestId            string   `protobuf:"bytes,2,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1438,7 +1438,7 @@ func (m *BatchCreateAnnotationsRequest) GetRequestId() string {
 type BatchCreateAnnotationsResponse struct {
 	// The resulting per-annotation entries, ordered consistently with the
 	// original request.
-	Entries              []*BatchCreateAnnotationsResponse_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
+	Entries              []*BatchCreateAnnotationsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
 	XXX_unrecognized     []byte                                  `json:"-"`
 	XXX_sizecache        int32                                   `json:"-"`
@@ -1477,9 +1477,9 @@ func (m *BatchCreateAnnotationsResponse) GetEntries() []*BatchCreateAnnotationsR
 
 type BatchCreateAnnotationsResponse_Entry struct {
 	// The creation status.
-	Status *status.Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
 	// The created annotation, if creation was successful.
-	Annotation           *Annotation `protobuf:"bytes,2,opt,name=annotation" json:"annotation,omitempty"`
+	Annotation           *Annotation `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1525,7 +1525,7 @@ func (m *BatchCreateAnnotationsResponse_Entry) GetAnnotation() *Annotation {
 
 type GetAnnotationRequest struct {
 	// The ID of the annotation to be retrieved.
-	AnnotationId         string   `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId" json:"annotation_id,omitempty"`
+	AnnotationId         string   `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1564,16 +1564,16 @@ func (m *GetAnnotationRequest) GetAnnotationId() string {
 
 type UpdateAnnotationRequest struct {
 	// The ID of the annotation to be updated.
-	AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId" json:"annotation_id,omitempty"`
+	AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"`
 	// The new annotation.
-	Annotation *Annotation `protobuf:"bytes,2,opt,name=annotation" json:"annotation,omitempty"`
+	Annotation *Annotation `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"`
 	// An optional mask specifying which fields to update. Mutable fields are
 	// [name][google.genomics.v1.Annotation.name],
 	// [variant][google.genomics.v1.Annotation.variant],
 	// [transcript][google.genomics.v1.Annotation.transcript], and
 	// [info][google.genomics.v1.Annotation.info]. If unspecified, all mutable
 	// fields will be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1626,7 +1626,7 @@ func (m *UpdateAnnotationRequest) GetUpdateMask() *field_mask.FieldMask {
 
 type DeleteAnnotationRequest struct {
 	// The ID of the annotation to be deleted.
-	AnnotationId         string   `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId" json:"annotation_id,omitempty"`
+	AnnotationId         string   `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1667,7 +1667,7 @@ type SearchAnnotationsRequest struct {
 	// 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.
-	AnnotationSetIds []string `protobuf:"bytes,1,rep,name=annotation_set_ids,json=annotationSetIds" json:"annotation_set_ids,omitempty"`
+	AnnotationSetIds []string `protobuf:"bytes,1,rep,name=annotation_set_ids,json=annotationSetIds,proto3" json:"annotation_set_ids,omitempty"`
 	// Required. `reference_id` or `reference_name` must be set.
 	//
 	// Types that are valid to be assigned to Reference:
@@ -1679,19 +1679,19 @@ type SearchAnnotationsRequest struct {
 	// [referenceId][google.genomics.v1.SearchAnnotationsRequest.reference_id] or
 	// [referenceName][google.genomics.v1.SearchAnnotationsRequest.reference_name]
 	// must be specified. Defaults to 0.
-	Start int64 `protobuf:"varint,4,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive. If
 	// [referenceId][google.genomics.v1.SearchAnnotationsRequest.reference_id] or
 	// [referenceName][google.genomics.v1.SearchAnnotationsRequest.reference_name]
 	// must be specified, Defaults to the length of the reference.
-	End int64 `protobuf:"varint,5,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,5,opt,name=end,proto3" json:"end,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 256. The maximum value is 2048.
-	PageSize             int32    `protobuf:"varint,7,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,7,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1726,10 +1726,10 @@ type isSearchAnnotationsRequest_Reference interface {
 }
 
 type SearchAnnotationsRequest_ReferenceId struct {
-	ReferenceId string `protobuf:"bytes,2,opt,name=reference_id,json=referenceId,oneof"`
+	ReferenceId string `protobuf:"bytes,2,opt,name=reference_id,json=referenceId,proto3,oneof"`
 }
 type SearchAnnotationsRequest_ReferenceName struct {
-	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName,oneof"`
+	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName,proto3,oneof"`
 }
 
 func (*SearchAnnotationsRequest_ReferenceId) isSearchAnnotationsRequest_Reference()   {}
@@ -1859,11 +1859,11 @@ func _SearchAnnotationsRequest_OneofSizer(msg proto.Message) (n int) {
 
 type SearchAnnotationsResponse struct {
 	// The matching annotations.
-	Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations" json:"annotations,omitempty"`
+	Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2142,8 +2142,7 @@ func (c *annotationServiceV1Client) SearchAnnotations(ctx context.Context, in *S
 	return out, nil
 }
 
-// Server API for AnnotationServiceV1 service
-
+// AnnotationServiceV1Server is the server API for AnnotationServiceV1 service.
 type AnnotationServiceV1Server interface {
 	// Creates a new annotation set. Caller must have WRITE permission for the
 	// associated dataset.
diff --git a/googleapis/genomics/v1/cigar.pb.go b/googleapis/genomics/v1/cigar.pb.go
index baa71743b6d20e7c1bda2bd8e73aed4c272df083..1f346b3002d391f8aa1425dad176efc78bfdaabb 100644
--- a/googleapis/genomics/v1/cigar.pb.go
+++ b/googleapis/genomics/v1/cigar.pb.go
@@ -105,14 +105,14 @@ func (CigarUnit_Operation) EnumDescriptor() ([]byte, []int) {
 
 // A single CIGAR operation.
 type CigarUnit struct {
-	Operation CigarUnit_Operation `protobuf:"varint,1,opt,name=operation,enum=google.genomics.v1.CigarUnit_Operation" json:"operation,omitempty"`
+	Operation CigarUnit_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=google.genomics.v1.CigarUnit_Operation" json:"operation,omitempty"`
 	// The number of genomic bases that the operation runs for. Required.
-	OperationLength int64 `protobuf:"varint,2,opt,name=operation_length,json=operationLength" json:"operation_length,omitempty"`
+	OperationLength int64 `protobuf:"varint,2,opt,name=operation_length,json=operationLength,proto3" json:"operation_length,omitempty"`
 	// `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.
-	ReferenceSequence    string   `protobuf:"bytes,3,opt,name=reference_sequence,json=referenceSequence" json:"reference_sequence,omitempty"`
+	ReferenceSequence    string   `protobuf:"bytes,3,opt,name=reference_sequence,json=referenceSequence,proto3" json:"reference_sequence,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/datasets.pb.go b/googleapis/genomics/v1/datasets.pb.go
index ac042278f5ec928ec86f3e7f7e96b30eb8e279a8..b3ad79a4ee3515af56f1a2c123abbded6b710efe 100644
--- a/googleapis/genomics/v1/datasets.pb.go
+++ b/googleapis/genomics/v1/datasets.pb.go
@@ -34,13 +34,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type Dataset struct {
 	// The server-generated dataset ID, unique across all datasets.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The Google Cloud project ID that this dataset belongs to.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The dataset name.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The time this dataset was created, in seconds from the epoch.
-	CreateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime           *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -101,14 +101,14 @@ func (m *Dataset) GetCreateTime() *timestamp.Timestamp {
 // The dataset list request.
 type ListDatasetsRequest struct {
 	// Required. The Google Cloud project ID to list datasets for.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 50. The maximum value is 1024.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -162,11 +162,11 @@ func (m *ListDatasetsRequest) GetPageToken() string {
 // The dataset list response.
 type ListDatasetsResponse struct {
 	// The list of matching Datasets.
-	Datasets []*Dataset `protobuf:"bytes,1,rep,name=datasets" json:"datasets,omitempty"`
+	Datasets []*Dataset `protobuf:"bytes,1,rep,name=datasets,proto3" json:"datasets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -212,7 +212,7 @@ func (m *ListDatasetsResponse) GetNextPageToken() string {
 
 type CreateDatasetRequest struct {
 	// The dataset to be created. Must contain projectId and name.
-	Dataset              *Dataset `protobuf:"bytes,1,opt,name=dataset" json:"dataset,omitempty"`
+	Dataset              *Dataset `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -251,14 +251,14 @@ func (m *CreateDatasetRequest) GetDataset() *Dataset {
 
 type UpdateDatasetRequest struct {
 	// The ID of the dataset to be updated.
-	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The new dataset data.
-	Dataset *Dataset `protobuf:"bytes,2,opt,name=dataset" json:"dataset,omitempty"`
+	Dataset *Dataset `protobuf:"bytes,2,opt,name=dataset,proto3" json:"dataset,omitempty"`
 	// An optional mask specifying which fields to update. At this time, the only
 	// mutable field is [name][google.genomics.v1.Dataset.name]. The only
 	// acceptable value is "name". If unspecified, all mutable fields will be
 	// updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -311,7 +311,7 @@ func (m *UpdateDatasetRequest) GetUpdateMask() *field_mask.FieldMask {
 
 type DeleteDatasetRequest struct {
 	// The ID of the dataset to be deleted.
-	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -350,7 +350,7 @@ func (m *DeleteDatasetRequest) GetDatasetId() string {
 
 type UndeleteDatasetRequest struct {
 	// The ID of the dataset to be undeleted.
-	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -389,7 +389,7 @@ func (m *UndeleteDatasetRequest) GetDatasetId() string {
 
 type GetDatasetRequest struct {
 	// The ID of the dataset.
-	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId            string   `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -613,8 +613,7 @@ func (c *datasetServiceV1Client) TestIamPermissions(ctx context.Context, in *v1.
 	return out, nil
 }
 
-// Server API for DatasetServiceV1 service
-
+// DatasetServiceV1Server is the server API for DatasetServiceV1 service.
 type DatasetServiceV1Server interface {
 	// Lists datasets within a project.
 	//
diff --git a/googleapis/genomics/v1/operations.pb.go b/googleapis/genomics/v1/operations.pb.go
index 78ef44cdaa67c003a3daf8722906e1833d30a6de..78c85fe4c8cc348f446fb7553f8835c4fc17d6ae 100644
--- a/googleapis/genomics/v1/operations.pb.go
+++ b/googleapis/genomics/v1/operations.pb.go
@@ -24,29 +24,29 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Metadata describing an [Operation][google.longrunning.Operation].
 type OperationMetadata struct {
 	// The Google Cloud Project in which the job is scoped.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The time at which the job was submitted to the Genomics service.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The time at which the job began to run.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time at which the job stopped running.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// The original request that started the operation. Note that this will be in
 	// current version of the API. If the operation was started with v1beta2 API
 	// and a GetOperation is performed on v1 API, a v1 request will be returned.
-	Request *any.Any `protobuf:"bytes,5,opt,name=request" json:"request,omitempty"`
+	Request *any.Any `protobuf:"bytes,5,opt,name=request,proto3" json:"request,omitempty"`
 	// Optional event messages that were generated during the job's execution.
 	// This also contains any warnings that were generated during import
 	// or export.
-	Events []*OperationEvent `protobuf:"bytes,6,rep,name=events" json:"events,omitempty"`
+	Events []*OperationEvent `protobuf:"bytes,6,rep,name=events,proto3" json:"events,omitempty"`
 	// This field is deprecated. Use `labels` instead. Optionally provided by the
 	// caller when submitting the request that creates the operation.
-	ClientId string `protobuf:"bytes,7,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
+	ClientId string `protobuf:"bytes,7,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
 	// Runtime metadata on this Operation.
-	RuntimeMetadata *any.Any `protobuf:"bytes,8,opt,name=runtime_metadata,json=runtimeMetadata" json:"runtime_metadata,omitempty"`
+	RuntimeMetadata *any.Any `protobuf:"bytes,8,opt,name=runtime_metadata,json=runtimeMetadata,proto3" json:"runtime_metadata,omitempty"`
 	// Optionally provided by the caller when submitting the request that creates
 	// the operation.
-	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -142,12 +142,12 @@ func (m *OperationMetadata) GetLabels() map[string]string {
 // An event that occurred during an [Operation][google.longrunning.Operation].
 type OperationEvent struct {
 	// Optional time of when event started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Optional time of when event finished. An event can have a start time and no
 	// finish time. If an event has a finish time, there must be a start time.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Required description of event.
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/position.pb.go b/googleapis/genomics/v1/position.pb.go
index e9ef3b3000ab0adfc5476137e755d02cf01a4fb3..61d024c940c608fed37be382d86eee352e8dd38d 100644
--- a/googleapis/genomics/v1/position.pb.go
+++ b/googleapis/genomics/v1/position.pb.go
@@ -25,12 +25,12 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // determination of forward or reverse strand.
 type Position struct {
 	// The name of the reference in whatever reference set is being used.
-	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The 0-based offset from the start of the forward strand for that reference.
-	Position int64 `protobuf:"varint,2,opt,name=position" json:"position,omitempty"`
+	Position int64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"`
 	// Whether this position is on the reverse strand, as opposed to the forward
 	// strand.
-	ReverseStrand        bool     `protobuf:"varint,3,opt,name=reverse_strand,json=reverseStrand" json:"reverse_strand,omitempty"`
+	ReverseStrand        bool     `protobuf:"varint,3,opt,name=reverse_strand,json=reverseStrand,proto3" json:"reverse_strand,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/range.pb.go b/googleapis/genomics/v1/range.pb.go
index 35d73ec171ac6e1766b2d75a03c7c7dfd620057e..c4d22fb95c90e2e02d1e20b2f10ecfb3210e3e10 100644
--- a/googleapis/genomics/v1/range.pb.go
+++ b/googleapis/genomics/v1/range.pb.go
@@ -23,11 +23,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Range struct {
 	// The reference sequence name, for example `chr1`,
 	// `1`, or `chrX`.
-	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The start position of the range on the reference, 0-based inclusive.
-	Start int64 `protobuf:"varint,2,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive.
-	End                  int64    `protobuf:"varint,3,opt,name=end" json:"end,omitempty"`
+	End                  int64    `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/readalignment.pb.go b/googleapis/genomics/v1/readalignment.pb.go
index 78ed325e75ec7e38eba59c026038ee489674aeae..3f615fa483c54ef93254ddb408e9da4f101c58b5 100644
--- a/googleapis/genomics/v1/readalignment.pb.go
+++ b/googleapis/genomics/v1/readalignment.pb.go
@@ -24,16 +24,16 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // mapped position and local alignment of the read to the reference.
 type LinearAlignment struct {
 	// The position of this alignment.
-	Position *Position `protobuf:"bytes,1,opt,name=position" json:"position,omitempty"`
+	Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"`
 	// 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.
-	MappingQuality int32 `protobuf:"varint,2,opt,name=mapping_quality,json=mappingQuality" json:"mapping_quality,omitempty"`
+	MappingQuality int32 `protobuf:"varint,2,opt,name=mapping_quality,json=mappingQuality,proto3" json:"mapping_quality,omitempty"`
 	// Represents the local alignment of this sequence (alignment matches, indels,
 	// etc) against the reference.
-	Cigar                []*CigarUnit `protobuf:"bytes,3,rep,name=cigar" json:"cigar,omitempty"`
+	Cigar                []*CigarUnit `protobuf:"bytes,3,rep,name=cigar,proto3" json:"cigar,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -169,42 +169,42 @@ func (m *LinearAlignment) GetCigar() []*CigarUnit {
 type Read struct {
 	// The server-generated read ID, unique across all reads. This is different
 	// from the `fragmentName`.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The ID of the read group this read belongs to. A read belongs to exactly
 	// one read group. This is a server-generated ID which is distinct from SAM's
 	// RG tag (for that value, see
 	// [ReadGroup.name][google.genomics.v1.ReadGroup.name]).
-	ReadGroupId string `protobuf:"bytes,2,opt,name=read_group_id,json=readGroupId" json:"read_group_id,omitempty"`
+	ReadGroupId string `protobuf:"bytes,2,opt,name=read_group_id,json=readGroupId,proto3" json:"read_group_id,omitempty"`
 	// The ID of the read group set this read belongs to. A read belongs to
 	// exactly one read group set.
-	ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	// The fragment name. Equivalent to QNAME (query template name) in SAM.
-	FragmentName string `protobuf:"bytes,4,opt,name=fragment_name,json=fragmentName" json:"fragment_name,omitempty"`
+	FragmentName string `protobuf:"bytes,4,opt,name=fragment_name,json=fragmentName,proto3" json:"fragment_name,omitempty"`
 	// The orientation and the distance between reads from the fragment are
 	// consistent with the sequencing protocol (SAM flag 0x2).
-	ProperPlacement bool `protobuf:"varint,5,opt,name=proper_placement,json=properPlacement" json:"proper_placement,omitempty"`
+	ProperPlacement bool `protobuf:"varint,5,opt,name=proper_placement,json=properPlacement,proto3" json:"proper_placement,omitempty"`
 	// The fragment is a PCR or optical duplicate (SAM flag 0x400).
-	DuplicateFragment bool `protobuf:"varint,6,opt,name=duplicate_fragment,json=duplicateFragment" json:"duplicate_fragment,omitempty"`
+	DuplicateFragment bool `protobuf:"varint,6,opt,name=duplicate_fragment,json=duplicateFragment,proto3" json:"duplicate_fragment,omitempty"`
 	// The observed length of the fragment, equivalent to TLEN in SAM.
-	FragmentLength int32 `protobuf:"varint,7,opt,name=fragment_length,json=fragmentLength" json:"fragment_length,omitempty"`
+	FragmentLength int32 `protobuf:"varint,7,opt,name=fragment_length,json=fragmentLength,proto3" json:"fragment_length,omitempty"`
 	// The read number in sequencing. 0-based and less than numberReads. This
 	// field replaces SAM flag 0x40 and 0x80.
-	ReadNumber int32 `protobuf:"varint,8,opt,name=read_number,json=readNumber" json:"read_number,omitempty"`
+	ReadNumber int32 `protobuf:"varint,8,opt,name=read_number,json=readNumber,proto3" json:"read_number,omitempty"`
 	// The number of reads in the fragment (extension to SAM flag 0x1).
-	NumberReads int32 `protobuf:"varint,9,opt,name=number_reads,json=numberReads" json:"number_reads,omitempty"`
+	NumberReads int32 `protobuf:"varint,9,opt,name=number_reads,json=numberReads,proto3" json:"number_reads,omitempty"`
 	// Whether this read did not pass filters, such as platform or vendor quality
 	// controls (SAM flag 0x200).
-	FailedVendorQualityChecks bool `protobuf:"varint,10,opt,name=failed_vendor_quality_checks,json=failedVendorQualityChecks" json:"failed_vendor_quality_checks,omitempty"`
+	FailedVendorQualityChecks bool `protobuf:"varint,10,opt,name=failed_vendor_quality_checks,json=failedVendorQualityChecks,proto3" json:"failed_vendor_quality_checks,omitempty"`
 	// The linear alignment for this alignment record. This field is null for
 	// unmapped reads.
-	Alignment *LinearAlignment `protobuf:"bytes,11,opt,name=alignment" json:"alignment,omitempty"`
+	Alignment *LinearAlignment `protobuf:"bytes,11,opt,name=alignment,proto3" json:"alignment,omitempty"`
 	// 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.
-	SecondaryAlignment bool `protobuf:"varint,12,opt,name=secondary_alignment,json=secondaryAlignment" json:"secondary_alignment,omitempty"`
+	SecondaryAlignment bool `protobuf:"varint,12,opt,name=secondary_alignment,json=secondaryAlignment,proto3" json:"secondary_alignment,omitempty"`
 	// 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
@@ -216,7 +216,7 @@ type Read struct {
 	// will be hard clipped. The `alignedSequence` and
 	// `alignedQuality` fields in the alignment record will only
 	// represent the bases for its respective linear alignment.
-	SupplementaryAlignment bool `protobuf:"varint,13,opt,name=supplementary_alignment,json=supplementaryAlignment" json:"supplementary_alignment,omitempty"`
+	SupplementaryAlignment bool `protobuf:"varint,13,opt,name=supplementary_alignment,json=supplementaryAlignment,proto3" json:"supplementary_alignment,omitempty"`
 	// 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
@@ -224,7 +224,7 @@ type Read struct {
 	// 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.
-	AlignedSequence string `protobuf:"bytes,14,opt,name=aligned_sequence,json=alignedSequence" json:"aligned_sequence,omitempty"`
+	AlignedSequence string `protobuf:"bytes,14,opt,name=aligned_sequence,json=alignedSequence,proto3" json:"aligned_sequence,omitempty"`
 	// 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
@@ -232,14 +232,14 @@ type Read struct {
 	// 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.
-	AlignedQuality []int32 `protobuf:"varint,15,rep,packed,name=aligned_quality,json=alignedQuality" json:"aligned_quality,omitempty"`
+	AlignedQuality []int32 `protobuf:"varint,15,rep,packed,name=aligned_quality,json=alignedQuality,proto3" json:"aligned_quality,omitempty"`
 	// The mapping of the primary alignment of the
 	// `(readNumber+1)%numberReads` read in the fragment. It replaces
 	// mate position and mate strand in SAM.
-	NextMatePosition *Position `protobuf:"bytes,16,opt,name=next_mate_position,json=nextMatePosition" json:"next_mate_position,omitempty"`
+	NextMatePosition *Position `protobuf:"bytes,16,opt,name=next_mate_position,json=nextMatePosition,proto3" json:"next_mate_position,omitempty"`
 	// 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).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,17,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,17,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
diff --git a/googleapis/genomics/v1/readgroup.pb.go b/googleapis/genomics/v1/readgroup.pb.go
index 22db0f91e68b4fc67cf47883608292a6f201c8fb..a047f69808570934c2e1044d8ac98c687c922e37 100644
--- a/googleapis/genomics/v1/readgroup.pb.go
+++ b/googleapis/genomics/v1/readgroup.pb.go
@@ -25,30 +25,30 @@ type ReadGroup struct {
 	// The server-generated read group ID, unique for all read groups.
 	// Note: This is different than the @RG ID field in the SAM spec. For that
 	// value, see [name][google.genomics.v1.ReadGroup.name].
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The dataset to which this read group belongs.
-	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The read group name. This corresponds to the @RG ID field in the SAM spec.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// A free-form text description of this read group.
-	Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 	// A client-supplied sample identifier for the reads in this read group.
-	SampleId string `protobuf:"bytes,5,opt,name=sample_id,json=sampleId" json:"sample_id,omitempty"`
+	SampleId string `protobuf:"bytes,5,opt,name=sample_id,json=sampleId,proto3" json:"sample_id,omitempty"`
 	// The experiment used to generate this read group.
-	Experiment *ReadGroup_Experiment `protobuf:"bytes,6,opt,name=experiment" json:"experiment,omitempty"`
+	Experiment *ReadGroup_Experiment `protobuf:"bytes,6,opt,name=experiment,proto3" json:"experiment,omitempty"`
 	// 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.
-	PredictedInsertSize int32 `protobuf:"varint,7,opt,name=predicted_insert_size,json=predictedInsertSize" json:"predicted_insert_size,omitempty"`
+	PredictedInsertSize int32 `protobuf:"varint,7,opt,name=predicted_insert_size,json=predictedInsertSize,proto3" json:"predicted_insert_size,omitempty"`
 	// 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.
-	Programs []*ReadGroup_Program `protobuf:"bytes,10,rep,name=programs" json:"programs,omitempty"`
+	Programs []*ReadGroup_Program `protobuf:"bytes,10,rep,name=programs,proto3" json:"programs,omitempty"`
 	// The reference set the reads in this read group are aligned to.
-	ReferenceSetId string `protobuf:"bytes,11,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,11,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// A map of additional read group information. This must be of the form
 	// map<string, string[]> (string key mapping to a list of string values).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,12,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,12,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -153,16 +153,16 @@ type ReadGroup_Experiment struct {
 	// fragments which have been prepared for sequencing from a sample. This
 	// field is important for quality control as error or bias can be introduced
 	// during sample preparation.
-	LibraryId string `protobuf:"bytes,1,opt,name=library_id,json=libraryId" json:"library_id,omitempty"`
+	LibraryId string `protobuf:"bytes,1,opt,name=library_id,json=libraryId,proto3" json:"library_id,omitempty"`
 	// The platform unit used as part of this experiment, for example
 	// flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
 	// @RG PU field in the SAM spec.
-	PlatformUnit string `protobuf:"bytes,2,opt,name=platform_unit,json=platformUnit" json:"platform_unit,omitempty"`
+	PlatformUnit string `protobuf:"bytes,2,opt,name=platform_unit,json=platformUnit,proto3" json:"platform_unit,omitempty"`
 	// The sequencing center used as part of this experiment.
-	SequencingCenter string `protobuf:"bytes,3,opt,name=sequencing_center,json=sequencingCenter" json:"sequencing_center,omitempty"`
+	SequencingCenter string `protobuf:"bytes,3,opt,name=sequencing_center,json=sequencingCenter,proto3" json:"sequencing_center,omitempty"`
 	// The instrument model used as part of this experiment. This maps to
 	// sequencing technology in the SAM spec.
-	InstrumentModel      string   `protobuf:"bytes,4,opt,name=instrument_model,json=instrumentModel" json:"instrument_model,omitempty"`
+	InstrumentModel      string   `protobuf:"bytes,4,opt,name=instrument_model,json=instrumentModel,proto3" json:"instrument_model,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -222,17 +222,17 @@ func (m *ReadGroup_Experiment) GetInstrumentModel() string {
 
 type ReadGroup_Program struct {
 	// The command line used to run this program.
-	CommandLine string `protobuf:"bytes,1,opt,name=command_line,json=commandLine" json:"command_line,omitempty"`
+	CommandLine string `protobuf:"bytes,1,opt,name=command_line,json=commandLine,proto3" json:"command_line,omitempty"`
 	// The user specified locally unique ID of the program. Used along with
 	// `prevProgramId` to define an ordering between programs.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// The display name of the program. This is typically the colloquial name of
 	// the tool used, for example 'bwa' or 'picard'.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The ID of the program run before this one.
-	PrevProgramId string `protobuf:"bytes,4,opt,name=prev_program_id,json=prevProgramId" json:"prev_program_id,omitempty"`
+	PrevProgramId string `protobuf:"bytes,4,opt,name=prev_program_id,json=prevProgramId,proto3" json:"prev_program_id,omitempty"`
 	// The version of the program run.
-	Version              string   `protobuf:"bytes,5,opt,name=version" json:"version,omitempty"`
+	Version              string   `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/genomics/v1/readgroupset.pb.go b/googleapis/genomics/v1/readgroupset.pb.go
index 3843c10d330b281148526b21cb92d355f9cb1fd4..ca22d42cd0e9cff92c9ad8496c2dd0055faf6576 100644
--- a/googleapis/genomics/v1/readgroupset.pb.go
+++ b/googleapis/genomics/v1/readgroupset.pb.go
@@ -33,21 +33,21 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type ReadGroupSet struct {
 	// The server-generated read group set ID, unique for all read group sets.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The dataset to which this read group set belongs.
-	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The reference set to which the reads in this read group set are aligned.
-	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// The read group set name. By default this will be initialized to the sample
 	// name of the sequenced data contained in this set.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The filename of the original source file for this read group set, if any.
-	Filename string `protobuf:"bytes,5,opt,name=filename" json:"filename,omitempty"`
+	Filename string `protobuf:"bytes,5,opt,name=filename,proto3" json:"filename,omitempty"`
 	// The read groups in this set. There are typically 1-10 read groups in a read
 	// group set.
-	ReadGroups []*ReadGroup `protobuf:"bytes,6,rep,name=read_groups,json=readGroups" json:"read_groups,omitempty"`
+	ReadGroups []*ReadGroup `protobuf:"bytes,6,rep,name=read_groups,json=readGroups,proto3" json:"read_groups,omitempty"`
 	// A map of additional read group set information.
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,7,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,7,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
diff --git a/googleapis/genomics/v1/reads.pb.go b/googleapis/genomics/v1/reads.pb.go
index 1bbb9480749a9c051ea43de500ae5092088e5515..81c78752ca3f0908e3783dea0d17009e49cff0d4 100644
--- a/googleapis/genomics/v1/reads.pb.go
+++ b/googleapis/genomics/v1/reads.pb.go
@@ -68,17 +68,17 @@ func (ImportReadGroupSetsRequest_PartitionStrategy) EnumDescriptor() ([]byte, []
 type SearchReadGroupSetsRequest struct {
 	// Restricts this query to read group sets within the given datasets. At least
 	// one ID must be provided.
-	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds" json:"dataset_ids,omitempty"`
+	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds,proto3" json:"dataset_ids,omitempty"`
 	// Only return read group sets for which a substring of the name matches this
 	// string.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 256. The maximum value is 1024.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -139,11 +139,11 @@ func (m *SearchReadGroupSetsRequest) GetPageSize() int32 {
 // The read group set search response.
 type SearchReadGroupSetsResponse struct {
 	// The list of matching read group sets.
-	ReadGroupSets []*ReadGroupSet `protobuf:"bytes,1,rep,name=read_group_sets,json=readGroupSets" json:"read_group_sets,omitempty"`
+	ReadGroupSets []*ReadGroupSet `protobuf:"bytes,1,rep,name=read_group_sets,json=readGroupSets,proto3" json:"read_group_sets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -191,12 +191,12 @@ func (m *SearchReadGroupSetsResponse) GetNextPageToken() string {
 type ImportReadGroupSetsRequest struct {
 	// Required. The ID of the dataset these read group sets will belong to. The
 	// caller must have WRITE permissions to this dataset.
-	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// 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.
-	ReferenceSetId string `protobuf:"bytes,4,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,4,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// A list of URIs pointing at [BAM
 	// files](https://samtools.github.io/hts-specs/SAMv1.pdf)
 	// in Google Cloud Storage.
@@ -207,10 +207,10 @@ type ImportReadGroupSetsRequest struct {
 	// consistent: files added may be not be immediately visible to
 	// everyone. Thus, if using a wildcard it is preferable not to start
 	// the import immediately after the files are created.
-	SourceUris []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris" json:"source_uris,omitempty"`
+	SourceUris []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris,proto3" json:"source_uris,omitempty"`
 	// The partition strategy describes how read groups are partitioned into read
 	// group sets.
-	PartitionStrategy    ImportReadGroupSetsRequest_PartitionStrategy `protobuf:"varint,5,opt,name=partition_strategy,json=partitionStrategy,enum=google.genomics.v1.ImportReadGroupSetsRequest_PartitionStrategy" json:"partition_strategy,omitempty"`
+	PartitionStrategy    ImportReadGroupSetsRequest_PartitionStrategy `protobuf:"varint,5,opt,name=partition_strategy,json=partitionStrategy,proto3,enum=google.genomics.v1.ImportReadGroupSetsRequest_PartitionStrategy" json:"partition_strategy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
 	XXX_unrecognized     []byte                                       `json:"-"`
 	XXX_sizecache        int32                                        `json:"-"`
@@ -271,7 +271,7 @@ func (m *ImportReadGroupSetsRequest) GetPartitionStrategy() ImportReadGroupSetsR
 // The read group set import response.
 type ImportReadGroupSetsResponse struct {
 	// IDs of the read group sets that were created.
-	ReadGroupSetIds      []string `protobuf:"bytes,1,rep,name=read_group_set_ids,json=readGroupSetIds" json:"read_group_set_ids,omitempty"`
+	ReadGroupSetIds      []string `protobuf:"bytes,1,rep,name=read_group_set_ids,json=readGroupSetIds,proto3" json:"read_group_set_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -312,18 +312,18 @@ func (m *ImportReadGroupSetsResponse) GetReadGroupSetIds() []string {
 type ExportReadGroupSetRequest struct {
 	// Required. The Google Cloud project ID that owns this
 	// export. The caller must have WRITE access to this project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// 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.
-	ExportUri string `protobuf:"bytes,2,opt,name=export_uri,json=exportUri" json:"export_uri,omitempty"`
+	ExportUri string `protobuf:"bytes,2,opt,name=export_uri,json=exportUri,proto3" json:"export_uri,omitempty"`
 	// Required. The ID of the read group set to export. The caller must have
 	// READ access to this read group set.
-	ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	// The reference names to export. If this is not specified, all reference
 	// sequences, including unmapped reads, are exported.
 	// Use `*` to export only unmapped reads.
-	ReferenceNames       []string `protobuf:"bytes,4,rep,name=reference_names,json=referenceNames" json:"reference_names,omitempty"`
+	ReferenceNames       []string `protobuf:"bytes,4,rep,name=reference_names,json=referenceNames,proto3" json:"reference_names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -384,10 +384,10 @@ func (m *ExportReadGroupSetRequest) GetReferenceNames() []string {
 type UpdateReadGroupSetRequest struct {
 	// 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.
-	ReadGroupSetId string `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId string `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	// The new read group set data. See `updateMask` for details on mutability of
 	// fields.
-	ReadGroupSet *ReadGroupSet `protobuf:"bytes,2,opt,name=read_group_set,json=readGroupSet" json:"read_group_set,omitempty"`
+	ReadGroupSet *ReadGroupSet `protobuf:"bytes,2,opt,name=read_group_set,json=readGroupSet,proto3" json:"read_group_set,omitempty"`
 	// An optional mask specifying which fields to update. Supported fields:
 	//
 	// * [name][google.genomics.v1.ReadGroupSet.name].
@@ -395,7 +395,7 @@ type UpdateReadGroupSetRequest struct {
 	//
 	// Leaving `updateMask` unset is equivalent to specifying all mutable
 	// fields.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -449,7 +449,7 @@ func (m *UpdateReadGroupSetRequest) GetUpdateMask() *field_mask.FieldMask {
 type DeleteReadGroupSetRequest struct {
 	// 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.
-	ReadGroupSetId       string   `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId       string   `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -488,7 +488,7 @@ func (m *DeleteReadGroupSetRequest) GetReadGroupSetId() string {
 
 type GetReadGroupSetRequest struct {
 	// The ID of the read group set.
-	ReadGroupSetId       string   `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId       string   `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -527,17 +527,17 @@ func (m *GetReadGroupSetRequest) GetReadGroupSetId() string {
 
 type ListCoverageBucketsRequest struct {
 	// Required. The ID of the read group set over which coverage is requested.
-	ReadGroupSetId string `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId string `protobuf:"bytes,1,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	// The name of the reference to query, within the reference set associated
 	// with this query. Optional.
-	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The start position of the range on the reference, 0-based inclusive. If
 	// specified, `referenceName` must also be specified. Defaults to 0.
-	Start int64 `protobuf:"varint,4,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive. If
 	// specified, `referenceName` must also be specified. If unset or 0, defaults
 	// to the length of the reference.
-	End int64 `protobuf:"varint,5,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,5,opt,name=end,proto3" json:"end,omitempty"`
 	// 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
@@ -545,14 +545,14 @@ type ListCoverageBucketsRequest struct {
 	// of the target range, if specified. The smallest precomputed
 	// `bucketWidth` is currently 2048 base pairs; this is subject to
 	// change.
-	TargetBucketWidth int64 `protobuf:"varint,6,opt,name=target_bucket_width,json=targetBucketWidth" json:"target_bucket_width,omitempty"`
+	TargetBucketWidth int64 `protobuf:"varint,6,opt,name=target_bucket_width,json=targetBucketWidth,proto3" json:"target_bucket_width,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,7,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,7,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 1024. The maximum value is 2048.
-	PageSize             int32    `protobuf:"varint,8,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -635,10 +635,10 @@ func (m *ListCoverageBucketsRequest) GetPageSize() int32 {
 // to a specific range of the reference sequence.
 type CoverageBucket struct {
 	// The genomic coordinate range spanned by this bucket.
-	Range *Range `protobuf:"bytes,1,opt,name=range" json:"range,omitempty"`
+	Range *Range `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"`
 	// The average number of reads which are aligned to each individual
 	// reference base in this bucket.
-	MeanCoverage         float32  `protobuf:"fixed32,2,opt,name=mean_coverage,json=meanCoverage" json:"mean_coverage,omitempty"`
+	MeanCoverage         float32  `protobuf:"fixed32,2,opt,name=mean_coverage,json=meanCoverage,proto3" json:"mean_coverage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -687,16 +687,16 @@ type ListCoverageBucketsResponse struct {
 	// 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`).
-	BucketWidth int64 `protobuf:"varint,1,opt,name=bucket_width,json=bucketWidth" json:"bucket_width,omitempty"`
+	BucketWidth int64 `protobuf:"varint,1,opt,name=bucket_width,json=bucketWidth,proto3" json:"bucket_width,omitempty"`
 	// 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.
-	CoverageBuckets []*CoverageBucket `protobuf:"bytes,2,rep,name=coverage_buckets,json=coverageBuckets" json:"coverage_buckets,omitempty"`
+	CoverageBuckets []*CoverageBucket `protobuf:"bytes,2,rep,name=coverage_buckets,json=coverageBuckets,proto3" json:"coverage_buckets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -753,28 +753,28 @@ type SearchReadsRequest struct {
 	// 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`.
-	ReadGroupSetIds []string `protobuf:"bytes,1,rep,name=read_group_set_ids,json=readGroupSetIds" json:"read_group_set_ids,omitempty"`
+	ReadGroupSetIds []string `protobuf:"bytes,1,rep,name=read_group_set_ids,json=readGroupSetIds,proto3" json:"read_group_set_ids,omitempty"`
 	// 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`.
-	ReadGroupIds []string `protobuf:"bytes,5,rep,name=read_group_ids,json=readGroupIds" json:"read_group_ids,omitempty"`
+	ReadGroupIds []string `protobuf:"bytes,5,rep,name=read_group_ids,json=readGroupIds,proto3" json:"read_group_ids,omitempty"`
 	// 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.
-	ReferenceName string `protobuf:"bytes,7,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,7,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The start position of the range on the reference, 0-based inclusive. If
 	// specified, `referenceName` must also be specified.
-	Start int64 `protobuf:"varint,8,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,8,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive. If
 	// specified, `referenceName` must also be specified.
-	End int64 `protobuf:"varint,9,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,9,opt,name=end,proto3" json:"end,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 256. The maximum value is 2048.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -859,11 +859,11 @@ type SearchReadsResponse struct {
 	// 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.
-	Alignments []*Read `protobuf:"bytes,1,rep,name=alignments" json:"alignments,omitempty"`
+	Alignments []*Read `protobuf:"bytes,1,rep,name=alignments,proto3" json:"alignments,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -912,19 +912,19 @@ type StreamReadsRequest struct {
 	// The Google Cloud project ID which will be billed
 	// for this access. The caller must have WRITE access to this project.
 	// Required.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The ID of the read group set from which to stream reads.
-	ReadGroupSetId string `protobuf:"bytes,2,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
+	ReadGroupSetId string `protobuf:"bytes,2,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"`
 	// The reference sequence name, for example `chr1`,
 	// `1`, or `chrX`. If set to *, only unmapped reads are
 	// returned.
-	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,3,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The start position of the range on the reference, 0-based inclusive. If
 	// specified, `referenceName` must also be specified.
-	Start int64 `protobuf:"varint,4,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position of the range on the reference, 0-based exclusive. If
 	// specified, `referenceName` must also be specified.
-	End int64 `protobuf:"varint,5,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,5,opt,name=end,proto3" json:"end,omitempty"`
 	// Restricts results to a shard containing approximately `1/totalShards`
 	// of the normal response payload for this query. Results from a sharded
 	// request are disjoint from those returned by all queries which differ only
@@ -932,7 +932,7 @@ type StreamReadsRequest struct {
 	// likely for large values of `totalShards`.
 	//
 	// Valid values are `[0, totalShards)`.
-	Shard int32 `protobuf:"varint,6,opt,name=shard" json:"shard,omitempty"`
+	Shard int32 `protobuf:"varint,6,opt,name=shard,proto3" json:"shard,omitempty"`
 	// Specifying `totalShards` causes a disjoint subset of the normal response
 	// payload to be returned for each query with a unique `shard` parameter
 	// specified. A best effort is made to yield equally sized shards. Sharding
@@ -945,7 +945,7 @@ type StreamReadsRequest struct {
 	// share shard boundaries. For example, streaming `shard` 2 of 5
 	// `totalShards` yields the same results as streaming `shard`s 4 and 5 of 10
 	// `totalShards`. This property can be leveraged for adaptive retries.
-	TotalShards          int32    `protobuf:"varint,7,opt,name=total_shards,json=totalShards" json:"total_shards,omitempty"`
+	TotalShards          int32    `protobuf:"varint,7,opt,name=total_shards,json=totalShards,proto3" json:"total_shards,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1025,7 +1025,7 @@ func (m *StreamReadsRequest) GetTotalShards() int32 {
 }
 
 type StreamReadsResponse struct {
-	Alignments           []*Read  `protobuf:"bytes,1,rep,name=alignments" json:"alignments,omitempty"`
+	Alignments           []*Read  `protobuf:"bytes,1,rep,name=alignments,proto3" json:"alignments,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1138,8 +1138,7 @@ func (x *streamingReadServiceStreamReadsClient) Recv() (*StreamReadsResponse, er
 	return m, nil
 }
 
-// Server API for StreamingReadService service
-
+// StreamingReadServiceServer is the server API for StreamingReadService service.
 type StreamingReadServiceServer interface {
 	// Returns a stream of all the reads matching the search request, ordered
 	// by reference name, position, and ID.
@@ -1369,8 +1368,7 @@ func (c *readServiceV1Client) SearchReads(ctx context.Context, in *SearchReadsRe
 	return out, nil
 }
 
-// Server API for ReadServiceV1 service
-
+// ReadServiceV1Server is the server API for ReadServiceV1 service.
 type ReadServiceV1Server interface {
 	// Creates read group sets by asynchronously importing the provided
 	// information.
diff --git a/googleapis/genomics/v1/references.pb.go b/googleapis/genomics/v1/references.pb.go
index 14441e81d762a6ca22ea25a3b7cec0ee00b5a610..bfc5a96ed844a794f7204229e3a93d822007c734 100644
--- a/googleapis/genomics/v1/references.pb.go
+++ b/googleapis/genomics/v1/references.pb.go
@@ -33,23 +33,23 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type Reference struct {
 	// The server-generated reference ID, unique across all references.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The length of this reference's sequence.
-	Length int64 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
+	Length int64 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
 	// 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.
-	Md5Checksum string `protobuf:"bytes,3,opt,name=md5checksum" json:"md5checksum,omitempty"`
+	Md5Checksum string `protobuf:"bytes,3,opt,name=md5checksum,proto3" json:"md5checksum,omitempty"`
 	// The name of this reference, for example `22`.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The URI from which the sequence was obtained. Typically specifies a FASTA
 	// format file.
-	SourceUri string `protobuf:"bytes,5,opt,name=source_uri,json=sourceUri" json:"source_uri,omitempty"`
+	SourceUri string `protobuf:"bytes,5,opt,name=source_uri,json=sourceUri,proto3" json:"source_uri,omitempty"`
 	// All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
 	// with a version number, for example `GCF_000001405.26`.
-	SourceAccessions []string `protobuf:"bytes,6,rep,name=source_accessions,json=sourceAccessions" json:"source_accessions,omitempty"`
+	SourceAccessions []string `protobuf:"bytes,6,rep,name=source_accessions,json=sourceAccessions,proto3" json:"source_accessions,omitempty"`
 	// ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
-	NcbiTaxonId          int32    `protobuf:"varint,7,opt,name=ncbi_taxon_id,json=ncbiTaxonId" json:"ncbi_taxon_id,omitempty"`
+	NcbiTaxonId          int32    `protobuf:"varint,7,opt,name=ncbi_taxon_id,json=ncbiTaxonId,proto3" json:"ncbi_taxon_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -138,31 +138,31 @@ func (m *Reference) GetNcbiTaxonId() int32 {
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type ReferenceSet struct {
 	// The server-generated reference set ID, unique across all reference sets.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The IDs of the reference objects that are part of this set.
 	// `Reference.md5checksum` must be unique within this set.
-	ReferenceIds []string `protobuf:"bytes,2,rep,name=reference_ids,json=referenceIds" json:"reference_ids,omitempty"`
+	ReferenceIds []string `protobuf:"bytes,2,rep,name=reference_ids,json=referenceIds,proto3" json:"reference_ids,omitempty"`
 	// 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.
-	Md5Checksum string `protobuf:"bytes,3,opt,name=md5checksum" json:"md5checksum,omitempty"`
+	Md5Checksum string `protobuf:"bytes,3,opt,name=md5checksum,proto3" json:"md5checksum,omitempty"`
 	// 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.
-	NcbiTaxonId int32 `protobuf:"varint,4,opt,name=ncbi_taxon_id,json=ncbiTaxonId" json:"ncbi_taxon_id,omitempty"`
+	NcbiTaxonId int32 `protobuf:"varint,4,opt,name=ncbi_taxon_id,json=ncbiTaxonId,proto3" json:"ncbi_taxon_id,omitempty"`
 	// Free text description of this reference set.
-	Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
 	// Public id of this reference set, such as `GRCh37`.
-	AssemblyId string `protobuf:"bytes,6,opt,name=assembly_id,json=assemblyId" json:"assembly_id,omitempty"`
+	AssemblyId string `protobuf:"bytes,6,opt,name=assembly_id,json=assemblyId,proto3" json:"assembly_id,omitempty"`
 	// The URI from which the references were obtained.
-	SourceUri string `protobuf:"bytes,7,opt,name=source_uri,json=sourceUri" json:"source_uri,omitempty"`
+	SourceUri string `protobuf:"bytes,7,opt,name=source_uri,json=sourceUri,proto3" json:"source_uri,omitempty"`
 	// All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
 	// with a version number, for example `NC_000001.11`.
-	SourceAccessions     []string `protobuf:"bytes,8,rep,name=source_accessions,json=sourceAccessions" json:"source_accessions,omitempty"`
+	SourceAccessions     []string `protobuf:"bytes,8,rep,name=source_accessions,json=sourceAccessions,proto3" json:"source_accessions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -251,22 +251,22 @@ func (m *ReferenceSet) GetSourceAccessions() []string {
 type SearchReferenceSetsRequest struct {
 	// If present, return reference sets for which the
 	// [md5checksum][google.genomics.v1.ReferenceSet.md5checksum] matches exactly.
-	Md5Checksums []string `protobuf:"bytes,1,rep,name=md5checksums" json:"md5checksums,omitempty"`
+	Md5Checksums []string `protobuf:"bytes,1,rep,name=md5checksums,proto3" json:"md5checksums,omitempty"`
 	// If present, return reference sets for which a prefix of any of
 	// [sourceAccessions][google.genomics.v1.ReferenceSet.source_accessions]
 	// match any of these strings. Accession numbers typically have a main number
 	// and a version, for example `NC_000001.11`.
-	Accessions []string `protobuf:"bytes,2,rep,name=accessions" json:"accessions,omitempty"`
+	Accessions []string `protobuf:"bytes,2,rep,name=accessions,proto3" json:"accessions,omitempty"`
 	// If present, return reference sets for which a substring of their
 	// `assemblyId` matches this string (case insensitive).
-	AssemblyId string `protobuf:"bytes,3,opt,name=assembly_id,json=assemblyId" json:"assembly_id,omitempty"`
+	AssemblyId string `protobuf:"bytes,3,opt,name=assembly_id,json=assemblyId,proto3" json:"assembly_id,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 1024. The maximum value is 4096.
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -333,11 +333,11 @@ func (m *SearchReferenceSetsRequest) GetPageSize() int32 {
 
 type SearchReferenceSetsResponse struct {
 	// The matching references sets.
-	ReferenceSets []*ReferenceSet `protobuf:"bytes,1,rep,name=reference_sets,json=referenceSets" json:"reference_sets,omitempty"`
+	ReferenceSets []*ReferenceSet `protobuf:"bytes,1,rep,name=reference_sets,json=referenceSets,proto3" json:"reference_sets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -383,7 +383,7 @@ func (m *SearchReferenceSetsResponse) GetNextPageToken() string {
 
 type GetReferenceSetRequest struct {
 	// The ID of the reference set.
-	ReferenceSetId       string   `protobuf:"bytes,1,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId       string   `protobuf:"bytes,1,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -423,21 +423,21 @@ func (m *GetReferenceSetRequest) GetReferenceSetId() string {
 type SearchReferencesRequest struct {
 	// If present, return references for which the
 	// [md5checksum][google.genomics.v1.Reference.md5checksum] matches exactly.
-	Md5Checksums []string `protobuf:"bytes,1,rep,name=md5checksums" json:"md5checksums,omitempty"`
+	Md5Checksums []string `protobuf:"bytes,1,rep,name=md5checksums,proto3" json:"md5checksums,omitempty"`
 	// If present, return references for which a prefix of any of
 	// [sourceAccessions][google.genomics.v1.Reference.source_accessions] match
 	// any of these strings. Accession numbers typically have a main number and a
 	// version, for example `GCF_000001405.26`.
-	Accessions []string `protobuf:"bytes,2,rep,name=accessions" json:"accessions,omitempty"`
+	Accessions []string `protobuf:"bytes,2,rep,name=accessions,proto3" json:"accessions,omitempty"`
 	// If present, return only references which belong to this reference set.
-	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,3,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 1024. The maximum value is 4096.
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -504,11 +504,11 @@ func (m *SearchReferencesRequest) GetPageSize() int32 {
 
 type SearchReferencesResponse struct {
 	// The matching references.
-	References []*Reference `protobuf:"bytes,1,rep,name=references" json:"references,omitempty"`
+	References []*Reference `protobuf:"bytes,1,rep,name=references,proto3" json:"references,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -554,7 +554,7 @@ func (m *SearchReferencesResponse) GetNextPageToken() string {
 
 type GetReferenceRequest struct {
 	// The ID of the reference.
-	ReferenceId          string   `protobuf:"bytes,1,opt,name=reference_id,json=referenceId" json:"reference_id,omitempty"`
+	ReferenceId          string   `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -593,20 +593,20 @@ func (m *GetReferenceRequest) GetReferenceId() string {
 
 type ListBasesRequest struct {
 	// The ID of the reference.
-	ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId" json:"reference_id,omitempty"`
+	ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"`
 	// The start position (0-based) of this query. Defaults to 0.
-	Start int64 `protobuf:"varint,2,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
 	// The end position (0-based, exclusive) of this query. Defaults to the length
 	// of this reference.
-	End int64 `protobuf:"varint,3,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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).
-	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -675,13 +675,13 @@ type ListBasesResponse struct {
 	// 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.
-	Offset int64 `protobuf:"varint,1,opt,name=offset" json:"offset,omitempty"`
+	Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
 	// A substring of the bases that make up this reference.
-	Sequence string `protobuf:"bytes,2,opt,name=sequence" json:"sequence,omitempty"`
+	Sequence string `protobuf:"bytes,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -857,8 +857,7 @@ func (c *referenceServiceV1Client) ListBases(ctx context.Context, in *ListBasesR
 	return out, nil
 }
 
-// Server API for ReferenceServiceV1 service
-
+// ReferenceServiceV1Server is the server API for ReferenceServiceV1 service.
 type ReferenceServiceV1Server interface {
 	// Searches for reference sets which match the given criteria.
 	//
diff --git a/googleapis/genomics/v1/variants.pb.go b/googleapis/genomics/v1/variants.pb.go
index 92032eafd70c2a6726651d59d8caef1813c6cd18..3b338b3bda2c6f4771cec861cb3a4efac34c949c 100644
--- a/googleapis/genomics/v1/variants.pb.go
+++ b/googleapis/genomics/v1/variants.pb.go
@@ -159,24 +159,24 @@ func (ExportVariantSetRequest_Format) EnumDescriptor() ([]byte, []int) {
 // Value and info are mutually exclusive.
 type VariantSetMetadata struct {
 	// The top-level key.
-	Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 	// The value field for simple metadata
-	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	// 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.
-	Id string `protobuf:"bytes,4,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
 	// The type of data. Possible types include: Integer, Float,
 	// Flag, Character, and String.
-	Type VariantSetMetadata_Type `protobuf:"varint,5,opt,name=type,enum=google.genomics.v1.VariantSetMetadata_Type" json:"type,omitempty"`
+	Type VariantSetMetadata_Type `protobuf:"varint,5,opt,name=type,proto3,enum=google.genomics.v1.VariantSetMetadata_Type" json:"type,omitempty"`
 	// The number of values that can be included in a field described by this
 	// metadata.
-	Number string `protobuf:"bytes,8,opt,name=number" json:"number,omitempty"`
+	Number string `protobuf:"bytes,8,opt,name=number,proto3" json:"number,omitempty"`
 	// A textual description of this metadata.
-	Description string `protobuf:"bytes,7,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
 	// Remaining structured metadata key-value pairs. This must be of the form
 	// map<string, string[]> (string key mapping to a list of string values).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,3,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,3,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -262,9 +262,9 @@ func (m *VariantSetMetadata) GetInfo() map[string]*_struct.ListValue {
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type VariantSet struct {
 	// The dataset to which this variant set belongs.
-	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// The server-generated variant set ID, unique across all variant sets.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// 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
@@ -275,16 +275,16 @@ type VariantSet struct {
 	// 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.
-	ReferenceSetId string `protobuf:"bytes,6,opt,name=reference_set_id,json=referenceSetId" json:"reference_set_id,omitempty"`
+	ReferenceSetId string `protobuf:"bytes,6,opt,name=reference_set_id,json=referenceSetId,proto3" json:"reference_set_id,omitempty"`
 	// A list of all references used by the variants in a variant set
 	// with associated coordinate upper bounds for each one.
-	ReferenceBounds []*ReferenceBound `protobuf:"bytes,5,rep,name=reference_bounds,json=referenceBounds" json:"reference_bounds,omitempty"`
+	ReferenceBounds []*ReferenceBound `protobuf:"bytes,5,rep,name=reference_bounds,json=referenceBounds,proto3" json:"reference_bounds,omitempty"`
 	// The metadata associated with this variant set.
-	Metadata []*VariantSetMetadata `protobuf:"bytes,4,rep,name=metadata" json:"metadata,omitempty"`
+	Metadata []*VariantSetMetadata `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty"`
 	// User-specified, mutable name.
-	Name string `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	// A textual description of this variant set.
-	Description          string   `protobuf:"bytes,8,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -377,41 +377,41 @@ func (m *VariantSet) GetDescription() string {
 // sample.
 type Variant struct {
 	// The ID of the variant set this variant belongs to.
-	VariantSetId string `protobuf:"bytes,15,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,15,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// The server-generated variant ID, unique across all variants.
-	Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// Names for the variant, for example a RefSNP ID.
-	Names []string `protobuf:"bytes,3,rep,name=names" json:"names,omitempty"`
+	Names []string `protobuf:"bytes,3,rep,name=names,proto3" json:"names,omitempty"`
 	// The date this variant was created, in milliseconds from the epoch.
-	Created int64 `protobuf:"varint,12,opt,name=created" json:"created,omitempty"`
+	Created int64 `protobuf:"varint,12,opt,name=created,proto3" json:"created,omitempty"`
 	// The reference on which this variant occurs.
 	// (such as `chr20` or `X`)
-	ReferenceName string `protobuf:"bytes,14,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,14,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The position at which this variant occurs (0-based).
 	// This corresponds to the first base of the string of reference bases.
-	Start int64 `protobuf:"varint,16,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,16,opt,name=start,proto3" json:"start,omitempty"`
 	// 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.
-	End int64 `protobuf:"varint,13,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,13,opt,name=end,proto3" json:"end,omitempty"`
 	// The reference bases for this variant. They start at the given
 	// position.
-	ReferenceBases string `protobuf:"bytes,6,opt,name=reference_bases,json=referenceBases" json:"reference_bases,omitempty"`
+	ReferenceBases string `protobuf:"bytes,6,opt,name=reference_bases,json=referenceBases,proto3" json:"reference_bases,omitempty"`
 	// The bases that appear instead of the reference bases.
-	AlternateBases []string `protobuf:"bytes,7,rep,name=alternate_bases,json=alternateBases" json:"alternate_bases,omitempty"`
+	AlternateBases []string `protobuf:"bytes,7,rep,name=alternate_bases,json=alternateBases,proto3" json:"alternate_bases,omitempty"`
 	// A measure of how likely this variant is to be real.
 	// A higher value is better.
-	Quality float64 `protobuf:"fixed64,8,opt,name=quality" json:"quality,omitempty"`
+	Quality float64 `protobuf:"fixed64,8,opt,name=quality,proto3" json:"quality,omitempty"`
 	// A list of filters (normally quality filters) this variant has failed.
 	// `PASS` indicates this variant has passed all filters.
-	Filter []string `protobuf:"bytes,9,rep,name=filter" json:"filter,omitempty"`
+	Filter []string `protobuf:"bytes,9,rep,name=filter,proto3" json:"filter,omitempty"`
 	// A map of additional variant information. This must be of the form
 	// map<string, string[]> (string key mapping to a list of string values).
-	Info map[string]*_struct.ListValue `protobuf:"bytes,10,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info map[string]*_struct.ListValue `protobuf:"bytes,10,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The variant calls for this particular variant. Each one represents the
 	// determination of genotype with respect to this variant.
-	Calls                []*VariantCall `protobuf:"bytes,11,rep,name=calls" json:"calls,omitempty"`
+	Calls                []*VariantCall `protobuf:"bytes,11,rep,name=calls,proto3" json:"calls,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -538,9 +538,9 @@ func (m *Variant) GetCalls() []*VariantCall {
 // a SNP named rs1234 in a call set with the name NA12345.
 type VariantCall struct {
 	// The ID of the call set this variant call belongs to.
-	CallSetId string `protobuf:"bytes,8,opt,name=call_set_id,json=callSetId" json:"call_set_id,omitempty"`
+	CallSetId string `protobuf:"bytes,8,opt,name=call_set_id,json=callSetId,proto3" json:"call_set_id,omitempty"`
 	// The name of the call set this variant call belongs to.
-	CallSetName string `protobuf:"bytes,9,opt,name=call_set_name,json=callSetName" json:"call_set_name,omitempty"`
+	CallSetName string `protobuf:"bytes,9,opt,name=call_set_name,json=callSetName,proto3" json:"call_set_name,omitempty"`
 	// 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`
@@ -553,23 +553,23 @@ type VariantCall struct {
 	// 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.
-	Genotype []int32 `protobuf:"varint,7,rep,packed,name=genotype" json:"genotype,omitempty"`
+	Genotype []int32 `protobuf:"varint,7,rep,packed,name=genotype,proto3" json:"genotype,omitempty"`
 	// 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 `*`.
-	Phaseset string `protobuf:"bytes,5,opt,name=phaseset" json:"phaseset,omitempty"`
+	Phaseset string `protobuf:"bytes,5,opt,name=phaseset,proto3" json:"phaseset,omitempty"`
 	// 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`.
-	GenotypeLikelihood []float64 `protobuf:"fixed64,6,rep,packed,name=genotype_likelihood,json=genotypeLikelihood" json:"genotype_likelihood,omitempty"`
+	GenotypeLikelihood []float64 `protobuf:"fixed64,6,rep,packed,name=genotype_likelihood,json=genotypeLikelihood,proto3" json:"genotype_likelihood,omitempty"`
 	// A map of additional variant call information. This must be of the form
 	// map<string, string[]> (string key mapping to a list of string values).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,2,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -648,22 +648,22 @@ func (m *VariantCall) GetInfo() map[string]*_struct.ListValue {
 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 type CallSet struct {
 	// The server-generated call set ID, unique across all call sets.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// The call set name.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// The sample ID this call set corresponds to.
-	SampleId string `protobuf:"bytes,7,opt,name=sample_id,json=sampleId" json:"sample_id,omitempty"`
+	SampleId string `protobuf:"bytes,7,opt,name=sample_id,json=sampleId,proto3" json:"sample_id,omitempty"`
 	// The IDs of the variant sets this call set belongs to. This field must
 	// have exactly length one, as a call set belongs to a single variant set.
 	// This field is repeated for compatibility with the
 	// [GA4GH 0.5.1
 	// API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
-	VariantSetIds []string `protobuf:"bytes,6,rep,name=variant_set_ids,json=variantSetIds" json:"variant_set_ids,omitempty"`
+	VariantSetIds []string `protobuf:"bytes,6,rep,name=variant_set_ids,json=variantSetIds,proto3" json:"variant_set_ids,omitempty"`
 	// The date this call set was created in milliseconds from the epoch.
-	Created int64 `protobuf:"varint,5,opt,name=created" json:"created,omitempty"`
+	Created int64 `protobuf:"varint,5,opt,name=created,proto3" json:"created,omitempty"`
 	// A map of additional call set information. This must be of the form
 	// map<string, string[]> (string key mapping to a list of string values).
-	Info                 map[string]*_struct.ListValue `protobuf:"bytes,4,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Info                 map[string]*_struct.ListValue `protobuf:"bytes,4,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -739,10 +739,10 @@ func (m *CallSet) GetInfo() map[string]*_struct.ListValue {
 // variants in a particular reference.
 type ReferenceBound struct {
 	// The name of the reference associated with this reference bound.
-	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,1,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// An upper bound (inclusive) on the starting coordinate of any
 	// variant in the reference sequence.
-	UpperBound           int64    `protobuf:"varint,2,opt,name=upper_bound,json=upperBound" json:"upper_bound,omitempty"`
+	UpperBound           int64    `protobuf:"varint,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -789,15 +789,15 @@ func (m *ReferenceBound) GetUpperBound() int64 {
 // The variant data import request.
 type ImportVariantsRequest struct {
 	// Required. The variant set to which variant data should be imported.
-	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// 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).
 	// Note that recursive wildcards ('**') are not supported.
-	SourceUris []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris" json:"source_uris,omitempty"`
+	SourceUris []string `protobuf:"bytes,2,rep,name=source_uris,json=sourceUris,proto3" json:"source_uris,omitempty"`
 	// The format of the variant data being imported. If unspecified, defaults to
 	// to `VCF`.
-	Format ImportVariantsRequest_Format `protobuf:"varint,3,opt,name=format,enum=google.genomics.v1.ImportVariantsRequest_Format" json:"format,omitempty"`
+	Format ImportVariantsRequest_Format `protobuf:"varint,3,opt,name=format,proto3,enum=google.genomics.v1.ImportVariantsRequest_Format" json:"format,omitempty"`
 	// Convert reference names to the canonical representation.
 	// hg19 haploytypes (those reference names containing "_hap")
 	// are not modified in any way.
@@ -806,11 +806,11 @@ type ImportVariantsRequest struct {
 	// 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".
-	NormalizeReferenceNames bool `protobuf:"varint,5,opt,name=normalize_reference_names,json=normalizeReferenceNames" json:"normalize_reference_names,omitempty"`
+	NormalizeReferenceNames bool `protobuf:"varint,5,opt,name=normalize_reference_names,json=normalizeReferenceNames,proto3" json:"normalize_reference_names,omitempty"`
 	// A mapping between info field keys and the InfoMergeOperations to
 	// be performed on them. This is plumbed down to the MergeVariantRequests
 	// generated by the resulting import job.
-	InfoMergeConfig      map[string]InfoMergeOperation `protobuf:"bytes,6,rep,name=info_merge_config,json=infoMergeConfig" json:"info_merge_config,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.genomics.v1.InfoMergeOperation"`
+	InfoMergeConfig      map[string]InfoMergeOperation `protobuf:"bytes,6,rep,name=info_merge_config,json=infoMergeConfig,proto3" json:"info_merge_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.genomics.v1.InfoMergeOperation"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -878,7 +878,7 @@ func (m *ImportVariantsRequest) GetInfoMergeConfig() map[string]InfoMergeOperati
 // The variant data import response.
 type ImportVariantsResponse struct {
 	// IDs of the call sets created during the import.
-	CallSetIds           []string `protobuf:"bytes,1,rep,name=call_set_ids,json=callSetIds" json:"call_set_ids,omitempty"`
+	CallSetIds           []string `protobuf:"bytes,1,rep,name=call_set_ids,json=callSetIds,proto3" json:"call_set_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -918,7 +918,7 @@ func (m *ImportVariantsResponse) GetCallSetIds() []string {
 // The CreateVariantSet request
 type CreateVariantSetRequest struct {
 	// Required. The variant set to be created. Must have a valid `datasetId`.
-	VariantSet           *VariantSet `protobuf:"bytes,1,opt,name=variant_set,json=variantSet" json:"variant_set,omitempty"`
+	VariantSet           *VariantSet `protobuf:"bytes,1,opt,name=variant_set,json=variantSet,proto3" json:"variant_set,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -959,23 +959,23 @@ func (m *CreateVariantSetRequest) GetVariantSet() *VariantSet {
 type ExportVariantSetRequest struct {
 	// Required. The ID of the variant set that contains variant data which
 	// should be exported. The caller must have READ access to this variant set.
-	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// If provided, only variant call information from the specified call sets
 	// will be exported. By default all variant calls are exported.
-	CallSetIds []string `protobuf:"bytes,2,rep,name=call_set_ids,json=callSetIds" json:"call_set_ids,omitempty"`
+	CallSetIds []string `protobuf:"bytes,2,rep,name=call_set_ids,json=callSetIds,proto3" json:"call_set_ids,omitempty"`
 	// 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.
-	ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The format for the exported data.
-	Format ExportVariantSetRequest_Format `protobuf:"varint,4,opt,name=format,enum=google.genomics.v1.ExportVariantSetRequest_Format" json:"format,omitempty"`
+	Format ExportVariantSetRequest_Format `protobuf:"varint,4,opt,name=format,proto3,enum=google.genomics.v1.ExportVariantSetRequest_Format" json:"format,omitempty"`
 	// Required. The BigQuery dataset to export data to. This dataset must already
 	// exist. Note that this is distinct from the Genomics concept of "dataset".
-	BigqueryDataset string `protobuf:"bytes,5,opt,name=bigquery_dataset,json=bigqueryDataset" json:"bigquery_dataset,omitempty"`
+	BigqueryDataset string `protobuf:"bytes,5,opt,name=bigquery_dataset,json=bigqueryDataset,proto3" json:"bigquery_dataset,omitempty"`
 	// 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.
-	BigqueryTable        string   `protobuf:"bytes,6,opt,name=bigquery_table,json=bigqueryTable" json:"bigquery_table,omitempty"`
+	BigqueryTable        string   `protobuf:"bytes,6,opt,name=bigquery_table,json=bigqueryTable,proto3" json:"bigquery_table,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1050,7 +1050,7 @@ func (m *ExportVariantSetRequest) GetBigqueryTable() string {
 // The variant set request.
 type GetVariantSetRequest struct {
 	// Required. The ID of the variant set.
-	VariantSetId         string   `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId         string   `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1091,14 +1091,14 @@ func (m *GetVariantSetRequest) GetVariantSetId() string {
 type SearchVariantSetsRequest struct {
 	// Exactly one dataset ID must be provided here. Only variant sets which
 	// belong to this dataset will be returned.
-	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds" json:"dataset_ids,omitempty"`
+	DatasetIds []string `protobuf:"bytes,1,rep,name=dataset_ids,json=datasetIds,proto3" json:"dataset_ids,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 1024.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1152,11 +1152,11 @@ func (m *SearchVariantSetsRequest) GetPageSize() int32 {
 // The search variant sets response.
 type SearchVariantSetsResponse struct {
 	// The variant sets belonging to the requested dataset.
-	VariantSets []*VariantSet `protobuf:"bytes,1,rep,name=variant_sets,json=variantSets" json:"variant_sets,omitempty"`
+	VariantSets []*VariantSet `protobuf:"bytes,1,rep,name=variant_sets,json=variantSets,proto3" json:"variant_sets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1203,7 +1203,7 @@ func (m *SearchVariantSetsResponse) GetNextPageToken() string {
 // The delete variant set request.
 type DeleteVariantSetRequest struct {
 	// The ID of the variant set to be deleted.
-	VariantSetId         string   `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId         string   `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1242,10 +1242,10 @@ func (m *DeleteVariantSetRequest) GetVariantSetId() string {
 
 type UpdateVariantSetRequest struct {
 	// The ID of the variant to be updated (must already exist).
-	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// The new variant data. Only the variant_set.metadata will be considered
 	// for update.
-	VariantSet *VariantSet `protobuf:"bytes,2,opt,name=variant_set,json=variantSet" json:"variant_set,omitempty"`
+	VariantSet *VariantSet `protobuf:"bytes,2,opt,name=variant_set,json=variantSet,proto3" json:"variant_set,omitempty"`
 	// An optional mask specifying which fields to update. Supported fields:
 	//
 	// * [metadata][google.genomics.v1.VariantSet.metadata].
@@ -1254,7 +1254,7 @@ type UpdateVariantSetRequest struct {
 	//
 	// Leaving `updateMask` unset is equivalent to specifying all mutable
 	// fields.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1310,33 +1310,33 @@ type SearchVariantsRequest struct {
 	// 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.
-	VariantSetIds []string `protobuf:"bytes,1,rep,name=variant_set_ids,json=variantSetIds" json:"variant_set_ids,omitempty"`
+	VariantSetIds []string `protobuf:"bytes,1,rep,name=variant_set_ids,json=variantSetIds,proto3" json:"variant_set_ids,omitempty"`
 	// Only return variants which have exactly this name.
-	VariantName string `protobuf:"bytes,2,opt,name=variant_name,json=variantName" json:"variant_name,omitempty"`
+	VariantName string `protobuf:"bytes,2,opt,name=variant_name,json=variantName,proto3" json:"variant_name,omitempty"`
 	// 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.
-	CallSetIds []string `protobuf:"bytes,3,rep,name=call_set_ids,json=callSetIds" json:"call_set_ids,omitempty"`
+	CallSetIds []string `protobuf:"bytes,3,rep,name=call_set_ids,json=callSetIds,proto3" json:"call_set_ids,omitempty"`
 	// Required. Only return variants in this reference sequence.
-	ReferenceName string `protobuf:"bytes,4,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,4,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The beginning of the window (0-based, inclusive) for which
 	// overlapping variants should be returned. If unspecified, defaults to 0.
-	Start int64 `protobuf:"varint,5,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,5,opt,name=start,proto3" json:"start,omitempty"`
 	// The end of the window, 0-based exclusive. If unspecified or 0, defaults to
 	// the length of the reference.
-	End int64 `protobuf:"varint,6,opt,name=end" json:"end,omitempty"`
+	End int64 `protobuf:"varint,6,opt,name=end,proto3" json:"end,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,7,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,7,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of variants to return in a single page. If unspecified,
 	// defaults to 5000. The maximum value is 10000.
-	PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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.
-	MaxCalls             int32    `protobuf:"varint,9,opt,name=max_calls,json=maxCalls" json:"max_calls,omitempty"`
+	MaxCalls             int32    `protobuf:"varint,9,opt,name=max_calls,json=maxCalls,proto3" json:"max_calls,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1432,11 +1432,11 @@ func (m *SearchVariantsRequest) GetMaxCalls() int32 {
 // The variant search response.
 type SearchVariantsResponse struct {
 	// The list of matching Variants.
-	Variants []*Variant `protobuf:"bytes,1,rep,name=variants" json:"variants,omitempty"`
+	Variants []*Variant `protobuf:"bytes,1,rep,name=variants,proto3" json:"variants,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1482,7 +1482,7 @@ func (m *SearchVariantsResponse) GetNextPageToken() string {
 
 type CreateVariantRequest struct {
 	// The variant to be created.
-	Variant              *Variant `protobuf:"bytes,1,opt,name=variant" json:"variant,omitempty"`
+	Variant              *Variant `protobuf:"bytes,1,opt,name=variant,proto3" json:"variant,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1521,14 +1521,14 @@ func (m *CreateVariantRequest) GetVariant() *Variant {
 
 type UpdateVariantRequest struct {
 	// The ID of the variant to be updated.
-	VariantId string `protobuf:"bytes,1,opt,name=variant_id,json=variantId" json:"variant_id,omitempty"`
+	VariantId string `protobuf:"bytes,1,opt,name=variant_id,json=variantId,proto3" json:"variant_id,omitempty"`
 	// The new variant data.
-	Variant *Variant `protobuf:"bytes,2,opt,name=variant" json:"variant,omitempty"`
+	Variant *Variant `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"`
 	// An optional mask specifying which fields to update. At this time, mutable
 	// fields are [names][google.genomics.v1.Variant.names] and
 	// [info][google.genomics.v1.Variant.info]. Acceptable values are "names" and
 	// "info". If unspecified, all mutable fields will be updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1581,7 +1581,7 @@ func (m *UpdateVariantRequest) GetUpdateMask() *field_mask.FieldMask {
 
 type DeleteVariantRequest struct {
 	// The ID of the variant to be deleted.
-	VariantId            string   `protobuf:"bytes,1,opt,name=variant_id,json=variantId" json:"variant_id,omitempty"`
+	VariantId            string   `protobuf:"bytes,1,opt,name=variant_id,json=variantId,proto3" json:"variant_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1620,7 +1620,7 @@ func (m *DeleteVariantRequest) GetVariantId() string {
 
 type GetVariantRequest struct {
 	// The ID of the variant.
-	VariantId            string   `protobuf:"bytes,1,opt,name=variant_id,json=variantId" json:"variant_id,omitempty"`
+	VariantId            string   `protobuf:"bytes,1,opt,name=variant_id,json=variantId,proto3" json:"variant_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1659,12 +1659,12 @@ func (m *GetVariantRequest) GetVariantId() string {
 
 type MergeVariantsRequest struct {
 	// The destination variant set.
-	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,1,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// The variants to be merged with existing variants.
-	Variants []*Variant `protobuf:"bytes,2,rep,name=variants" json:"variants,omitempty"`
+	Variants []*Variant `protobuf:"bytes,2,rep,name=variants,proto3" json:"variants,omitempty"`
 	// A mapping between info field keys and the InfoMergeOperations to
 	// be performed on them.
-	InfoMergeConfig      map[string]InfoMergeOperation `protobuf:"bytes,3,rep,name=info_merge_config,json=infoMergeConfig" json:"info_merge_config,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=google.genomics.v1.InfoMergeOperation"`
+	InfoMergeConfig      map[string]InfoMergeOperation `protobuf:"bytes,3,rep,name=info_merge_config,json=infoMergeConfig,proto3" json:"info_merge_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.genomics.v1.InfoMergeOperation"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -1719,17 +1719,17 @@ func (m *MergeVariantsRequest) GetInfoMergeConfig() map[string]InfoMergeOperatio
 type SearchCallSetsRequest struct {
 	// Restrict the query to call sets within the given variant sets. At least one
 	// ID must be provided.
-	VariantSetIds []string `protobuf:"bytes,1,rep,name=variant_set_ids,json=variantSetIds" json:"variant_set_ids,omitempty"`
+	VariantSetIds []string `protobuf:"bytes,1,rep,name=variant_set_ids,json=variantSetIds,proto3" json:"variant_set_ids,omitempty"`
 	// Only return call sets for which a substring of the name matches this
 	// string.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The maximum number of results to return in a single page. If unspecified,
 	// defaults to 1024.
-	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1790,11 +1790,11 @@ func (m *SearchCallSetsRequest) GetPageSize() int32 {
 // The call set search response.
 type SearchCallSetsResponse struct {
 	// The list of matching call sets.
-	CallSets []*CallSet `protobuf:"bytes,1,rep,name=call_sets,json=callSets" json:"call_sets,omitempty"`
+	CallSets []*CallSet `protobuf:"bytes,1,rep,name=call_sets,json=callSets,proto3" json:"call_sets,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1840,7 +1840,7 @@ func (m *SearchCallSetsResponse) GetNextPageToken() string {
 
 type CreateCallSetRequest struct {
 	// The call set to be created.
-	CallSet              *CallSet `protobuf:"bytes,1,opt,name=call_set,json=callSet" json:"call_set,omitempty"`
+	CallSet              *CallSet `protobuf:"bytes,1,opt,name=call_set,json=callSet,proto3" json:"call_set,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1879,14 +1879,14 @@ func (m *CreateCallSetRequest) GetCallSet() *CallSet {
 
 type UpdateCallSetRequest struct {
 	// The ID of the call set to be updated.
-	CallSetId string `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId" json:"call_set_id,omitempty"`
+	CallSetId string `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId,proto3" json:"call_set_id,omitempty"`
 	// The new call set data.
-	CallSet *CallSet `protobuf:"bytes,2,opt,name=call_set,json=callSet" json:"call_set,omitempty"`
+	CallSet *CallSet `protobuf:"bytes,2,opt,name=call_set,json=callSet,proto3" json:"call_set,omitempty"`
 	// An optional mask specifying which fields to update. At this time, the only
 	// mutable field is [name][google.genomics.v1.CallSet.name]. The only
 	// acceptable value is "name". If unspecified, all mutable fields will be
 	// updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1939,7 +1939,7 @@ func (m *UpdateCallSetRequest) GetUpdateMask() *field_mask.FieldMask {
 
 type DeleteCallSetRequest struct {
 	// The ID of the call set to be deleted.
-	CallSetId            string   `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId" json:"call_set_id,omitempty"`
+	CallSetId            string   `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId,proto3" json:"call_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1978,7 +1978,7 @@ func (m *DeleteCallSetRequest) GetCallSetId() string {
 
 type GetCallSetRequest struct {
 	// The ID of the call set.
-	CallSetId            string   `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId" json:"call_set_id,omitempty"`
+	CallSetId            string   `protobuf:"bytes,1,opt,name=call_set_id,json=callSetId,proto3" json:"call_set_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2020,20 +2020,20 @@ type StreamVariantsRequest struct {
 	// The Google Cloud project ID which will be billed
 	// for this access. The caller must have WRITE access to this project.
 	// Required.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The variant set ID from which to stream variants.
-	VariantSetId string `protobuf:"bytes,2,opt,name=variant_set_id,json=variantSetId" json:"variant_set_id,omitempty"`
+	VariantSetId string `protobuf:"bytes,2,opt,name=variant_set_id,json=variantSetId,proto3" json:"variant_set_id,omitempty"`
 	// Only return variant calls which belong to call sets with these IDs.
 	// Leaving this blank returns all variant calls.
-	CallSetIds []string `protobuf:"bytes,3,rep,name=call_set_ids,json=callSetIds" json:"call_set_ids,omitempty"`
+	CallSetIds []string `protobuf:"bytes,3,rep,name=call_set_ids,json=callSetIds,proto3" json:"call_set_ids,omitempty"`
 	// Required. Only return variants in this reference sequence.
-	ReferenceName string `protobuf:"bytes,4,opt,name=reference_name,json=referenceName" json:"reference_name,omitempty"`
+	ReferenceName string `protobuf:"bytes,4,opt,name=reference_name,json=referenceName,proto3" json:"reference_name,omitempty"`
 	// The beginning of the window (0-based, inclusive) for which
 	// overlapping variants should be returned.
-	Start int64 `protobuf:"varint,5,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,5,opt,name=start,proto3" json:"start,omitempty"`
 	// The end of the window (0-based, exclusive) for which overlapping
 	// variants should be returned.
-	End                  int64    `protobuf:"varint,6,opt,name=end" json:"end,omitempty"`
+	End                  int64    `protobuf:"varint,6,opt,name=end,proto3" json:"end,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2106,7 +2106,7 @@ func (m *StreamVariantsRequest) GetEnd() int64 {
 }
 
 type StreamVariantsResponse struct {
-	Variants             []*Variant `protobuf:"bytes,1,rep,name=variants" json:"variants,omitempty"`
+	Variants             []*Variant `protobuf:"bytes,1,rep,name=variants,proto3" json:"variants,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -2243,8 +2243,7 @@ func (x *streamingVariantServiceStreamVariantsClient) Recv() (*StreamVariantsRes
 	return m, nil
 }
 
-// Server API for StreamingVariantService service
-
+// StreamingVariantServiceServer is the server API for StreamingVariantService service.
 type StreamingVariantServiceServer interface {
 	// Returns a stream of all the variants matching the search request, ordered
 	// by reference name, position, and ID.
@@ -2692,8 +2691,7 @@ func (c *variantServiceV1Client) GetCallSet(ctx context.Context, in *GetCallSetR
 	return out, nil
 }
 
-// Server API for VariantServiceV1 service
-
+// VariantServiceV1Server is the server API for VariantServiceV1 service.
 type VariantServiceV1Server interface {
 	// Creates variant data by asynchronously importing the provided information.
 	//
diff --git a/googleapis/genomics/v1alpha2/pipelines.pb.go b/googleapis/genomics/v1alpha2/pipelines.pb.go
index 3a687c4b98869f750aaef6006706304902a21282..5ebad607141188c9803d45f9552eb460380069db 100644
--- a/googleapis/genomics/v1alpha2/pipelines.pb.go
+++ b/googleapis/genomics/v1alpha2/pipelines.pb.go
@@ -70,13 +70,13 @@ func (PipelineResources_Disk_Type) EnumDescriptor() ([]byte, []int) {
 // [pipeline][google.genomics.v1alpha2.Pipeline].
 type ComputeEngine struct {
 	// The instance on which the operation is running.
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
+	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	// The availability zone in which the instance resides.
-	Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"`
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
 	// The machine type of the instance.
-	MachineType string `protobuf:"bytes,3,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"`
+	MachineType string `protobuf:"bytes,3,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
 	// The names of the disks that were created for this pipeline.
-	DiskNames            []string `protobuf:"bytes,4,rep,name=disk_names,json=diskNames" json:"disk_names,omitempty"`
+	DiskNames            []string `protobuf:"bytes,4,rep,name=disk_names,json=diskNames,proto3" json:"disk_names,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -139,7 +139,7 @@ func (m *ComputeEngine) GetDiskNames() []string {
 // field of the Operation associated with a RunPipeline execution.
 type RuntimeMetadata struct {
 	// Execution information specific to Google Compute Engine.
-	ComputeEngine        *ComputeEngine `protobuf:"bytes,1,opt,name=compute_engine,json=computeEngine" json:"compute_engine,omitempty"`
+	ComputeEngine        *ComputeEngine `protobuf:"bytes,1,opt,name=compute_engine,json=computeEngine,proto3" json:"compute_engine,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -185,16 +185,16 @@ func (m *RuntimeMetadata) GetComputeEngine() *ComputeEngine {
 type Pipeline struct {
 	// Required. The project in which to create the pipeline. The caller must have
 	// WRITE access.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Required. A user specified pipeline name that does not have to be unique.
 	// This name can be used for filtering Pipelines in ListPipelines.
-	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	// User-specified description.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Input parameters of the pipeline.
-	InputParameters []*PipelineParameter `protobuf:"bytes,8,rep,name=input_parameters,json=inputParameters" json:"input_parameters,omitempty"`
+	InputParameters []*PipelineParameter `protobuf:"bytes,8,rep,name=input_parameters,json=inputParameters,proto3" json:"input_parameters,omitempty"`
 	// Output parameters of the pipeline.
-	OutputParameters []*PipelineParameter `protobuf:"bytes,9,rep,name=output_parameters,json=outputParameters" json:"output_parameters,omitempty"`
+	OutputParameters []*PipelineParameter `protobuf:"bytes,9,rep,name=output_parameters,json=outputParameters,proto3" json:"output_parameters,omitempty"`
 	// Required. The executor indicates in which environment the pipeline runs.
 	//
 	// Types that are valid to be assigned to Executor:
@@ -208,13 +208,13 @@ type Pipeline struct {
 	//
 	// *
 	// [minimumRamGb][google.genomics.v1alpha2.PipelineResources.minimum_ram_gb]
-	Resources *PipelineResources `protobuf:"bytes,6,opt,name=resources" json:"resources,omitempty"`
+	Resources *PipelineResources `protobuf:"bytes,6,opt,name=resources,proto3" json:"resources,omitempty"`
 	// Unique pipeline id that is generated by the service when CreatePipeline
 	// is called. Cannot be specified in the Pipeline used in the
 	// CreatePipelineRequest, and will be populated in the response to
 	// CreatePipeline and all subsequent Get and List calls. Indicates that the
 	// service has registered this pipeline.
-	PipelineId           string   `protobuf:"bytes,7,opt,name=pipeline_id,json=pipelineId" json:"pipeline_id,omitempty"`
+	PipelineId           string   `protobuf:"bytes,7,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -249,7 +249,7 @@ type isPipeline_Executor interface {
 }
 
 type Pipeline_Docker struct {
-	Docker *DockerExecutor `protobuf:"bytes,5,opt,name=docker,oneof"`
+	Docker *DockerExecutor `protobuf:"bytes,5,opt,name=docker,proto3,oneof"`
 }
 
 func (*Pipeline_Docker) isPipeline_Executor() {}
@@ -376,7 +376,7 @@ func _Pipeline_OneofSizer(msg proto.Message) (n int) {
 // `pipelineId` populated, as that will be populated by the server.
 type CreatePipelineRequest struct {
 	// The pipeline to create. Should not have `pipelineId` populated.
-	Pipeline             *Pipeline `protobuf:"bytes,1,opt,name=pipeline" json:"pipeline,omitempty"`
+	Pipeline             *Pipeline `protobuf:"bytes,1,opt,name=pipeline,proto3" json:"pipeline,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -418,33 +418,33 @@ type RunPipelineArgs struct {
 	// Required. The project in which to run the pipeline. The caller must have
 	// WRITER access to all Google Cloud services and resources (e.g. Google
 	// Compute Engine) will be used.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Pipeline input arguments; keys are defined in the pipeline documentation.
 	// All input parameters that do not have default values  must be specified.
 	// If parameters with defaults are specified here, the defaults will be
 	// overridden.
-	Inputs map[string]string `protobuf:"bytes,2,rep,name=inputs" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Inputs map[string]string `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Pipeline output arguments; keys are defined in the pipeline
 	// documentation.  All output parameters of without default values
 	// must be specified.  If parameters with defaults are specified
 	// here, the defaults will be overridden.
-	Outputs map[string]string `protobuf:"bytes,3,rep,name=outputs" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Outputs map[string]string `protobuf:"bytes,3,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// The Google Cloud Service Account that will be used to access data and
 	// services. By default, the compute service account associated with
 	// `projectId` is used.
-	ServiceAccount *ServiceAccount `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount *ServiceAccount `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	// This field is deprecated. Use `labels` instead. Client-specified pipeline
 	// operation identifier.
-	ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
+	ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
 	// Specifies resource requirements/overrides for the pipeline run.
-	Resources *PipelineResources `protobuf:"bytes,6,opt,name=resources" json:"resources,omitempty"`
+	Resources *PipelineResources `protobuf:"bytes,6,opt,name=resources,proto3" json:"resources,omitempty"`
 	// Required. Logging options. Used by the service to communicate results
 	// to the user.
-	Logging *LoggingOptions `protobuf:"bytes,7,opt,name=logging" json:"logging,omitempty"`
+	Logging *LoggingOptions `protobuf:"bytes,7,opt,name=logging,proto3" json:"logging,omitempty"`
 	// How long to keep the VM up after a failure (for example docker command
 	// failed, copying input or output files failed, etc). While the VM is up, one
 	// can ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.
-	KeepVmAliveOnFailureDuration *duration.Duration `protobuf:"bytes,8,opt,name=keep_vm_alive_on_failure_duration,json=keepVmAliveOnFailureDuration" json:"keep_vm_alive_on_failure_duration,omitempty"`
+	KeepVmAliveOnFailureDuration *duration.Duration `protobuf:"bytes,8,opt,name=keep_vm_alive_on_failure_duration,json=keepVmAliveOnFailureDuration,proto3" json:"keep_vm_alive_on_failure_duration,omitempty"`
 	// Labels to apply to this pipeline run. Labels will also be applied to
 	// compute resources (VM, disks) created by this pipeline run. When listing
 	// operations, operations can [filtered by labels]
@@ -457,7 +457,7 @@ type RunPipelineArgs struct {
 	// 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.
-	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -563,7 +563,7 @@ type RunPipelineRequest struct {
 	//	*RunPipelineRequest_EphemeralPipeline
 	Pipeline isRunPipelineRequest_Pipeline `protobuf_oneof:"pipeline"`
 	// The arguments to use when running this pipeline.
-	PipelineArgs         *RunPipelineArgs `protobuf:"bytes,3,opt,name=pipeline_args,json=pipelineArgs" json:"pipeline_args,omitempty"`
+	PipelineArgs         *RunPipelineArgs `protobuf:"bytes,3,opt,name=pipeline_args,json=pipelineArgs,proto3" json:"pipeline_args,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -598,10 +598,10 @@ type isRunPipelineRequest_Pipeline interface {
 }
 
 type RunPipelineRequest_PipelineId struct {
-	PipelineId string `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,oneof"`
+	PipelineId string `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,proto3,oneof"`
 }
 type RunPipelineRequest_EphemeralPipeline struct {
-	EphemeralPipeline *Pipeline `protobuf:"bytes,2,opt,name=ephemeral_pipeline,json=ephemeralPipeline,oneof"`
+	EphemeralPipeline *Pipeline `protobuf:"bytes,2,opt,name=ephemeral_pipeline,json=ephemeralPipeline,proto3,oneof"`
 }
 
 func (*RunPipelineRequest_PipelineId) isRunPipelineRequest_Pipeline()        {}
@@ -709,7 +709,7 @@ func _RunPipelineRequest_OneofSizer(msg proto.Message) (n int) {
 type GetPipelineRequest struct {
 	// Caller must have READ access to the project in which this pipeline
 	// is defined.
-	PipelineId           string   `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId" json:"pipeline_id,omitempty"`
+	PipelineId           string   `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -755,17 +755,17 @@ func (m *GetPipelineRequest) GetPipelineId() string {
 type ListPipelinesRequest struct {
 	// Required. The name of the project to search for pipelines. Caller
 	// must have READ access to this project.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Pipelines with names that match this prefix should be
 	// returned.  If unspecified, all pipelines in the project, up to
 	// `pageSize`, will be returned.
-	NamePrefix string `protobuf:"bytes,2,opt,name=name_prefix,json=namePrefix" json:"name_prefix,omitempty"`
+	NamePrefix string `protobuf:"bytes,2,opt,name=name_prefix,json=namePrefix,proto3" json:"name_prefix,omitempty"`
 	// Number of pipelines to return at once. Defaults to 256, and max
 	// is 2048.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Token to use to indicate where to start getting results.
 	// If unspecified, returns the first page of results.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -830,9 +830,9 @@ func (m *ListPipelinesRequest) GetPageToken() string {
 // request.
 type ListPipelinesResponse struct {
 	// The matched pipelines.
-	Pipelines []*Pipeline `protobuf:"bytes,1,rep,name=pipelines" json:"pipelines,omitempty"`
+	Pipelines []*Pipeline `protobuf:"bytes,1,rep,name=pipelines,proto3" json:"pipelines,omitempty"`
 	// The token to use to get the next page of results.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -880,7 +880,7 @@ func (m *ListPipelinesResponse) GetNextPageToken() string {
 type DeletePipelineRequest struct {
 	// Caller must have WRITE access to the project in which this pipeline
 	// is defined.
-	PipelineId           string   `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId" json:"pipeline_id,omitempty"`
+	PipelineId           string   `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -921,8 +921,8 @@ func (m *DeletePipelineRequest) GetPipelineId() string {
 // by VMs created by the Pipelines Service and not by end users.
 type GetControllerConfigRequest struct {
 	// The operation to retrieve controller configuration for.
-	OperationId          string   `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
-	ValidationToken      uint64   `protobuf:"varint,2,opt,name=validation_token,json=validationToken" json:"validation_token,omitempty"`
+	OperationId          string   `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
+	ValidationToken      uint64   `protobuf:"varint,2,opt,name=validation_token,json=validationToken,proto3" json:"validation_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -970,14 +970,14 @@ func (m *GetControllerConfigRequest) GetValidationToken() uint64 {
 // server in order to run. Should only be used by VMs created by the
 // Pipelines Service and not by end users.
 type ControllerConfig struct {
-	Image                string                                      `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"`
-	Cmd                  string                                      `protobuf:"bytes,2,opt,name=cmd" json:"cmd,omitempty"`
-	GcsLogPath           string                                      `protobuf:"bytes,3,opt,name=gcs_log_path,json=gcsLogPath" json:"gcs_log_path,omitempty"`
-	MachineType          string                                      `protobuf:"bytes,4,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"`
-	Vars                 map[string]string                           `protobuf:"bytes,5,rep,name=vars" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
-	Disks                map[string]string                           `protobuf:"bytes,6,rep,name=disks" json:"disks,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
-	GcsSources           map[string]*ControllerConfig_RepeatedString `protobuf:"bytes,7,rep,name=gcs_sources,json=gcsSources" json:"gcs_sources,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
-	GcsSinks             map[string]*ControllerConfig_RepeatedString `protobuf:"bytes,8,rep,name=gcs_sinks,json=gcsSinks" json:"gcs_sinks,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Image                string                                      `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
+	Cmd                  string                                      `protobuf:"bytes,2,opt,name=cmd,proto3" json:"cmd,omitempty"`
+	GcsLogPath           string                                      `protobuf:"bytes,3,opt,name=gcs_log_path,json=gcsLogPath,proto3" json:"gcs_log_path,omitempty"`
+	MachineType          string                                      `protobuf:"bytes,4,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
+	Vars                 map[string]string                           `protobuf:"bytes,5,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	Disks                map[string]string                           `protobuf:"bytes,6,rep,name=disks,proto3" json:"disks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	GcsSources           map[string]*ControllerConfig_RepeatedString `protobuf:"bytes,7,rep,name=gcs_sources,json=gcsSources,proto3" json:"gcs_sources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	GcsSinks             map[string]*ControllerConfig_RepeatedString `protobuf:"bytes,8,rep,name=gcs_sinks,json=gcsSinks,proto3" json:"gcs_sinks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
 	XXX_unrecognized     []byte                                      `json:"-"`
 	XXX_sizecache        int32                                       `json:"-"`
@@ -1064,7 +1064,7 @@ func (m *ControllerConfig) GetGcsSinks() map[string]*ControllerConfig_RepeatedSt
 }
 
 type ControllerConfig_RepeatedString struct {
-	Values               []string `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values               []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1105,9 +1105,9 @@ func (m *ControllerConfig_RepeatedString) GetValues() []string {
 // execution.
 type TimestampEvent struct {
 	// String indicating the type of event
-	Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
 	// The time this event occured.
-	Timestamp            *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
+	Timestamp            *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1154,11 +1154,11 @@ func (m *TimestampEvent) GetTimestamp() *timestamp.Timestamp {
 // Request to set operation status. Should only be used by VMs
 // created by the Pipelines Service and not by end users.
 type SetOperationStatusRequest struct {
-	OperationId          string            `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
-	TimestampEvents      []*TimestampEvent `protobuf:"bytes,2,rep,name=timestamp_events,json=timestampEvents" json:"timestamp_events,omitempty"`
-	ErrorCode            code.Code         `protobuf:"varint,3,opt,name=error_code,json=errorCode,enum=google.rpc.Code" json:"error_code,omitempty"`
-	ErrorMessage         string            `protobuf:"bytes,4,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
-	ValidationToken      uint64            `protobuf:"varint,5,opt,name=validation_token,json=validationToken" json:"validation_token,omitempty"`
+	OperationId          string            `protobuf:"bytes,1,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
+	TimestampEvents      []*TimestampEvent `protobuf:"bytes,2,rep,name=timestamp_events,json=timestampEvents,proto3" json:"timestamp_events,omitempty"`
+	ErrorCode            code.Code         `protobuf:"varint,3,opt,name=error_code,json=errorCode,proto3,enum=google.rpc.Code" json:"error_code,omitempty"`
+	ErrorMessage         string            `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
+	ValidationToken      uint64            `protobuf:"varint,5,opt,name=validation_token,json=validationToken,proto3" json:"validation_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1227,7 +1227,7 @@ func (m *SetOperationStatusRequest) GetValidationToken() uint64 {
 type ServiceAccount struct {
 	// Email address of the service account. Defaults to `default`,
 	// which uses the compute service account associated with the project.
-	Email string `protobuf:"bytes,1,opt,name=email" json:"email,omitempty"`
+	Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
 	// List of scopes to be enabled for this service account on the VM.
 	// The following scopes are automatically included:
 	//
@@ -1236,7 +1236,7 @@ type ServiceAccount struct {
 	// * https://www.googleapis.com/auth/genomics
 	// * https://www.googleapis.com/auth/logging.write
 	// * https://www.googleapis.com/auth/monitoring.write
-	Scopes               []string `protobuf:"bytes,2,rep,name=scopes" json:"scopes,omitempty"`
+	Scopes               []string `protobuf:"bytes,2,rep,name=scopes,proto3" json:"scopes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1290,7 +1290,7 @@ type LoggingOptions struct {
 	// used, and the user must ensure that logs are not
 	// overwritten. Stdout and stderr logs from the run are also
 	// generated and output as `-stdout.log` and `-stderr.log`.
-	GcsPath              string   `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath" json:"gcs_path,omitempty"`
+	GcsPath              string   `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3" json:"gcs_path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1330,20 +1330,20 @@ func (m *LoggingOptions) GetGcsPath() string {
 // The system resources for the pipeline run.
 type PipelineResources struct {
 	// The minimum number of cores to use. Defaults to 1.
-	MinimumCpuCores int32 `protobuf:"varint,1,opt,name=minimum_cpu_cores,json=minimumCpuCores" json:"minimum_cpu_cores,omitempty"`
+	MinimumCpuCores int32 `protobuf:"varint,1,opt,name=minimum_cpu_cores,json=minimumCpuCores,proto3" json:"minimum_cpu_cores,omitempty"`
 	// Whether to use preemptible VMs. Defaults to `false`. In order to use this,
 	// must be true for both create time and run time. Cannot be true at run time
 	// if false at create time.
-	Preemptible bool `protobuf:"varint,2,opt,name=preemptible" json:"preemptible,omitempty"`
+	Preemptible bool `protobuf:"varint,2,opt,name=preemptible,proto3" json:"preemptible,omitempty"`
 	// The minimum amount of RAM to use. Defaults to 3.75 (GB)
-	MinimumRamGb float64 `protobuf:"fixed64,3,opt,name=minimum_ram_gb,json=minimumRamGb" json:"minimum_ram_gb,omitempty"`
+	MinimumRamGb float64 `protobuf:"fixed64,3,opt,name=minimum_ram_gb,json=minimumRamGb,proto3" json:"minimum_ram_gb,omitempty"`
 	// Disks to attach.
-	Disks []*PipelineResources_Disk `protobuf:"bytes,4,rep,name=disks" json:"disks,omitempty"`
+	Disks []*PipelineResources_Disk `protobuf:"bytes,4,rep,name=disks,proto3" json:"disks,omitempty"`
 	// List of Google Compute Engine availability zones to which resource
 	// creation will restricted. If empty, any zone may be chosen.
-	Zones []string `protobuf:"bytes,5,rep,name=zones" json:"zones,omitempty"`
+	Zones []string `protobuf:"bytes,5,rep,name=zones,proto3" json:"zones,omitempty"`
 	// The size of the boot disk. Defaults to 10 (GB).
-	BootDiskSizeGb int32 `protobuf:"varint,6,opt,name=boot_disk_size_gb,json=bootDiskSizeGb" json:"boot_disk_size_gb,omitempty"`
+	BootDiskSizeGb int32 `protobuf:"varint,6,opt,name=boot_disk_size_gb,json=bootDiskSizeGb,proto3" json:"boot_disk_size_gb,omitempty"`
 	// Whether to assign an external IP to the instance. This is an experimental
 	// feature that may go away. Defaults to false.
 	// Corresponds to `--no_address` flag for [gcloud compute instances create]
@@ -1355,7 +1355,7 @@ type PipelineResources struct {
 	// only load docker images from Google Container Registry and not Docker Hub.
 	// ** Note: To use this option, your project must be in Google Access for
 	// Private IPs Early Access Program.**
-	NoAddress            bool     `protobuf:"varint,7,opt,name=no_address,json=noAddress" json:"no_address,omitempty"`
+	NoAddress            bool     `protobuf:"varint,7,opt,name=no_address,json=noAddress,proto3" json:"no_address,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1439,28 +1439,28 @@ type PipelineResources_Disk struct {
 	// 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.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The type of the disk to create.
-	Type PipelineResources_Disk_Type `protobuf:"varint,2,opt,name=type,enum=google.genomics.v1alpha2.PipelineResources_Disk_Type" json:"type,omitempty"`
+	Type PipelineResources_Disk_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.genomics.v1alpha2.PipelineResources_Disk_Type" json:"type,omitempty"`
 	// The size of the disk. Defaults to 500 (GB).
 	// This field is not applicable for local SSD.
-	SizeGb int32 `protobuf:"varint,3,opt,name=size_gb,json=sizeGb" json:"size_gb,omitempty"`
+	SizeGb int32 `protobuf:"varint,3,opt,name=size_gb,json=sizeGb,proto3" json:"size_gb,omitempty"`
 	// 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.
-	Source string `protobuf:"bytes,4,opt,name=source" json:"source,omitempty"`
+	Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
 	// 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.
-	AutoDelete bool `protobuf:"varint,6,opt,name=auto_delete,json=autoDelete" json:"auto_delete,omitempty"`
+	AutoDelete bool `protobuf:"varint,6,opt,name=auto_delete,json=autoDelete,proto3" json:"auto_delete,omitempty"`
 	// 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`
 	// is `/mnt/disk`, and the parameter has `localPath`
 	// `inputs/file.txt`, the docker container can access the data at
 	// `/mnt/disk/inputs/file.txt`.
-	MountPoint           string   `protobuf:"bytes,8,opt,name=mount_point,json=mountPoint" json:"mount_point,omitempty"`
+	MountPoint           string   `protobuf:"bytes,8,opt,name=mount_point,json=mountPoint,proto3" json:"mount_point,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1626,18 +1626,18 @@ func (m *PipelineResources_Disk) GetMountPoint() string {
 type PipelineParameter struct {
 	// Required. Name of the parameter - the pipeline runner uses this string
 	// as the key to the input and output maps in RunPipeline.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Human-readable description.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// 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://`.
-	DefaultValue string `protobuf:"bytes,5,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"`
+	DefaultValue string `protobuf:"bytes,5,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
 	// 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`)
 	// must be the remote path where the file should be.
-	LocalCopy            *PipelineParameter_LocalCopy `protobuf:"bytes,6,opt,name=local_copy,json=localCopy" json:"local_copy,omitempty"`
+	LocalCopy            *PipelineParameter_LocalCopy `protobuf:"bytes,6,opt,name=local_copy,json=localCopy,proto3" json:"local_copy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -1700,12 +1700,12 @@ type PipelineParameter_LocalCopy struct {
 	// Required. The path within the user's docker container where
 	// this input should be localized to and from, relative to the specified
 	// disk's mount point. For example: file.txt,
-	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	// Required. The name of the disk where this parameter is
 	// located. Can be the name of one of the disks specified in the
 	// Resources field, or "boot", which represents the Docker
 	// instance's boot disk and has a mount point of `/`.
-	Disk                 string   `protobuf:"bytes,2,opt,name=disk" json:"disk,omitempty"`
+	Disk                 string   `protobuf:"bytes,2,opt,name=disk,proto3" json:"disk,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1753,7 +1753,7 @@ func (m *PipelineParameter_LocalCopy) GetDisk() string {
 type DockerExecutor struct {
 	// Required. Image name from either Docker Hub or Google Container Registry.
 	// Users that run pipelines must have READ access to the image.
-	ImageName string `protobuf:"bytes,1,opt,name=image_name,json=imageName" json:"image_name,omitempty"`
+	ImageName string `protobuf:"bytes,1,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
 	// Required. The command or newline delimited script to run. The command
 	// string will be executed within a bash shell.
 	//
@@ -1762,7 +1762,7 @@ type DockerExecutor struct {
 	// [`error`][google.longrunning.Operation.error] field will be populated.
 	//
 	// Maximum command string length is 16384.
-	Cmd                  string   `protobuf:"bytes,2,opt,name=cmd" json:"cmd,omitempty"`
+	Cmd                  string   `protobuf:"bytes,2,opt,name=cmd,proto3" json:"cmd,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1958,8 +1958,7 @@ func (c *pipelinesV1Alpha2Client) SetOperationStatus(ctx context.Context, in *Se
 	return out, nil
 }
 
-// Server API for PipelinesV1Alpha2 service
-
+// PipelinesV1Alpha2Server is the server API for PipelinesV1Alpha2 service.
 type PipelinesV1Alpha2Server interface {
 	// Creates a pipeline that can be run later. Create takes a Pipeline that
 	// has all fields other than `pipelineId` populated, and then returns
diff --git a/googleapis/home/graph/v1/homegraph.pb.go b/googleapis/home/graph/v1/homegraph.pb.go
index 6695dfeed6d2e2608c7149780381d51ab5868eee..5a1e3149ed36aae51832eb5ecee571c67694dd93 100644
--- a/googleapis/home/graph/v1/homegraph.pb.go
+++ b/googleapis/home/graph/v1/homegraph.pb.go
@@ -30,11 +30,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type RequestSyncDevicesRequest struct {
 	// Required. Third-party user id issued by agent's third-party identity
 	// provider.
-	AgentUserId string `protobuf:"bytes,1,opt,name=agent_user_id,json=agentUserId" json:"agent_user_id,omitempty"`
+	AgentUserId string `protobuf:"bytes,1,opt,name=agent_user_id,json=agentUserId,proto3" json:"agent_user_id,omitempty"`
 	// Optional. If set, the request will be added to a queue and a response will
 	// be returned immediately. The queue allows for de-duplication of
 	// simultaneous requests.
-	Async                bool     `protobuf:"varint,2,opt,name=async" json:"async,omitempty"`
+	Async                bool     `protobuf:"varint,2,opt,name=async,proto3" json:"async,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -158,11 +158,11 @@ var xxx_messageInfo_RequestSyncDevicesResponse proto.InternalMessageInfo
 // Next tag: 5.
 type ReportStateAndNotificationRequest struct {
 	// Request id used for debugging.
-	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	// Unique identifier per event (eg: doorbell press).
-	EventId string `protobuf:"bytes,4,opt,name=event_id,json=eventId" json:"event_id,omitempty"`
+	EventId string `protobuf:"bytes,4,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
 	// Required. Third-party user id.
-	AgentUserId string `protobuf:"bytes,2,opt,name=agent_user_id,json=agentUserId" json:"agent_user_id,omitempty"`
+	AgentUserId string `protobuf:"bytes,2,opt,name=agent_user_id,json=agentUserId,proto3" json:"agent_user_id,omitempty"`
 	// State of devices to update and notification metadata for devices. For
 	// example, if a user turns a light on manually, a State update should be
 	// sent so that the information is always the current status of the device.
@@ -173,7 +173,7 @@ type ReportStateAndNotificationRequest struct {
 	// include both "on" and "70 degrees" but the 3p may choose not to send any
 	// notification for that, or to only say that the "the room is heating up",
 	// keeping state and notification independent.
-	Payload              *StateAndNotificationPayload `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"`
+	Payload              *StateAndNotificationPayload `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -234,7 +234,7 @@ func (m *ReportStateAndNotificationRequest) GetPayload() *StateAndNotificationPa
 // Response type for ReportStateAndNotification call.
 type ReportStateAndNotificationResponse struct {
 	// Request id copied from ReportStateAndNotificationRequest.
-	RequestId            string   `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId            string   `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -274,7 +274,7 @@ func (m *ReportStateAndNotificationResponse) GetRequestId() string {
 // Payload containing the State and Notification information for devices.
 type StateAndNotificationPayload struct {
 	// The devices for updating State and sending Notifications.
-	Devices              *ReportStateAndNotificationDevice `protobuf:"bytes,1,opt,name=devices" json:"devices,omitempty"`
+	Devices              *ReportStateAndNotificationDevice `protobuf:"bytes,1,opt,name=devices,proto3" json:"devices,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
 	XXX_unrecognized     []byte                            `json:"-"`
 	XXX_sizecache        int32                             `json:"-"`
@@ -314,9 +314,9 @@ func (m *StateAndNotificationPayload) GetDevices() *ReportStateAndNotificationDe
 // The States and Notifications specific to a device.
 type ReportStateAndNotificationDevice struct {
 	// States of devices to update.
-	States *_struct.Struct `protobuf:"bytes,1,opt,name=states" json:"states,omitempty"`
+	States *_struct.Struct `protobuf:"bytes,1,opt,name=states,proto3" json:"states,omitempty"`
 	// Notifications metadata for devices.
-	Notifications        *_struct.Struct `protobuf:"bytes,2,opt,name=notifications" json:"notifications,omitempty"`
+	Notifications        *_struct.Struct `protobuf:"bytes,2,opt,name=notifications,proto3" json:"notifications,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -363,9 +363,9 @@ func (m *ReportStateAndNotificationDevice) GetNotifications() *_struct.Struct {
 // Request type for DeleteAgentUser call.
 type DeleteAgentUserRequest struct {
 	// Request id used for debugging.
-	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	// Required. Third-party user id.
-	AgentUserId          string   `protobuf:"bytes,2,opt,name=agent_user_id,json=agentUserId" json:"agent_user_id,omitempty"`
+	AgentUserId          string   `protobuf:"bytes,2,opt,name=agent_user_id,json=agentUserId,proto3" json:"agent_user_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -497,8 +497,7 @@ func (c *homeGraphApiServiceClient) DeleteAgentUser(ctx context.Context, in *Del
 	return out, nil
 }
 
-// Server API for HomeGraphApiService service
-
+// HomeGraphApiServiceServer is the server API for HomeGraphApiService service.
 type HomeGraphApiServiceServer interface {
 	// Requests a Sync call from Google to a 3p partner's home control agent for
 	// a user.
diff --git a/googleapis/iam/admin/v1/iam.pb.go b/googleapis/iam/admin/v1/iam.pb.go
index 099da8e8292435fb13bdf49331b4a242882be8fe..fec056089655a7df2061205a8ab85a1973951e86 100644
--- a/googleapis/iam/admin/v1/iam.pb.go
+++ b/googleapis/iam/admin/v1/iam.pb.go
@@ -313,22 +313,22 @@ type ServiceAccount struct {
 	//
 	// In responses the resource name will always be in the format
 	// `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// @OutputOnly The id of the project that owns the service account.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// @OutputOnly The unique and stable id of the service account.
-	UniqueId string `protobuf:"bytes,4,opt,name=unique_id,json=uniqueId" json:"unique_id,omitempty"`
+	UniqueId string `protobuf:"bytes,4,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"`
 	// @OutputOnly The email address of the service account.
-	Email string `protobuf:"bytes,5,opt,name=email" json:"email,omitempty"`
+	Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
 	// Optional. A user-specified description of the service account.  Must be
 	// fewer than 100 UTF-8 bytes.
-	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Used to perform a consistent read-modify-write.
 	Etag []byte `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"`
 	// @OutputOnly. The OAuth2 client id for the service account.
 	// This is used in conjunction with the OAuth2 clientconfig API to make
 	// three legged OAuth2 (3LO) flows to access the data of Google users.
-	Oauth2ClientId       string   `protobuf:"bytes,9,opt,name=oauth2_client_id,json=oauth2ClientId" json:"oauth2_client_id,omitempty"`
+	Oauth2ClientId       string   `protobuf:"bytes,9,opt,name=oauth2_client_id,json=oauth2ClientId,proto3" json:"oauth2_client_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -411,16 +411,16 @@ func (m *ServiceAccount) GetOauth2ClientId() string {
 type CreateServiceAccountRequest struct {
 	// Required. The resource name of the project associated with the service
 	// accounts, such as `projects/my-project-123`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The account id that is used to generate the service account
 	// email address and a stable unique id. It is unique within a project,
 	// must be 6-30 characters long, and match the regular expression
 	// `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
-	AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
+	AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
 	// The [ServiceAccount][google.iam.admin.v1.ServiceAccount] resource to create.
 	// Currently, only the following values are user assignable:
 	// `display_name` .
-	ServiceAccount       *ServiceAccount `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
+	ServiceAccount       *ServiceAccount `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -475,15 +475,15 @@ func (m *CreateServiceAccountRequest) GetServiceAccount() *ServiceAccount {
 type ListServiceAccountsRequest struct {
 	// Required. The resource name of the project associated with the service
 	// accounts, such as `projects/my-project-123`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional limit on the number of service accounts to include in the
 	// response. Further accounts can subsequently be obtained by including the
 	// [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token]
 	// in a subsequent request.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional pagination token returned in an earlier
 	// [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token].
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -537,11 +537,11 @@ func (m *ListServiceAccountsRequest) GetPageToken() string {
 // The service account list response.
 type ListServiceAccountsResponse struct {
 	// The list of matching service accounts.
-	Accounts []*ServiceAccount `protobuf:"bytes,1,rep,name=accounts" json:"accounts,omitempty"`
+	Accounts []*ServiceAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"`
 	// To retrieve the next page of results, set
 	// [ListServiceAccountsRequest.page_token][google.iam.admin.v1.ListServiceAccountsRequest.page_token]
 	// to this value.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -592,7 +592,7 @@ type GetServiceAccountRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -636,7 +636,7 @@ type DeleteServiceAccountRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -681,11 +681,11 @@ type ListServiceAccountKeysRequest struct {
 	// Using `-` as a wildcard for the project, will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Filters the types of keys the user wants to include in the list
 	// response. Duplicate key types are not allowed. If no key type
 	// is provided, all keys are returned.
-	KeyTypes             []ListServiceAccountKeysRequest_KeyType `protobuf:"varint,2,rep,packed,name=key_types,json=keyTypes,enum=google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType" json:"key_types,omitempty"`
+	KeyTypes             []ListServiceAccountKeysRequest_KeyType `protobuf:"varint,2,rep,packed,name=key_types,json=keyTypes,proto3,enum=google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType" json:"key_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
 	XXX_unrecognized     []byte                                  `json:"-"`
 	XXX_sizecache        int32                                   `json:"-"`
@@ -732,7 +732,7 @@ func (m *ListServiceAccountKeysRequest) GetKeyTypes() []ListServiceAccountKeysRe
 // The service account keys list response.
 type ListServiceAccountKeysResponse struct {
 	// The public keys for the service account.
-	Keys                 []*ServiceAccountKey `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys                 []*ServiceAccountKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -777,10 +777,10 @@ type GetServiceAccountKeyRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The output format of the public key requested.
 	// X509_PEM is the default output format.
-	PublicKeyType        ServiceAccountPublicKeyType `protobuf:"varint,2,opt,name=public_key_type,json=publicKeyType,enum=google.iam.admin.v1.ServiceAccountPublicKeyType" json:"public_key_type,omitempty"`
+	PublicKeyType        ServiceAccountPublicKeyType `protobuf:"varint,2,opt,name=public_key_type,json=publicKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPublicKeyType" json:"public_key_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
 	XXX_unrecognized     []byte                      `json:"-"`
 	XXX_sizecache        int32                       `json:"-"`
@@ -843,16 +843,16 @@ func (m *GetServiceAccountKeyRequest) GetPublicKeyType() ServiceAccountPublicKey
 type ServiceAccountKey struct {
 	// The resource name of the service account key in the following format
 	// `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The output format for the private key.
 	// Only provided in `CreateServiceAccountKey` responses, not
 	// in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
 	//
 	// Google never exposes system-managed private keys, and never retains
 	// user-managed private keys.
-	PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
+	PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
 	// Specifies the algorithm (and possibly key size) for the key.
-	KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,8,opt,name=key_algorithm,json=keyAlgorithm,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
+	KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,8,opt,name=key_algorithm,json=keyAlgorithm,proto3,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
 	// The private key data. Only provided in `CreateServiceAccountKey`
 	// responses. Make sure to keep the private key data secure because it
 	// allows for the assertion of the service account identity.
@@ -864,9 +864,9 @@ type ServiceAccountKey struct {
 	// The public key data. Only provided in `GetServiceAccountKey` responses.
 	PublicKeyData []byte `protobuf:"bytes,7,opt,name=public_key_data,json=publicKeyData,proto3" json:"public_key_data,omitempty"`
 	// The key can be used after this timestamp.
-	ValidAfterTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=valid_after_time,json=validAfterTime" json:"valid_after_time,omitempty"`
+	ValidAfterTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=valid_after_time,json=validAfterTime,proto3" json:"valid_after_time,omitempty"`
 	// The key can be used before this timestamp.
-	ValidBeforeTime      *timestamp.Timestamp `protobuf:"bytes,5,opt,name=valid_before_time,json=validBeforeTime" json:"valid_before_time,omitempty"`
+	ValidBeforeTime      *timestamp.Timestamp `protobuf:"bytes,5,opt,name=valid_before_time,json=validBeforeTime,proto3" json:"valid_before_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -952,14 +952,14 @@ type CreateServiceAccountKeyRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the
 	// default output format.
-	PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
+	PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,proto3,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
 	// 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.
-	KeyAlgorithm         ServiceAccountKeyAlgorithm `protobuf:"varint,3,opt,name=key_algorithm,json=keyAlgorithm,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
+	KeyAlgorithm         ServiceAccountKeyAlgorithm `protobuf:"varint,3,opt,name=key_algorithm,json=keyAlgorithm,proto3,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
 	XXX_unrecognized     []byte                     `json:"-"`
 	XXX_sizecache        int32                      `json:"-"`
@@ -1017,7 +1017,7 @@ type DeleteServiceAccountKeyRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1061,7 +1061,7 @@ type SignBlobRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The bytes to sign.
 	BytesToSign          []byte   `protobuf:"bytes,2,opt,name=bytes_to_sign,json=bytesToSign,proto3" json:"bytes_to_sign,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1110,7 +1110,7 @@ func (m *SignBlobRequest) GetBytesToSign() []byte {
 // The service account sign blob response.
 type SignBlobResponse struct {
 	// The id of the key used to sign the blob.
-	KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId" json:"key_id,omitempty"`
+	KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"`
 	// The signed blob.
 	Signature            []byte   `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1163,9 +1163,9 @@ type SignJwtRequest struct {
 	// Using `-` as a wildcard for the project will infer the project from
 	// the account. The `account` value can be the `email` address or the
 	// `unique_id` of the service account.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The JWT payload to sign, a JSON JWT Claim set.
-	Payload              string   `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"`
+	Payload              string   `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1212,9 +1212,9 @@ func (m *SignJwtRequest) GetPayload() string {
 // The service account sign JWT response.
 type SignJwtResponse struct {
 	// The id of the key used to sign the JWT.
-	KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId" json:"key_id,omitempty"`
+	KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"`
 	// The signed JWT.
-	SignedJwt            string   `protobuf:"bytes,2,opt,name=signed_jwt,json=signedJwt" json:"signed_jwt,omitempty"`
+	SignedJwt            string   `protobuf:"bytes,2,opt,name=signed_jwt,json=signedJwt,proto3" json:"signed_jwt,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1267,21 +1267,21 @@ type Role struct {
 	// 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.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional.  A human-readable title for the role.  Typically this
 	// is limited to 100 UTF-8 bytes.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// Optional.  A human-readable description for the role.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The names of the permissions this role grants when bound in an IAM policy.
-	IncludedPermissions []string `protobuf:"bytes,7,rep,name=included_permissions,json=includedPermissions" json:"included_permissions,omitempty"`
+	IncludedPermissions []string `protobuf:"bytes,7,rep,name=included_permissions,json=includedPermissions,proto3" json:"included_permissions,omitempty"`
 	// The current launch stage of the role.
-	Stage Role_RoleLaunchStage `protobuf:"varint,8,opt,name=stage,enum=google.iam.admin.v1.Role_RoleLaunchStage" json:"stage,omitempty"`
+	Stage Role_RoleLaunchStage `protobuf:"varint,8,opt,name=stage,proto3,enum=google.iam.admin.v1.Role_RoleLaunchStage" json:"stage,omitempty"`
 	// Used to perform a consistent read-modify-write.
 	Etag []byte `protobuf:"bytes,9,opt,name=etag,proto3" json:"etag,omitempty"`
 	// The current deleted state of the role. This field is read only.
 	// It will be ignored in calls to CreateRole and UpdateRole.
-	Deleted              bool     `protobuf:"varint,11,opt,name=deleted" json:"deleted,omitempty"`
+	Deleted              bool     `protobuf:"varint,11,opt,name=deleted,proto3" json:"deleted,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1367,13 +1367,13 @@ type QueryGrantableRolesRequest struct {
 	// 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`.
-	FullResourceName string   `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName" json:"full_resource_name,omitempty"`
-	View             RoleView `protobuf:"varint,2,opt,name=view,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"`
+	FullResourceName string   `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"`
+	View             RoleView `protobuf:"varint,2,opt,name=view,proto3,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"`
 	// Optional limit on the number of roles to include in the response.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional pagination token returned in an earlier
 	// QueryGrantableRolesResponse.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1434,10 +1434,10 @@ func (m *QueryGrantableRolesRequest) GetPageToken() string {
 // The grantable role query response.
 type QueryGrantableRolesResponse struct {
 	// The list of matching roles.
-	Roles []*Role `protobuf:"bytes,1,rep,name=roles" json:"roles,omitempty"`
+	Roles []*Role `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"`
 	// To retrieve the next page of results, set
 	// `QueryGrantableRolesRequest.page_token` to this value.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1487,15 +1487,15 @@ type ListRolesRequest struct {
 	// `` (empty string) -- this refers to curated roles.
 	// `organizations/{ORGANIZATION_ID}`
 	// `projects/{PROJECT_ID}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional limit on the number of roles to include in the response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional pagination token returned in an earlier ListRolesResponse.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional view for the returned Role objects.
-	View RoleView `protobuf:"varint,4,opt,name=view,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"`
+	View RoleView `protobuf:"varint,4,opt,name=view,proto3,enum=google.iam.admin.v1.RoleView" json:"view,omitempty"`
 	// Include Roles that have been deleted.
-	ShowDeleted          bool     `protobuf:"varint,6,opt,name=show_deleted,json=showDeleted" json:"show_deleted,omitempty"`
+	ShowDeleted          bool     `protobuf:"varint,6,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1563,10 +1563,10 @@ func (m *ListRolesRequest) GetShowDeleted() bool {
 // The response containing the roles defined under a resource.
 type ListRolesResponse struct {
 	// The Roles defined on this resource.
-	Roles []*Role `protobuf:"bytes,1,rep,name=roles" json:"roles,omitempty"`
+	Roles []*Role `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"`
 	// To retrieve the next page of results, set
 	// `ListRolesRequest.page_token` to this value.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1616,7 +1616,7 @@ type GetRoleRequest struct {
 	// `roles/{ROLE_NAME}`
 	// `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
 	// `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1658,11 +1658,11 @@ type CreateRoleRequest struct {
 	// The resource name of the parent resource in one of the following formats:
 	// `organizations/{ORGANIZATION_ID}`
 	// `projects/{PROJECT_ID}`
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The role id to use for this role.
-	RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId" json:"role_id,omitempty"`
+	RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
 	// The Role resource to create.
-	Role                 *Role    `protobuf:"bytes,3,opt,name=role" json:"role,omitempty"`
+	Role                 *Role    `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1719,11 +1719,11 @@ type UpdateRoleRequest struct {
 	// `roles/{ROLE_NAME}`
 	// `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
 	// `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The updated role.
-	Role *Role `protobuf:"bytes,2,opt,name=role" json:"role,omitempty"`
+	Role *Role `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
 	// A mask describing which fields in the Role have changed.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1779,7 +1779,7 @@ type DeleteRoleRequest struct {
 	// The resource name of the role in one of the following formats:
 	// `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
 	// `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Used to perform a consistent read-modify-write.
 	Etag                 []byte   `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1830,7 +1830,7 @@ type UndeleteRoleRequest struct {
 	// The resource name of the role in one of the following formats:
 	// `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}`
 	// `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Used to perform a consistent read-modify-write.
 	Etag                 []byte   `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1879,17 +1879,17 @@ func (m *UndeleteRoleRequest) GetEtag() []byte {
 // A permission which can be included by a role.
 type Permission struct {
 	// The name of this Permission.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The title of this Permission.
-	Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
 	// A brief description of what this Permission is used for.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// This permission can ONLY be used in predefined roles.
-	OnlyInPredefinedRoles bool `protobuf:"varint,4,opt,name=only_in_predefined_roles,json=onlyInPredefinedRoles" json:"only_in_predefined_roles,omitempty"`
+	OnlyInPredefinedRoles bool `protobuf:"varint,4,opt,name=only_in_predefined_roles,json=onlyInPredefinedRoles,proto3" json:"only_in_predefined_roles,omitempty"`
 	// The current launch stage of the permission.
-	Stage Permission_PermissionLaunchStage `protobuf:"varint,5,opt,name=stage,enum=google.iam.admin.v1.Permission_PermissionLaunchStage" json:"stage,omitempty"`
+	Stage Permission_PermissionLaunchStage `protobuf:"varint,5,opt,name=stage,proto3,enum=google.iam.admin.v1.Permission_PermissionLaunchStage" json:"stage,omitempty"`
 	// The current custom role support level.
-	CustomRolesSupportLevel Permission_CustomRolesSupportLevel `protobuf:"varint,6,opt,name=custom_roles_support_level,json=customRolesSupportLevel,enum=google.iam.admin.v1.Permission_CustomRolesSupportLevel" json:"custom_roles_support_level,omitempty"`
+	CustomRolesSupportLevel Permission_CustomRolesSupportLevel `protobuf:"varint,6,opt,name=custom_roles_support_level,json=customRolesSupportLevel,proto3,enum=google.iam.admin.v1.Permission_CustomRolesSupportLevel" json:"custom_roles_support_level,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}                           `json:"-"`
 	XXX_unrecognized        []byte                             `json:"-"`
 	XXX_sizecache           int32                              `json:"-"`
@@ -1969,12 +1969,12 @@ type QueryTestablePermissionsRequest struct {
 	// 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`.
-	FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName" json:"full_resource_name,omitempty"`
+	FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName,proto3" json:"full_resource_name,omitempty"`
 	// Optional limit on the number of permissions to include in the response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional pagination token returned in an earlier
 	// QueryTestablePermissionsRequest.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2028,10 +2028,10 @@ func (m *QueryTestablePermissionsRequest) GetPageToken() string {
 // The response containing permissions which can be tested on a resource.
 type QueryTestablePermissionsResponse struct {
 	// The Permissions testable on the requested resource.
-	Permissions []*Permission `protobuf:"bytes,1,rep,name=permissions" json:"permissions,omitempty"`
+	Permissions []*Permission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"`
 	// To retrieve the next page of results, set
 	// `QueryTestableRolesRequest.page_token` to this value.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2402,8 +2402,7 @@ func (c *iAMClient) QueryTestablePermissions(ctx context.Context, in *QueryTesta
 	return out, nil
 }
 
-// Server API for IAM service
-
+// IAMServer is the server API for IAM service.
 type IAMServer interface {
 	// Lists [ServiceAccounts][google.iam.admin.v1.ServiceAccount] for a project.
 	ListServiceAccounts(context.Context, *ListServiceAccountsRequest) (*ListServiceAccountsResponse, error)
diff --git a/googleapis/iam/v1/iam_policy.pb.go b/googleapis/iam/v1/iam_policy.pb.go
index 0450c83f77f5bcdd9e8c82f71c60868e51e6811e..7334ac2de69b5855bed99445e6939946d135ec1b 100644
--- a/googleapis/iam/v1/iam_policy.pb.go
+++ b/googleapis/iam/v1/iam_policy.pb.go
@@ -29,12 +29,12 @@ type SetIamPolicyRequest struct {
 	// REQUIRED: The resource for which the policy is being specified.
 	// `resource` is usually specified as a path. For example, a Project
 	// resource is specified as `projects/{project}`.
-	Resource string `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	// 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.
-	Policy               *Policy  `protobuf:"bytes,2,opt,name=policy" json:"policy,omitempty"`
+	Policy               *Policy  `protobuf:"bytes,2,opt,name=policy,proto3" json:"policy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -83,7 +83,7 @@ type GetIamPolicyRequest struct {
 	// REQUIRED: The resource for which the policy is being requested.
 	// `resource` is usually specified as a path. For example, a Project
 	// resource is specified as `projects/{project}`.
-	Resource             string   `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource             string   `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -125,12 +125,12 @@ type TestIamPermissionsRequest struct {
 	// REQUIRED: The resource for which the policy detail is being requested.
 	// `resource` is usually specified as a path. For example, a Project
 	// resource is specified as `projects/{project}`.
-	Resource string `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"`
+	Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
 	// 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).
-	Permissions          []string `protobuf:"bytes,2,rep,name=permissions" json:"permissions,omitempty"`
+	Permissions          []string `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -178,7 +178,7 @@ func (m *TestIamPermissionsRequest) GetPermissions() []string {
 type TestIamPermissionsResponse struct {
 	// A subset of `TestPermissionsRequest.permissions` that the caller is
 	// allowed.
-	Permissions          []string `protobuf:"bytes,1,rep,name=permissions" json:"permissions,omitempty"`
+	Permissions          []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -282,8 +282,7 @@ func (c *iAMPolicyClient) TestIamPermissions(ctx context.Context, in *TestIamPer
 	return out, nil
 }
 
-// Server API for IAMPolicy service
-
+// IAMPolicyServer is the server API for IAMPolicy service.
 type IAMPolicyServer interface {
 	// Sets the access control policy on the specified resource. Replaces any
 	// existing policy.
diff --git a/googleapis/iam/v1/logging/audit_data.pb.go b/googleapis/iam/v1/logging/audit_data.pb.go
index 9fc65c3a1178f5952ce4880a8091067a268373f8..63b6a775efd752ea8c4e9b47143cbe84327e2ca2 100644
--- a/googleapis/iam/v1/logging/audit_data.pb.go
+++ b/googleapis/iam/v1/logging/audit_data.pb.go
@@ -25,7 +25,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // `AuditLog` message.
 type AuditData struct {
 	// Policy delta between the original policy and the newly set policy.
-	PolicyDelta          *v1.PolicyDelta `protobuf:"bytes,2,opt,name=policy_delta,json=policyDelta" json:"policy_delta,omitempty"`
+	PolicyDelta          *v1.PolicyDelta `protobuf:"bytes,2,opt,name=policy_delta,json=policyDelta,proto3" json:"policy_delta,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
diff --git a/googleapis/iam/v1/policy.pb.go b/googleapis/iam/v1/policy.pb.go
index dd132dfc83afd39915a4b254286979f9d9fb18ec..a4805ece2d057ac66458718b9e4bbc23bdc8fd65 100644
--- a/googleapis/iam/v1/policy.pb.go
+++ b/googleapis/iam/v1/policy.pb.go
@@ -82,11 +82,11 @@ func (BindingDelta_Action) EnumDescriptor() ([]byte, []int) {
 // [IAM developer's guide](https://cloud.google.com/iam).
 type Policy struct {
 	// Version of the `Policy`. The default version is 0.
-	Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
+	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
 	// 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.
-	Bindings []*Binding `protobuf:"bytes,4,rep,name=bindings" json:"bindings,omitempty"`
+	Bindings []*Binding `protobuf:"bytes,4,rep,name=bindings,proto3" json:"bindings,omitempty"`
 	// `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
@@ -153,7 +153,7 @@ type Binding struct {
 	// Role that is assigned to `members`.
 	// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
 	// Required
-	Role string `protobuf:"bytes,1,opt,name=role" json:"role,omitempty"`
+	Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
 	// Specifies the identities requesting access for a Cloud Platform resource.
 	// `members` can have the following values:
 	//
@@ -177,7 +177,7 @@ type Binding struct {
 	//    users of that domain. For example, `google.com` or `example.com`.
 	//
 	//
-	Members              []string `protobuf:"bytes,2,rep,name=members" json:"members,omitempty"`
+	Members              []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -224,7 +224,7 @@ func (m *Binding) GetMembers() []string {
 // The difference delta between two policies.
 type PolicyDelta struct {
 	// The delta for Bindings between two policies.
-	BindingDeltas        []*BindingDelta `protobuf:"bytes,1,rep,name=binding_deltas,json=bindingDeltas" json:"binding_deltas,omitempty"`
+	BindingDeltas        []*BindingDelta `protobuf:"bytes,1,rep,name=binding_deltas,json=bindingDeltas,proto3" json:"binding_deltas,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -266,15 +266,15 @@ func (m *PolicyDelta) GetBindingDeltas() []*BindingDelta {
 type BindingDelta struct {
 	// The action that was performed on a Binding.
 	// Required
-	Action BindingDelta_Action `protobuf:"varint,1,opt,name=action,enum=google.iam.v1.BindingDelta_Action" json:"action,omitempty"`
+	Action BindingDelta_Action `protobuf:"varint,1,opt,name=action,proto3,enum=google.iam.v1.BindingDelta_Action" json:"action,omitempty"`
 	// Role that is assigned to `members`.
 	// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
 	// Required
-	Role string `protobuf:"bytes,2,opt,name=role" json:"role,omitempty"`
+	Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
 	// A single identity requesting access for a Cloud Platform resource.
 	// Follows the same format of Binding.members.
 	// Required
-	Member               string   `protobuf:"bytes,3,opt,name=member" json:"member,omitempty"`
+	Member               string   `protobuf:"bytes,3,opt,name=member,proto3" json:"member,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/logging/type/http_request.pb.go b/googleapis/logging/type/http_request.pb.go
index fb1d2cd47be79266dd0149ce740207f3cb8c836d..90e81ffd1bfb2675029ba0d13ebc750291d96a0a 100644
--- a/googleapis/logging/type/http_request.pb.go
+++ b/googleapis/logging/type/http_request.pb.go
@@ -25,49 +25,49 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // information MUST be defined in a separate message.
 type HttpRequest struct {
 	// The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`.
-	RequestMethod string `protobuf:"bytes,1,opt,name=request_method,json=requestMethod" json:"request_method,omitempty"`
+	RequestMethod string `protobuf:"bytes,1,opt,name=request_method,json=requestMethod,proto3" json:"request_method,omitempty"`
 	// 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"`.
-	RequestUrl string `protobuf:"bytes,2,opt,name=request_url,json=requestUrl" json:"request_url,omitempty"`
+	RequestUrl string `protobuf:"bytes,2,opt,name=request_url,json=requestUrl,proto3" json:"request_url,omitempty"`
 	// The size of the HTTP request message in bytes, including the request
 	// headers and the request body.
-	RequestSize int64 `protobuf:"varint,3,opt,name=request_size,json=requestSize" json:"request_size,omitempty"`
+	RequestSize int64 `protobuf:"varint,3,opt,name=request_size,json=requestSize,proto3" json:"request_size,omitempty"`
 	// The response code indicating the status of response.
 	// Examples: 200, 404.
-	Status int32 `protobuf:"varint,4,opt,name=status" json:"status,omitempty"`
+	Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"`
 	// The size of the HTTP response message sent back to the client, in bytes,
 	// including the response headers and the response body.
-	ResponseSize int64 `protobuf:"varint,5,opt,name=response_size,json=responseSize" json:"response_size,omitempty"`
+	ResponseSize int64 `protobuf:"varint,5,opt,name=response_size,json=responseSize,proto3" json:"response_size,omitempty"`
 	// The user agent sent by the client. Example:
 	// `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)"`.
-	UserAgent string `protobuf:"bytes,6,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"`
+	UserAgent string `protobuf:"bytes,6,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
 	// The IP address (IPv4 or IPv6) of the client that issued the HTTP
 	// request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`.
-	RemoteIp string `protobuf:"bytes,7,opt,name=remote_ip,json=remoteIp" json:"remote_ip,omitempty"`
+	RemoteIp string `protobuf:"bytes,7,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"`
 	// The IP address (IPv4 or IPv6) of the origin server that the request was
 	// sent to.
-	ServerIp string `protobuf:"bytes,13,opt,name=server_ip,json=serverIp" json:"server_ip,omitempty"`
+	ServerIp string `protobuf:"bytes,13,opt,name=server_ip,json=serverIp,proto3" json:"server_ip,omitempty"`
 	// The referer URL of the request, as defined in
 	// [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
-	Referer string `protobuf:"bytes,8,opt,name=referer" json:"referer,omitempty"`
+	Referer string `protobuf:"bytes,8,opt,name=referer,proto3" json:"referer,omitempty"`
 	// The request processing latency on the server, from the time the request was
 	// received until the response was sent.
-	Latency *duration.Duration `protobuf:"bytes,14,opt,name=latency" json:"latency,omitempty"`
+	Latency *duration.Duration `protobuf:"bytes,14,opt,name=latency,proto3" json:"latency,omitempty"`
 	// Whether or not a cache lookup was attempted.
-	CacheLookup bool `protobuf:"varint,11,opt,name=cache_lookup,json=cacheLookup" json:"cache_lookup,omitempty"`
+	CacheLookup bool `protobuf:"varint,11,opt,name=cache_lookup,json=cacheLookup,proto3" json:"cache_lookup,omitempty"`
 	// Whether or not an entity was served from cache
 	// (with or without validation).
-	CacheHit bool `protobuf:"varint,9,opt,name=cache_hit,json=cacheHit" json:"cache_hit,omitempty"`
+	CacheHit bool `protobuf:"varint,9,opt,name=cache_hit,json=cacheHit,proto3" json:"cache_hit,omitempty"`
 	// 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.
-	CacheValidatedWithOriginServer bool `protobuf:"varint,10,opt,name=cache_validated_with_origin_server,json=cacheValidatedWithOriginServer" json:"cache_validated_with_origin_server,omitempty"`
+	CacheValidatedWithOriginServer bool `protobuf:"varint,10,opt,name=cache_validated_with_origin_server,json=cacheValidatedWithOriginServer,proto3" json:"cache_validated_with_origin_server,omitempty"`
 	// The number of HTTP response bytes inserted into cache. Set only when a
 	// cache fill was attempted.
-	CacheFillBytes int64 `protobuf:"varint,12,opt,name=cache_fill_bytes,json=cacheFillBytes" json:"cache_fill_bytes,omitempty"`
+	CacheFillBytes int64 `protobuf:"varint,12,opt,name=cache_fill_bytes,json=cacheFillBytes,proto3" json:"cache_fill_bytes,omitempty"`
 	// Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket"
-	Protocol             string   `protobuf:"bytes,15,opt,name=protocol" json:"protocol,omitempty"`
+	Protocol             string   `protobuf:"bytes,15,opt,name=protocol,proto3" json:"protocol,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/logging/v2/log_entry.pb.go b/googleapis/logging/v2/log_entry.pb.go
index bdda1ec5d00b3ebefa1b1f10471425e0b22f8f00..fdcc97fd3f74aff65395bbbbfbbb3419d39daa6b 100644
--- a/googleapis/logging/v2/log_entry.pb.go
+++ b/googleapis/logging/v2/log_entry.pb.go
@@ -48,12 +48,12 @@ type LogEntry struct {
 	// 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.
-	LogName string `protobuf:"bytes,12,opt,name=log_name,json=logName" json:"log_name,omitempty"`
+	LogName string `protobuf:"bytes,12,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
 	// 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.
-	Resource *monitoredres.MonitoredResource `protobuf:"bytes,8,opt,name=resource" json:"resource,omitempty"`
+	Resource *monitoredres.MonitoredResource `protobuf:"bytes,8,opt,name=resource,proto3" json:"resource,omitempty"`
 	// Optional. The log entry payload, which can be one of multiple types.
 	//
 	// Types that are valid to be assigned to Payload:
@@ -70,42 +70,42 @@ type LogEntry struct {
 	// the [logs retention period](/logging/quota-policy) in the past,
 	// and no more than 24 hours in the future.
 	// See the `entries.write` API method for more information.
-	Timestamp *timestamp.Timestamp `protobuf:"bytes,9,opt,name=timestamp" json:"timestamp,omitempty"`
+	Timestamp *timestamp.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
 	// Output only. The time the log entry was received by Stackdriver Logging.
-	ReceiveTimestamp *timestamp.Timestamp `protobuf:"bytes,24,opt,name=receive_timestamp,json=receiveTimestamp" json:"receive_timestamp,omitempty"`
+	ReceiveTimestamp *timestamp.Timestamp `protobuf:"bytes,24,opt,name=receive_timestamp,json=receiveTimestamp,proto3" json:"receive_timestamp,omitempty"`
 	// Optional. The severity of the log entry. The default value is
 	// `LogSeverity.DEFAULT`.
-	Severity _type.LogSeverity `protobuf:"varint,10,opt,name=severity,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
+	Severity _type.LogSeverity `protobuf:"varint,10,opt,name=severity,proto3,enum=google.logging.type.LogSeverity" json:"severity,omitempty"`
 	// 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 assigns its own unique identifier. The `insert_id` is also used
 	// to order log entries that have the same `timestamp` value.
-	InsertId string `protobuf:"bytes,4,opt,name=insert_id,json=insertId" json:"insert_id,omitempty"`
+	InsertId string `protobuf:"bytes,4,opt,name=insert_id,json=insertId,proto3" json:"insert_id,omitempty"`
 	// Optional. Information about the HTTP request associated with this
 	// log entry, if applicable.
-	HttpRequest *_type.HttpRequest `protobuf:"bytes,7,opt,name=http_request,json=httpRequest" json:"http_request,omitempty"`
+	HttpRequest *_type.HttpRequest `protobuf:"bytes,7,opt,name=http_request,json=httpRequest,proto3" json:"http_request,omitempty"`
 	// Optional. A set of user-defined (key, value) data that provides additional
 	// information about the log entry.
-	Labels map[string]string `protobuf:"bytes,11,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. Information about an operation associated with the log entry, if
 	// applicable.
-	Operation *LogEntryOperation `protobuf:"bytes,15,opt,name=operation" json:"operation,omitempty"`
+	Operation *LogEntryOperation `protobuf:"bytes,15,opt,name=operation,proto3" json:"operation,omitempty"`
 	// 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`
-	Trace string `protobuf:"bytes,22,opt,name=trace" json:"trace,omitempty"`
+	Trace string `protobuf:"bytes,22,opt,name=trace,proto3" json:"trace,omitempty"`
 	// Optional. Id of the span within the trace associated with the log entry.
 	// e.g. "0000000000000042"
 	// For Stackdriver trace spans, this is the same format that the Stackdriver
 	// trace API uses.
 	// The ID is a 16-character hexadecimal encoding of an 8-byte array.
-	SpanId string `protobuf:"bytes,27,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
+	SpanId string `protobuf:"bytes,27,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
 	// Optional. Source code location information associated with the log entry,
 	// if any.
-	SourceLocation       *LogEntrySourceLocation `protobuf:"bytes,23,opt,name=source_location,json=sourceLocation" json:"source_location,omitempty"`
+	SourceLocation       *LogEntrySourceLocation `protobuf:"bytes,23,opt,name=source_location,json=sourceLocation,proto3" json:"source_location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -140,13 +140,13 @@ type isLogEntry_Payload interface {
 }
 
 type LogEntry_ProtoPayload struct {
-	ProtoPayload *any.Any `protobuf:"bytes,2,opt,name=proto_payload,json=protoPayload,oneof"`
+	ProtoPayload *any.Any `protobuf:"bytes,2,opt,name=proto_payload,json=protoPayload,proto3,oneof"`
 }
 type LogEntry_TextPayload struct {
-	TextPayload string `protobuf:"bytes,3,opt,name=text_payload,json=textPayload,oneof"`
+	TextPayload string `protobuf:"bytes,3,opt,name=text_payload,json=textPayload,proto3,oneof"`
 }
 type LogEntry_JsonPayload struct {
-	JsonPayload *_struct.Struct `protobuf:"bytes,6,opt,name=json_payload,json=jsonPayload,oneof"`
+	JsonPayload *_struct.Struct `protobuf:"bytes,6,opt,name=json_payload,json=jsonPayload,proto3,oneof"`
 }
 
 func (*LogEntry_ProtoPayload) isLogEntry_Payload() {}
@@ -359,15 +359,15 @@ func _LogEntry_OneofSizer(msg proto.Message) (n int) {
 type LogEntryOperation struct {
 	// Optional. An arbitrary operation identifier. Log entries with the
 	// same identifier are assumed to be part of the same operation.
-	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Optional. An arbitrary producer identifier. The combination of
 	// `id` and `producer` must be globally unique.  Examples for `producer`:
 	// `"MyDivision.MyBigCompany.com"`, `"github.com/MyProject/MyApplication"`.
-	Producer string `protobuf:"bytes,2,opt,name=producer" json:"producer,omitempty"`
+	Producer string `protobuf:"bytes,2,opt,name=producer,proto3" json:"producer,omitempty"`
 	// Optional. Set this to True if this is the first log entry in the operation.
-	First bool `protobuf:"varint,3,opt,name=first" json:"first,omitempty"`
+	First bool `protobuf:"varint,3,opt,name=first,proto3" json:"first,omitempty"`
 	// Optional. Set this to True if this is the last log entry in the operation.
-	Last                 bool     `protobuf:"varint,4,opt,name=last" json:"last,omitempty"`
+	Last                 bool     `protobuf:"varint,4,opt,name=last,proto3" json:"last,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -430,17 +430,17 @@ func (m *LogEntryOperation) GetLast() bool {
 type LogEntrySourceLocation struct {
 	// Optional. Source file name. Depending on the runtime environment, this
 	// might be a simple name or a fully-qualified name.
-	File string `protobuf:"bytes,1,opt,name=file" json:"file,omitempty"`
+	File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"`
 	// Optional. Line within the source file. 1-based; 0 indicates no line number
 	// available.
-	Line int64 `protobuf:"varint,2,opt,name=line" json:"line,omitempty"`
+	Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
 	// Optional. Human-readable name of the function or method being invoked, with
 	// optional context such as the class or package name. This information may be
 	// used in contexts such as the logs viewer, where a file and line number are
 	// less meaningful. The format can vary by language. For example:
 	// `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function`
 	// (Python).
-	Function             string   `protobuf:"bytes,3,opt,name=function" json:"function,omitempty"`
+	Function             string   `protobuf:"bytes,3,opt,name=function,proto3" json:"function,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/logging/v2/logging.pb.go b/googleapis/logging/v2/logging.pb.go
index a94f1f8de3e87929a70fe99aab15d454244b7217..93d76302dc74711ba40f3a4b0139110a1572b546 100644
--- a/googleapis/logging/v2/logging.pb.go
+++ b/googleapis/logging/v2/logging.pb.go
@@ -43,7 +43,7 @@ type DeleteLogRequest struct {
 	// `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
 	// For more information about log names, see
 	// [LogEntry][google.logging.v2.LogEntry].
-	LogName              string   `protobuf:"bytes,1,opt,name=log_name,json=logName" json:"log_name,omitempty"`
+	LogName              string   `protobuf:"bytes,1,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -95,7 +95,7 @@ type WriteLogEntriesRequest struct {
 	// `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
 	// For more information about log names, see
 	// [LogEntry][google.logging.v2.LogEntry].
-	LogName string `protobuf:"bytes,1,opt,name=log_name,json=logName" json:"log_name,omitempty"`
+	LogName string `protobuf:"bytes,1,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
 	// Optional. A default monitored resource object that is assigned to all log
 	// entries in `entries` that do not specify a value for `resource`. Example:
 	//
@@ -104,12 +104,12 @@ type WriteLogEntriesRequest struct {
 	//         "zone": "us-central1-a", "instance_id": "00000000000000000000" }}
 	//
 	// See [LogEntry][google.logging.v2.LogEntry].
-	Resource *monitoredres.MonitoredResource `protobuf:"bytes,2,opt,name=resource" json:"resource,omitempty"`
+	Resource *monitoredres.MonitoredResource `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
 	// 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][google.logging.v2.LogEntry].
-	Labels map[string]string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Required. The log entries to send to Stackdriver Logging. The order of log
 	// entries in this list does not matter. Values supplied in this method's
 	// `log_name`, `resource`, and `labels` fields are copied into those log
@@ -131,13 +131,13 @@ type WriteLogEntriesRequest struct {
 	// [quota limit](/logging/quota-policy) for calls to `entries.write`,
 	// you should try to include several log entries in this list,
 	// rather than calling this method for each individual log entry.
-	Entries []*LogEntry `protobuf:"bytes,4,rep,name=entries" json:"entries,omitempty"`
+	Entries []*LogEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"`
 	// 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       bool     `protobuf:"varint,5,opt,name=partial_success,json=partialSuccess" json:"partial_success,omitempty"`
+	PartialSuccess       bool     `protobuf:"varint,5,opt,name=partial_success,json=partialSuccess,proto3" json:"partial_success,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -242,7 +242,7 @@ type WriteLogEntriesPartialErrors struct {
 	//
 	// Failed requests for which no entries are written will not include
 	// per-entry errors.
-	LogEntryErrors       map[int32]*status.Status `protobuf:"bytes,1,rep,name=log_entry_errors,json=logEntryErrors" json:"log_entry_errors,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	LogEntryErrors       map[int32]*status.Status `protobuf:"bytes,1,rep,name=log_entry_errors,json=logEntryErrors,proto3" json:"log_entry_errors,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -286,7 +286,7 @@ type ListLogEntriesRequest struct {
 	// `"my-project-1A"`. If present, these project identifiers are converted to
 	// resource name format and added to the list of resources in
 	// `resource_names`.
-	ProjectIds []string `protobuf:"bytes,1,rep,name=project_ids,json=projectIds" json:"project_ids,omitempty"`
+	ProjectIds []string `protobuf:"bytes,1,rep,name=project_ids,json=projectIds,proto3" json:"project_ids,omitempty"`
 	// Required. Names of one or more parent resources from which to
 	// retrieve log entries:
 	//
@@ -296,7 +296,7 @@ type ListLogEntriesRequest struct {
 	//     "folders/[FOLDER_ID]"
 	//
 	// Projects listed in the `project_ids` field are added to this list.
-	ResourceNames []string `protobuf:"bytes,8,rep,name=resource_names,json=resourceNames" json:"resource_names,omitempty"`
+	ResourceNames []string `protobuf:"bytes,8,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
 	// Optional. A filter that chooses which log entries to return.  See [Advanced
 	// Logs Filters](/logging/docs/view/advanced_filters).  Only log entries that
 	// match the filter are returned.  An empty filter matches all log entries in
@@ -304,23 +304,23 @@ type ListLogEntriesRequest struct {
 	// that is not listed in `resource_names` will cause the filter to return no
 	// results.
 	// The maximum length of the filter is 20000 characters.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// 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.
-	OrderBy string `protobuf:"bytes,3,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,3,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// 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 int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -397,7 +397,7 @@ type ListLogEntriesResponse struct {
 	// A list of log entries.  If `entries` is empty, `nextPageToken` may still be
 	// returned, indicating that more entries may exist.  See `nextPageToken` for
 	// more information.
-	Entries []*LogEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
+	Entries []*LogEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
 	// 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`.
@@ -408,7 +408,7 @@ type ListLogEntriesResponse struct {
 	// value for `page_token` to continue the search.  Alternatively, consider
 	// speeding up the search by changing your filter to specify a single log name
 	// or resource type, or to narrow the time range of the search.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -457,12 +457,12 @@ type ListMonitoredResourceDescriptorsRequest struct {
 	// 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.
-	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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.
-	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -511,11 +511,11 @@ func (m *ListMonitoredResourceDescriptorsRequest) GetPageToken() string {
 // Result returned from ListMonitoredResourceDescriptors.
 type ListMonitoredResourceDescriptorsResponse struct {
 	// A list of resource descriptors.
-	ResourceDescriptors []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,1,rep,name=resource_descriptors,json=resourceDescriptors" json:"resource_descriptors,omitempty"`
+	ResourceDescriptors []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,1,rep,name=resource_descriptors,json=resourceDescriptors,proto3" json:"resource_descriptors,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -569,16 +569,16 @@ type ListLogsRequest struct {
 	//     "organizations/[ORGANIZATION_ID]"
 	//     "billingAccounts/[BILLING_ACCOUNT_ID]"
 	//     "folders/[FOLDER_ID]"
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// 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.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -634,11 +634,11 @@ type ListLogsResponse struct {
 	// A list of log names. For example,
 	// `"projects/my-project/syslog"` or
 	// `"organizations/123/cloudresourcemanager.googleapis.com%2Factivity"`.
-	LogNames []string `protobuf:"bytes,3,rep,name=log_names,json=logNames" json:"log_names,omitempty"`
+	LogNames []string `protobuf:"bytes,3,rep,name=log_names,json=logNames,proto3" json:"log_names,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -787,8 +787,7 @@ func (c *loggingServiceV2Client) ListLogs(ctx context.Context, in *ListLogsReque
 	return out, nil
 }
 
-// Server API for LoggingServiceV2 service
-
+// LoggingServiceV2Server is the server API for LoggingServiceV2 service.
 type LoggingServiceV2Server interface {
 	// Deletes all the log entries in a log.
 	// The log reappears if it receives new entries.
diff --git a/googleapis/logging/v2/logging_config.pb.go b/googleapis/logging/v2/logging_config.pb.go
index 7360c461e1be6211e87d1a8a19bcb414851820dc..e57a80262baa67e32448d0eb5f7bc6a485ab15f8 100644
--- a/googleapis/logging/v2/logging_config.pb.go
+++ b/googleapis/logging/v2/logging_config.pb.go
@@ -70,7 +70,7 @@ type LogSink struct {
 	// limited to 100 characters and can include only the following characters:
 	// upper and lower-case alphanumeric characters, underscores, hyphens, and
 	// periods.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The export destination:
 	//
 	//     "storage.googleapis.com/[GCS_BUCKET]"
@@ -81,17 +81,17 @@ type LogSink struct {
 	// have permission to write to the destination or else the log
 	// entries are not exported.  For more information, see
 	// [Exporting Logs With Sinks](/logging/docs/api/tasks/exporting-logs).
-	Destination string `protobuf:"bytes,3,opt,name=destination" json:"destination,omitempty"`
+	Destination string `protobuf:"bytes,3,opt,name=destination,proto3" json:"destination,omitempty"`
 	// Optional.
 	// An [advanced logs filter](/logging/docs/view/advanced_filters).  The only
 	// exported log entries are those that are in the resource owning the sink and
 	// that match the filter.  For example:
 	//
 	//     logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Deprecated. The log entry format to use for this sink's exported log
 	// entries.  The v2 format is used by default and cannot be changed.
-	OutputVersionFormat LogSink_VersionFormat `protobuf:"varint,6,opt,name=output_version_format,json=outputVersionFormat,enum=google.logging.v2.LogSink_VersionFormat" json:"output_version_format,omitempty"`
+	OutputVersionFormat LogSink_VersionFormat `protobuf:"varint,6,opt,name=output_version_format,json=outputVersionFormat,proto3,enum=google.logging.v2.LogSink_VersionFormat" json:"output_version_format,omitempty"`
 	// 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
@@ -106,7 +106,7 @@ type LogSink struct {
 	// resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource).
 	// Consult the destination service's documentation to determine the
 	// appropriate IAM roles to assign to the identity.
-	WriterIdentity string `protobuf:"bytes,8,opt,name=writer_identity,json=writerIdentity" json:"writer_identity,omitempty"`
+	WriterIdentity string `protobuf:"bytes,8,opt,name=writer_identity,json=writerIdentity,proto3" json:"writer_identity,omitempty"`
 	// 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
@@ -120,11 +120,11 @@ type LogSink struct {
 	//
 	//     logName:("projects/test-project1/" OR "projects/test-project2/") AND
 	//     resource.type=gce_instance
-	IncludeChildren bool `protobuf:"varint,9,opt,name=include_children,json=includeChildren" json:"include_children,omitempty"`
+	IncludeChildren bool `protobuf:"varint,9,opt,name=include_children,json=includeChildren,proto3" json:"include_children,omitempty"`
 	// Deprecated. This field is ignored when creating or updating sinks.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Deprecated. This field is ignored when creating or updating sinks.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,11,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -218,16 +218,16 @@ type ListSinksRequest struct {
 	//     "organizations/[ORGANIZATION_ID]"
 	//     "billingAccounts/[BILLING_ACCOUNT_ID]"
 	//     "folders/[FOLDER_ID]"
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -281,11 +281,11 @@ func (m *ListSinksRequest) GetPageSize() int32 {
 // Result returned from `ListSinks`.
 type ListSinksResponse struct {
 	// A list of sinks.
-	Sinks []*LogSink `protobuf:"bytes,1,rep,name=sinks" json:"sinks,omitempty"`
+	Sinks []*LogSink `protobuf:"bytes,1,rep,name=sinks,proto3" json:"sinks,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -339,7 +339,7 @@ type GetSinkRequest struct {
 	//     "folders/[FOLDER_ID]/sinks/[SINK_ID]"
 	//
 	// Example: `"projects/my-project-id/sinks/my-sink-id"`.
-	SinkName             string   `protobuf:"bytes,1,opt,name=sink_name,json=sinkName" json:"sink_name,omitempty"`
+	SinkName             string   `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -386,10 +386,10 @@ type CreateSinkRequest struct {
 	//     "folders/[FOLDER_ID]"
 	//
 	// Examples: `"projects/my-logging-project"`, `"organizations/123456789"`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The new sink, whose `name` parameter is a sink identifier that
 	// is not already in use.
-	Sink *LogSink `protobuf:"bytes,2,opt,name=sink" json:"sink,omitempty"`
+	Sink *LogSink `protobuf:"bytes,2,opt,name=sink,proto3" json:"sink,omitempty"`
 	// 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
@@ -401,7 +401,7 @@ type CreateSinkRequest struct {
 	// 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][google.logging.v2.LogSink].
-	UniqueWriterIdentity bool     `protobuf:"varint,3,opt,name=unique_writer_identity,json=uniqueWriterIdentity" json:"unique_writer_identity,omitempty"`
+	UniqueWriterIdentity bool     `protobuf:"varint,3,opt,name=unique_writer_identity,json=uniqueWriterIdentity,proto3" json:"unique_writer_identity,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -463,10 +463,10 @@ type UpdateSinkRequest struct {
 	//     "folders/[FOLDER_ID]/sinks/[SINK_ID]"
 	//
 	// Example: `"projects/my-project-id/sinks/my-sink-id"`.
-	SinkName string `protobuf:"bytes,1,opt,name=sink_name,json=sinkName" json:"sink_name,omitempty"`
+	SinkName string `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
 	// Required. The updated sink, whose name is the same identifier that appears
 	// as part of `sink_name`.
-	Sink *LogSink `protobuf:"bytes,2,opt,name=sink" json:"sink,omitempty"`
+	Sink *LogSink `protobuf:"bytes,2,opt,name=sink,proto3" json:"sink,omitempty"`
 	// Optional. See
 	// [sinks.create](/logging/docs/api/reference/rest/v2/projects.sinks/create)
 	// for a description of this field.  When updating a sink, the effect of this
@@ -479,7 +479,7 @@ type UpdateSinkRequest struct {
 	//     `writer_identity` is changed to a unique service account.
 	// +   It is an error if the old value is true and the new value is
 	//     set to false or defaulted to false.
-	UniqueWriterIdentity bool `protobuf:"varint,3,opt,name=unique_writer_identity,json=uniqueWriterIdentity" json:"unique_writer_identity,omitempty"`
+	UniqueWriterIdentity bool `protobuf:"varint,3,opt,name=unique_writer_identity,json=uniqueWriterIdentity,proto3" json:"unique_writer_identity,omitempty"`
 	// Optional. Field mask that specifies the fields in `sink` that need
 	// an update. A sink field will be overwritten if, and only if, it is
 	// in the update mask.  `name` and output only fields cannot be updated.
@@ -494,7 +494,7 @@ type UpdateSinkRequest struct {
 	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
 	//
 	// Example: `updateMask=filter`.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -563,7 +563,7 @@ type DeleteSinkRequest struct {
 	//     "folders/[FOLDER_ID]/sinks/[SINK_ID]"
 	//
 	// Example: `"projects/my-project-id/sinks/my-sink-id"`.
-	SinkName             string   `protobuf:"bytes,1,opt,name=sink_name,json=sinkName" json:"sink_name,omitempty"`
+	SinkName             string   `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -610,9 +610,9 @@ type LogExclusion struct {
 	// Required. A client-assigned identifier, such as
 	// `"load-balancer-exclusion"`. Identifiers are limited to 100 characters and
 	// can include only letters, digits, underscores, hyphens, and periods.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. A description of this exclusion.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Required.
 	// An [advanced logs filter](/logging/docs/view/advanced_filters)
 	// that matches the log entries to be excluded. By using the
@@ -622,12 +622,12 @@ type LogExclusion struct {
 	// entries from load balancers:
 	//
 	//     "resource.type=http_load_balancer severity<ERROR sample(insertId, 0.99)"
-	Filter string `protobuf:"bytes,3,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Optional. If set to True, then this exclusion is disabled and it does not
 	// exclude any log entries. You can use
 	// [exclusions.patch](/logging/docs/alpha-exclusion/docs/reference/v2/rest/v2/projects.exclusions/patch)
 	// to change the value of this field.
-	Disabled             bool     `protobuf:"varint,4,opt,name=disabled" json:"disabled,omitempty"`
+	Disabled             bool     `protobuf:"varint,4,opt,name=disabled,proto3" json:"disabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -693,16 +693,16 @@ type ListExclusionsRequest struct {
 	//     "organizations/[ORGANIZATION_ID]"
 	//     "billingAccounts/[BILLING_ACCOUNT_ID]"
 	//     "folders/[FOLDER_ID]"
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -756,11 +756,11 @@ func (m *ListExclusionsRequest) GetPageSize() int32 {
 // Result returned from `ListExclusions`.
 type ListExclusionsResponse struct {
 	// A list of exclusions.
-	Exclusions []*LogExclusion `protobuf:"bytes,1,rep,name=exclusions" json:"exclusions,omitempty"`
+	Exclusions []*LogExclusion `protobuf:"bytes,1,rep,name=exclusions,proto3" json:"exclusions,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -814,7 +814,7 @@ type GetExclusionRequest struct {
 	//     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
 	//
 	// Example: `"projects/my-project-id/exclusions/my-exclusion-id"`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -861,10 +861,10 @@ type CreateExclusionRequest struct {
 	//     "folders/[FOLDER_ID]"
 	//
 	// Examples: `"projects/my-logging-project"`, `"organizations/123456789"`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The new exclusion, whose `name` parameter is an exclusion name
 	// that is not already used in the parent resource.
-	Exclusion            *LogExclusion `protobuf:"bytes,2,opt,name=exclusion" json:"exclusion,omitempty"`
+	Exclusion            *LogExclusion `protobuf:"bytes,2,opt,name=exclusion,proto3" json:"exclusion,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -918,10 +918,10 @@ type UpdateExclusionRequest struct {
 	//     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
 	//
 	// Example: `"projects/my-project-id/exclusions/my-exclusion-id"`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. New values for the existing exclusion. Only the fields specified
 	// in `update_mask` are relevant.
-	Exclusion *LogExclusion `protobuf:"bytes,2,opt,name=exclusion" json:"exclusion,omitempty"`
+	Exclusion *LogExclusion `protobuf:"bytes,2,opt,name=exclusion,proto3" json:"exclusion,omitempty"`
 	// Required. A nonempty list of fields to change in the existing exclusion.
 	// New values for the fields are taken from the corresponding fields in the
 	// [LogExclusion][google.logging.v2.LogExclusion] included in this request. Fields not mentioned in
@@ -929,7 +929,7 @@ type UpdateExclusionRequest struct {
 	//
 	// For example, to change the filter and description of an exclusion,
 	// specify an `update_mask` of `"filter,description"`.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -990,7 +990,7 @@ type DeleteExclusionRequest struct {
 	//     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
 	//
 	// Example: `"projects/my-project-id/exclusions/my-exclusion-id"`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1186,8 +1186,7 @@ func (c *configServiceV2Client) DeleteExclusion(ctx context.Context, in *DeleteE
 	return out, nil
 }
 
-// Server API for ConfigServiceV2 service
-
+// ConfigServiceV2Server is the server API for ConfigServiceV2 service.
 type ConfigServiceV2Server interface {
 	// Lists sinks.
 	ListSinks(context.Context, *ListSinksRequest) (*ListSinksResponse, error)
diff --git a/googleapis/logging/v2/logging_metrics.pb.go b/googleapis/logging/v2/logging_metrics.pb.go
index e76a8760a2b1011af46f4446548c498aabc46518..8585fbee3a818a667f1cb6556d33dac293c6623c 100644
--- a/googleapis/logging/v2/logging_metrics.pb.go
+++ b/googleapis/logging/v2/logging_metrics.pb.go
@@ -77,9 +77,9 @@ type LogMetric struct {
 	// part of a `metric_name` API parameter, then the metric identifier
 	// must be URL-encoded. Example:
 	// `"projects/my-project/metrics/nginx%2Frequests"`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Optional. A description of this metric, which is used in documentation.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// Required. An [advanced logs filter](/logging/docs/view/advanced_filters)
 	// which is used to match log entries.
 	// Example:
@@ -87,7 +87,7 @@ type LogMetric struct {
 	//     "resource.type=gae_app AND severity>=ERROR"
 	//
 	// The maximum length of the filter is 20000 characters.
-	Filter string `protobuf:"bytes,3,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Optional. The metric descriptor associated with the logs-based metric.
 	// If unspecified, it uses a default metric descriptor with a DELTA metric
 	// kind, INT64 value type, with no labels and a unit of "1". Such a metric
@@ -109,7 +109,7 @@ type LogMetric struct {
 	// be updated once initially configured. New labels can be added in the
 	// `metric_descriptor`, but existing labels cannot be modified except for
 	// their description.
-	MetricDescriptor *metric.MetricDescriptor `protobuf:"bytes,5,opt,name=metric_descriptor,json=metricDescriptor" json:"metric_descriptor,omitempty"`
+	MetricDescriptor *metric.MetricDescriptor `protobuf:"bytes,5,opt,name=metric_descriptor,json=metricDescriptor,proto3" json:"metric_descriptor,omitempty"`
 	// Optional. A `value_extractor` is required when using a distribution
 	// logs-based metric to extract the values to record from a log entry.
 	// Two functions are supported for value extraction: `EXTRACT(field)` or
@@ -129,7 +129,7 @@ type LogMetric struct {
 	// distribution.
 	//
 	// Example: `REGEXP_EXTRACT(jsonPayload.request, ".*quantity=(\d+).*")`
-	ValueExtractor string `protobuf:"bytes,6,opt,name=value_extractor,json=valueExtractor" json:"value_extractor,omitempty"`
+	ValueExtractor string `protobuf:"bytes,6,opt,name=value_extractor,json=valueExtractor,proto3" json:"value_extractor,omitempty"`
 	// Optional. A map from a label key string to an extractor expression which is
 	// used to extract data from a log entry field and assign as the label value.
 	// Each label key specified in the LabelDescriptor must have an associated
@@ -144,14 +144,14 @@ type LogMetric struct {
 	//
 	// Note that there are upper bounds on the maximum number of labels and the
 	// number of active time series that are allowed in a project.
-	LabelExtractors map[string]string `protobuf:"bytes,7,rep,name=label_extractors,json=labelExtractors" json:"label_extractors,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	LabelExtractors map[string]string `protobuf:"bytes,7,rep,name=label_extractors,json=labelExtractors,proto3" json:"label_extractors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The `bucket_options` are required when the logs-based metric is
 	// using a DISTRIBUTION value type and it describes the bucket boundaries
 	// used to create a histogram of the extracted values.
-	BucketOptions *distribution.Distribution_BucketOptions `protobuf:"bytes,8,opt,name=bucket_options,json=bucketOptions" json:"bucket_options,omitempty"`
+	BucketOptions *distribution.Distribution_BucketOptions `protobuf:"bytes,8,opt,name=bucket_options,json=bucketOptions,proto3" json:"bucket_options,omitempty"`
 	// Deprecated. The API version that created or updated this metric.
 	// The v2 format is used by default and cannot be changed.
-	Version              LogMetric_ApiVersion `protobuf:"varint,4,opt,name=version,enum=google.logging.v2.LogMetric_ApiVersion" json:"version,omitempty"`
+	Version              LogMetric_ApiVersion `protobuf:"varint,4,opt,name=version,proto3,enum=google.logging.v2.LogMetric_ApiVersion" json:"version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -242,16 +242,16 @@ type ListLogMetricsRequest struct {
 	// Required. The name of the project containing the metrics:
 	//
 	//     "projects/[PROJECT_ID]"
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// 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.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -305,11 +305,11 @@ func (m *ListLogMetricsRequest) GetPageSize() int32 {
 // Result returned from ListLogMetrics.
 type ListLogMetricsResponse struct {
 	// A list of logs-based metrics.
-	Metrics []*LogMetric `protobuf:"bytes,1,rep,name=metrics" json:"metrics,omitempty"`
+	Metrics []*LogMetric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
 	// 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`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -358,7 +358,7 @@ type GetLogMetricRequest struct {
 	// The resource name of the desired metric:
 	//
 	//     "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
-	MetricName           string   `protobuf:"bytes,1,opt,name=metric_name,json=metricName" json:"metric_name,omitempty"`
+	MetricName           string   `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -402,10 +402,10 @@ type CreateLogMetricRequest struct {
 	//     "projects/[PROJECT_ID]"
 	//
 	// The new metric must be provided in the request.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The new logs-based metric, which must not have an identifier that
 	// already exists.
-	Metric               *LogMetric `protobuf:"bytes,2,opt,name=metric" json:"metric,omitempty"`
+	Metric               *LogMetric `protobuf:"bytes,2,opt,name=metric,proto3" json:"metric,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -458,9 +458,9 @@ type UpdateLogMetricRequest struct {
 	// The updated metric must be provided in the request and it's
 	// `name` field must be the same as `[METRIC_ID]` If the metric
 	// does not exist in `[PROJECT_ID]`, then a new metric is created.
-	MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName" json:"metric_name,omitempty"`
+	MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
 	// The updated metric.
-	Metric               *LogMetric `protobuf:"bytes,2,opt,name=metric" json:"metric,omitempty"`
+	Metric               *LogMetric `protobuf:"bytes,2,opt,name=metric,proto3" json:"metric,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -509,7 +509,7 @@ type DeleteLogMetricRequest struct {
 	// The resource name of the metric to delete:
 	//
 	//     "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
-	MetricName           string   `protobuf:"bytes,1,opt,name=metric_name,json=metricName" json:"metric_name,omitempty"`
+	MetricName           string   `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -635,8 +635,7 @@ func (c *metricsServiceV2Client) DeleteLogMetric(ctx context.Context, in *Delete
 	return out, nil
 }
 
-// Server API for MetricsServiceV2 service
-
+// MetricsServiceV2Server is the server API for MetricsServiceV2 service.
 type MetricsServiceV2Server interface {
 	// Lists logs-based metrics.
 	ListLogMetrics(context.Context, *ListLogMetricsRequest) (*ListLogMetricsResponse, error)
diff --git a/googleapis/longrunning/operations.pb.go b/googleapis/longrunning/operations.pb.go
index 3828ec51fcd3a9bd5adfc2239326b773fdbe4544..7944499fb2d3de2bd4a43934d423fa113b8c9ae6 100644
--- a/googleapis/longrunning/operations.pb.go
+++ b/googleapis/longrunning/operations.pb.go
@@ -33,16 +33,16 @@ type Operation struct {
 	// 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`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	Metadata *any.Any `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata *any.Any `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	// 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.
-	Done bool `protobuf:"varint,3,opt,name=done" json:"done,omitempty"`
+	Done bool `protobuf:"varint,3,opt,name=done,proto3" json:"done,omitempty"`
 	// The operation result, which can be either an `error` or a valid `response`.
 	// If `done` == `false`, neither `error` nor `response` is set.
 	// If `done` == `true`, exactly one of `error` or `response` is set.
@@ -85,10 +85,10 @@ type isOperation_Result interface {
 }
 
 type Operation_Error struct {
-	Error *status.Status `protobuf:"bytes,4,opt,name=error,oneof"`
+	Error *status.Status `protobuf:"bytes,4,opt,name=error,proto3,oneof"`
 }
 type Operation_Response struct {
-	Response *any.Any `protobuf:"bytes,5,opt,name=response,oneof"`
+	Response *any.Any `protobuf:"bytes,5,opt,name=response,proto3,oneof"`
 }
 
 func (*Operation_Error) isOperation_Result()    {}
@@ -213,7 +213,7 @@ func _Operation_OneofSizer(msg proto.Message) (n int) {
 // The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
 type GetOperationRequest struct {
 	// The name of the operation resource.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -253,13 +253,13 @@ func (m *GetOperationRequest) GetName() string {
 // The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
 type ListOperationsRequest struct {
 	// The name of the operation collection.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The standard list filter.
-	Filter string `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The standard list page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The standard list page token.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -320,9 +320,9 @@ func (m *ListOperationsRequest) GetPageToken() string {
 // The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
 type ListOperationsResponse struct {
 	// A list of operations that matches the specified filter in the request.
-	Operations []*Operation `protobuf:"bytes,1,rep,name=operations" json:"operations,omitempty"`
+	Operations []*Operation `protobuf:"bytes,1,rep,name=operations,proto3" json:"operations,omitempty"`
 	// The standard List next-page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -369,7 +369,7 @@ func (m *ListOperationsResponse) GetNextPageToken() string {
 // The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
 type CancelOperationRequest struct {
 	// The name of the operation resource to be cancelled.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -409,7 +409,7 @@ func (m *CancelOperationRequest) GetName() string {
 // The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
 type DeleteOperationRequest struct {
 	// The name of the operation resource to be deleted.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -539,8 +539,7 @@ func (c *operationsClient) CancelOperation(ctx context.Context, in *CancelOperat
 	return out, nil
 }
 
-// Server API for Operations service
-
+// OperationsServer is the server API for Operations service.
 type OperationsServer interface {
 	// Lists operations that match the specified filter in the request. If the
 	// server doesn't support this method, it returns `UNIMPLEMENTED`.
diff --git a/googleapis/monitoring/v3/alert.pb.go b/googleapis/monitoring/v3/alert.pb.go
index 000e9187863b1b1e95b0ae8c971d0ecdbf78f5c3..7b320e1bfce67489566d5bbe82346df055443e74 100644
--- a/googleapis/monitoring/v3/alert.pb.go
+++ b/googleapis/monitoring/v3/alert.pb.go
@@ -76,18 +76,18 @@ type AlertPolicy struct {
 	// [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy]
 	// method, do not include the `name` field in the alerting policy passed as
 	// part of the request.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A short name or phrase used to identify the policy in dashboards,
 	// notifications, and incidents. To avoid confusion, don't use the same
 	// display name for multiple policies in the same project. The name is
 	// limited to 512 Unicode characters.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Documentation that is included with notifications and incidents related to
 	// this policy. Best practice is for the documentation to include information
 	// to help responders understand, mitigate, escalate, and correct the
 	// underlying problems detected by the alerting policy. Notification channels
 	// that have limited capacity might not show this documentation.
-	Documentation *AlertPolicy_Documentation `protobuf:"bytes,13,opt,name=documentation" json:"documentation,omitempty"`
+	Documentation *AlertPolicy_Documentation `protobuf:"bytes,13,opt,name=documentation,proto3" json:"documentation,omitempty"`
 	// User-supplied key/value data to be used for organizing and
 	// identifying the `AlertPolicy` objects.
 	//
@@ -95,21 +95,21 @@ type AlertPolicy struct {
 	// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
 	// values can contain only lowercase letters, numerals, underscores, and
 	// dashes. Keys must begin with a letter.
-	UserLabels map[string]string `protobuf:"bytes,16,rep,name=user_labels,json=userLabels" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	UserLabels map[string]string `protobuf:"bytes,16,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// A list of conditions for the policy. The conditions are combined by AND or
 	// OR according to the `combiner` field. If the combined conditions evaluate
 	// to true, then an incident is created. A policy can have from one to six
 	// conditions.
-	Conditions []*AlertPolicy_Condition `protobuf:"bytes,12,rep,name=conditions" json:"conditions,omitempty"`
+	Conditions []*AlertPolicy_Condition `protobuf:"bytes,12,rep,name=conditions,proto3" json:"conditions,omitempty"`
 	// How to combine the results of multiple conditions
 	// to determine if an incident should be opened.
-	Combiner AlertPolicy_ConditionCombinerType `protobuf:"varint,6,opt,name=combiner,enum=google.monitoring.v3.AlertPolicy_ConditionCombinerType" json:"combiner,omitempty"`
+	Combiner AlertPolicy_ConditionCombinerType `protobuf:"varint,6,opt,name=combiner,proto3,enum=google.monitoring.v3.AlertPolicy_ConditionCombinerType" json:"combiner,omitempty"`
 	// Whether or not the policy is enabled. On write, the default interpretation
 	// if unset is that the policy is enabled. On read, clients should not make
 	// any assumption about the state if it has not been populated. The
 	// field should always be populated on List and Get operations, unless
 	// a field projection has been specified that strips it out.
-	Enabled *wrappers.BoolValue `protobuf:"bytes,17,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled *wrappers.BoolValue `protobuf:"bytes,17,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	// Identifies the notification channels to which notifications should be sent
 	// when incidents are opened or closed or when new violations occur on
 	// an already opened incident. Each element of this array corresponds to
@@ -120,13 +120,13 @@ type AlertPolicy struct {
 	// method. The syntax of the entries in this field is:
 	//
 	//     projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
-	NotificationChannels []string `protobuf:"bytes,14,rep,name=notification_channels,json=notificationChannels" json:"notification_channels,omitempty"`
+	NotificationChannels []string `protobuf:"bytes,14,rep,name=notification_channels,json=notificationChannels,proto3" json:"notification_channels,omitempty"`
 	// A read-only record of the creation of the alerting policy. If provided
 	// in a call to create or update, this field will be ignored.
-	CreationRecord *MutationRecord `protobuf:"bytes,10,opt,name=creation_record,json=creationRecord" json:"creation_record,omitempty"`
+	CreationRecord *MutationRecord `protobuf:"bytes,10,opt,name=creation_record,json=creationRecord,proto3" json:"creation_record,omitempty"`
 	// A read-only record of the most recent change to the alerting policy. If
 	// provided in a call to create or update, this field will be ignored.
-	MutationRecord       *MutationRecord `protobuf:"bytes,11,opt,name=mutation_record,json=mutationRecord" json:"mutation_record,omitempty"`
+	MutationRecord       *MutationRecord `protobuf:"bytes,11,opt,name=mutation_record,json=mutationRecord,proto3" json:"mutation_record,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -233,11 +233,11 @@ type AlertPolicy_Documentation struct {
 	// The content may not exceed 8,192 Unicode characters and may not exceed
 	// more than 10,240 bytes when encoded in UTF-8 format, whichever is
 	// smaller.
-	Content string `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
+	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
 	// The format of the `content` field. Presently, only the value
 	// `"text/markdown"` is supported. See
 	// [Markdown](https://en.wikipedia.org/wiki/Markdown) for more information.
-	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType" json:"mime_type,omitempty"`
+	MimeType             string   `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -310,11 +310,11 @@ type AlertPolicy_Condition struct {
 	// changes, such as those to condition thresholds, durations, or trigger
 	// values.  Otherwise, treat the change as a new condition and let the
 	// existing condition be deleted.
-	Name string `protobuf:"bytes,12,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
 	// A short name or phrase used to identify the condition in dashboards,
 	// notifications, and incidents. To avoid confusion, don't use the same
 	// display name for multiple conditions in the same policy.
-	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Only one of the following condition types will be specified.
 	//
 	// Types that are valid to be assigned to Condition:
@@ -355,10 +355,10 @@ type isAlertPolicy_Condition_Condition interface {
 }
 
 type AlertPolicy_Condition_ConditionThreshold struct {
-	ConditionThreshold *AlertPolicy_Condition_MetricThreshold `protobuf:"bytes,1,opt,name=condition_threshold,json=conditionThreshold,oneof"`
+	ConditionThreshold *AlertPolicy_Condition_MetricThreshold `protobuf:"bytes,1,opt,name=condition_threshold,json=conditionThreshold,proto3,oneof"`
 }
 type AlertPolicy_Condition_ConditionAbsent struct {
-	ConditionAbsent *AlertPolicy_Condition_MetricAbsence `protobuf:"bytes,2,opt,name=condition_absent,json=conditionAbsent,oneof"`
+	ConditionAbsent *AlertPolicy_Condition_MetricAbsence `protobuf:"bytes,2,opt,name=condition_absent,json=conditionAbsent,proto3,oneof"`
 }
 
 func (*AlertPolicy_Condition_ConditionThreshold) isAlertPolicy_Condition_Condition() {}
@@ -516,10 +516,10 @@ type isAlertPolicy_Condition_Trigger_Type interface {
 }
 
 type AlertPolicy_Condition_Trigger_Count struct {
-	Count int32 `protobuf:"varint,1,opt,name=count,oneof"`
+	Count int32 `protobuf:"varint,1,opt,name=count,proto3,oneof"`
 }
 type AlertPolicy_Condition_Trigger_Percent struct {
-	Percent float64 `protobuf:"fixed64,2,opt,name=percent,oneof"`
+	Percent float64 `protobuf:"fixed64,2,opt,name=percent,proto3,oneof"`
 }
 
 func (*AlertPolicy_Condition_Trigger_Count) isAlertPolicy_Condition_Trigger_Type()   {}
@@ -623,7 +623,7 @@ type AlertPolicy_Condition_MetricThreshold struct {
 	// processed) and must specify the metric type and optionally may contain
 	// restrictions on resource type, resource labels, and metric labels.
 	// This field may not exceed 2048 Unicode characters in length.
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Specifies the alignment of data points in individual time series as
 	// well as how to combine the retrieved time series together (such as
 	// when aggregating multiple streams on each resource to a single
@@ -634,7 +634,7 @@ type AlertPolicy_Condition_MetricThreshold struct {
 	// This field is similar to the one in the
 	// [`MetricService.ListTimeSeries` request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
 	// It is advisable to use the `ListTimeSeries` method when debugging this field.
-	Aggregations []*Aggregation `protobuf:"bytes,8,rep,name=aggregations" json:"aggregations,omitempty"`
+	Aggregations []*Aggregation `protobuf:"bytes,8,rep,name=aggregations,proto3" json:"aggregations,omitempty"`
 	// A [filter](/monitoring/api/v3/filters) that identifies a time
 	// series that should be used as the denominator of a ratio that will be
 	// compared with the threshold. If a `denominator_filter` is specified,
@@ -648,7 +648,7 @@ type AlertPolicy_Condition_MetricThreshold struct {
 	// processed) and must specify the metric type and optionally may contain
 	// restrictions on resource type, resource labels, and metric labels.
 	// This field may not exceed 2048 Unicode characters in length.
-	DenominatorFilter string `protobuf:"bytes,9,opt,name=denominator_filter,json=denominatorFilter" json:"denominator_filter,omitempty"`
+	DenominatorFilter string `protobuf:"bytes,9,opt,name=denominator_filter,json=denominatorFilter,proto3" json:"denominator_filter,omitempty"`
 	// Specifies the alignment of data points in individual time series
 	// selected by `denominatorFilter` as
 	// well as how to combine the retrieved time series together (such as
@@ -665,16 +665,16 @@ type AlertPolicy_Condition_MetricThreshold struct {
 	// request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It
 	// is advisable to use the `ListTimeSeries` method when debugging this
 	// field.
-	DenominatorAggregations []*Aggregation `protobuf:"bytes,10,rep,name=denominator_aggregations,json=denominatorAggregations" json:"denominator_aggregations,omitempty"`
+	DenominatorAggregations []*Aggregation `protobuf:"bytes,10,rep,name=denominator_aggregations,json=denominatorAggregations,proto3" json:"denominator_aggregations,omitempty"`
 	// The comparison to apply between the time series (indicated by `filter`
 	// and `aggregation`) and the threshold (indicated by `threshold_value`).
 	// The comparison is applied on each time series, with the time series
 	// on the left-hand side and the threshold on the right-hand side.
 	//
 	// Only `COMPARISON_LT` and `COMPARISON_GT` are supported currently.
-	Comparison ComparisonType `protobuf:"varint,4,opt,name=comparison,enum=google.monitoring.v3.ComparisonType" json:"comparison,omitempty"`
+	Comparison ComparisonType `protobuf:"varint,4,opt,name=comparison,proto3,enum=google.monitoring.v3.ComparisonType" json:"comparison,omitempty"`
 	// A value against which to compare the time series.
-	ThresholdValue float64 `protobuf:"fixed64,5,opt,name=threshold_value,json=thresholdValue" json:"threshold_value,omitempty"`
+	ThresholdValue float64 `protobuf:"fixed64,5,opt,name=threshold_value,json=thresholdValue,proto3" json:"threshold_value,omitempty"`
 	// The amount of time that a time series must violate the
 	// threshold to be considered failing. Currently, only values
 	// that are a multiple of a minute--e.g.  60, 120, or 300
@@ -686,14 +686,14 @@ type AlertPolicy_Condition_MetricThreshold struct {
 	// a good duration is long enough so that a single outlier does not
 	// generate spurious alerts, but short enough that unhealthy states
 	// are detected and alerted on quickly.
-	Duration *duration.Duration `protobuf:"bytes,6,opt,name=duration" json:"duration,omitempty"`
+	Duration *duration.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"`
 	// The number/percent of time series for which the comparison must hold
 	// in order for the condition to trigger. If unspecified, then the
 	// condition will trigger if the comparison is true for any of the
 	// time series that have been identified by `filter` and `aggregations`,
 	// or by the ratio, if `denominator_filter` and `denominator_aggregations`
 	// are specified.
-	Trigger              *AlertPolicy_Condition_Trigger `protobuf:"bytes,7,opt,name=trigger" json:"trigger,omitempty"`
+	Trigger              *AlertPolicy_Condition_Trigger `protobuf:"bytes,7,opt,name=trigger,proto3" json:"trigger,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
@@ -795,7 +795,7 @@ type AlertPolicy_Condition_MetricAbsence struct {
 	// processed) and must specify the metric type and optionally may contain
 	// restrictions on resource type, resource labels, and metric labels.
 	// This field may not exceed 2048 Unicode characters in length.
-	Filter string `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
 	// Specifies the alignment of data points in individual time series as
 	// well as how to combine the retrieved time series together (such as
 	// when aggregating multiple streams on each resource to a single
@@ -806,19 +806,19 @@ type AlertPolicy_Condition_MetricAbsence struct {
 	// This field is similar to the
 	// one in the [`MetricService.ListTimeSeries` request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
 	// It is advisable to use the `ListTimeSeries` method when debugging this field.
-	Aggregations []*Aggregation `protobuf:"bytes,5,rep,name=aggregations" json:"aggregations,omitempty"`
+	Aggregations []*Aggregation `protobuf:"bytes,5,rep,name=aggregations,proto3" json:"aggregations,omitempty"`
 	// The amount of time that a time series must fail to report new
 	// data to be considered failing. Currently, only values that
 	// are a multiple of a minute--e.g.  60, 120, or 300
 	// seconds--are supported. If an invalid value is given, an
 	// error will be returned. The `Duration.nanos` field is
 	// ignored.
-	Duration *duration.Duration `protobuf:"bytes,2,opt,name=duration" json:"duration,omitempty"`
+	Duration *duration.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
 	// The number/percent of time series for which the comparison must hold
 	// in order for the condition to trigger. If unspecified, then the
 	// condition will trigger if the comparison is true for any of the
 	// time series that have been identified by `filter` and `aggregations`.
-	Trigger              *AlertPolicy_Condition_Trigger `protobuf:"bytes,3,opt,name=trigger" json:"trigger,omitempty"`
+	Trigger              *AlertPolicy_Condition_Trigger `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
 	XXX_sizecache        int32                          `json:"-"`
diff --git a/googleapis/monitoring/v3/alert_service.pb.go b/googleapis/monitoring/v3/alert_service.pb.go
index 3f65f8c21781d77aa903ed10dd5acc8976e05734..e7551b31c16ada142b0ab03bba50e3ce543c00b8 100644
--- a/googleapis/monitoring/v3/alert_service.pb.go
+++ b/googleapis/monitoring/v3/alert_service.pb.go
@@ -36,11 +36,11 @@ type CreateAlertPolicyRequest struct {
 	// policy that is returned will have a name that contains a normalized
 	// representation of this name as a prefix but adds a suffix of the form
 	// `/alertPolicies/[POLICY_ID]`, identifying the policy in the container.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The requested alerting policy. You should omit the `name` field in this
 	// policy. The name will be returned in the new policy, including
 	// a new [ALERT_POLICY_ID] value.
-	AlertPolicy          *AlertPolicy `protobuf:"bytes,2,opt,name=alert_policy,json=alertPolicy" json:"alert_policy,omitempty"`
+	AlertPolicy          *AlertPolicy `protobuf:"bytes,2,opt,name=alert_policy,json=alertPolicy,proto3" json:"alert_policy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -89,7 +89,7 @@ type GetAlertPolicyRequest struct {
 	// The alerting policy to retrieve. The format is
 	//
 	//     projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -137,26 +137,26 @@ type ListAlertPoliciesRequest struct {
 	// by name, use the
 	// [GetAlertPolicy][google.monitoring.v3.AlertPolicyService.GetAlertPolicy]
 	// operation, instead.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// If provided, this field specifies the criteria that must be met by
 	// alert policies to be included in the response.
 	//
 	// For more details, see [sorting and
 	// filtering](/monitoring/api/v3/sorting-and-filtering).
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// A comma-separated list of fields by which to sort the result. Supports
 	// the same set of field references as the `filter` field. Entries can be
 	// prefixed with a minus sign to sort by the field in descending order.
 	//
 	// For more details, see [sorting and
 	// filtering](/monitoring/api/v3/sorting-and-filtering).
-	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// The maximum number of results to return in a single response.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return more results from the previous method call.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -224,11 +224,11 @@ func (m *ListAlertPoliciesRequest) GetPageToken() string {
 // The protocol for the `ListAlertPolicies` response.
 type ListAlertPoliciesResponse struct {
 	// The returned alert policies.
-	AlertPolicies []*AlertPolicy `protobuf:"bytes,3,rep,name=alert_policies,json=alertPolicies" json:"alert_policies,omitempty"`
+	AlertPolicies []*AlertPolicy `protobuf:"bytes,3,rep,name=alert_policies,json=alertPolicies,proto3" json:"alert_policies,omitempty"`
 	// If there might be more results than were 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -295,12 +295,12 @@ type UpdateAlertPolicyRequest struct {
 	//     the supplied condition includes the `name` field with that
 	//     `[CONDITION_ID]`. If the supplied condition omits the `name` field,
 	//     then a new `[CONDITION_ID]` is created.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Required. The updated alerting policy or the updated values for the
 	// fields listed in `update_mask`.
 	// If `update_mask` is not empty, any fields in this policy that are
 	// not in `update_mask` are ignored.
-	AlertPolicy          *AlertPolicy `protobuf:"bytes,3,opt,name=alert_policy,json=alertPolicy" json:"alert_policy,omitempty"`
+	AlertPolicy          *AlertPolicy `protobuf:"bytes,3,opt,name=alert_policy,json=alertPolicy,proto3" json:"alert_policy,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -351,7 +351,7 @@ type DeleteAlertPolicyRequest struct {
 	//     projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]
 	//
 	// For more information, see [AlertPolicy][google.monitoring.v3.AlertPolicy].
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -477,8 +477,7 @@ func (c *alertPolicyServiceClient) UpdateAlertPolicy(ctx context.Context, in *Up
 	return out, nil
 }
 
-// Server API for AlertPolicyService service
-
+// AlertPolicyServiceServer is the server API for AlertPolicyService service.
 type AlertPolicyServiceServer interface {
 	// Lists the existing alerting policies for the project.
 	ListAlertPolicies(context.Context, *ListAlertPoliciesRequest) (*ListAlertPoliciesResponse, error)
diff --git a/googleapis/monitoring/v3/common.pb.go b/googleapis/monitoring/v3/common.pb.go
index 1daf7f7681be4d2186cbe619cd60f98b2eb817bf..d4d0e75284aa043dfcecb66a9613912ef9c780c5 100644
--- a/googleapis/monitoring/v3/common.pb.go
+++ b/googleapis/monitoring/v3/common.pb.go
@@ -457,19 +457,19 @@ type isTypedValue_Value interface {
 }
 
 type TypedValue_BoolValue struct {
-	BoolValue bool `protobuf:"varint,1,opt,name=bool_value,json=boolValue,oneof"`
+	BoolValue bool `protobuf:"varint,1,opt,name=bool_value,json=boolValue,proto3,oneof"`
 }
 type TypedValue_Int64Value struct {
-	Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,oneof"`
+	Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,proto3,oneof"`
 }
 type TypedValue_DoubleValue struct {
-	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,oneof"`
+	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
 }
 type TypedValue_StringValue struct {
-	StringValue string `protobuf:"bytes,4,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,4,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type TypedValue_DistributionValue struct {
-	DistributionValue *distribution.Distribution `protobuf:"bytes,5,opt,name=distribution_value,json=distributionValue,oneof"`
+	DistributionValue *distribution.Distribution `protobuf:"bytes,5,opt,name=distribution_value,json=distributionValue,proto3,oneof"`
 }
 
 func (*TypedValue_BoolValue) isTypedValue_Value()         {}
@@ -641,11 +641,11 @@ func _TypedValue_OneofSizer(msg proto.Message) (n int) {
 // represents a single point in time.
 type TimeInterval struct {
 	// Required. The end of the time interval.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Optional. The beginning of the time interval.  The default value
 	// for the start time is the end time. The start time must not be
 	// later than the end time.
-	StartTime            *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime            *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -704,7 +704,7 @@ type Aggregation struct {
 	// this field is ignored. If `perSeriesAligner` is specified and
 	// does not equal `ALIGN_NONE`, then this field must be defined;
 	// otherwise an error is returned.
-	AlignmentPeriod *duration.Duration `protobuf:"bytes,1,opt,name=alignment_period,json=alignmentPeriod" json:"alignment_period,omitempty"`
+	AlignmentPeriod *duration.Duration `protobuf:"bytes,1,opt,name=alignment_period,json=alignmentPeriod,proto3" json:"alignment_period,omitempty"`
 	// The approach to be used to align individual time series. Not all
 	// alignment functions may be applied to all time series, depending
 	// on the metric type and value type of the original time
@@ -716,7 +716,7 @@ type Aggregation struct {
 	// `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
 	// and `alignmentPeriod` must be specified; otherwise, an error is
 	// returned.
-	PerSeriesAligner Aggregation_Aligner `protobuf:"varint,2,opt,name=per_series_aligner,json=perSeriesAligner,enum=google.monitoring.v3.Aggregation_Aligner" json:"per_series_aligner,omitempty"`
+	PerSeriesAligner Aggregation_Aligner `protobuf:"varint,2,opt,name=per_series_aligner,json=perSeriesAligner,proto3,enum=google.monitoring.v3.Aggregation_Aligner" json:"per_series_aligner,omitempty"`
 	// The approach to be used to combine time series. Not all reducer
 	// functions may be applied to all time series, depending on the
 	// metric type and the value type of the original time
@@ -728,7 +728,7 @@ type Aggregation struct {
 	// `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
 	// and `alignmentPeriod` must be specified; otherwise, an error is
 	// returned.
-	CrossSeriesReducer Aggregation_Reducer `protobuf:"varint,4,opt,name=cross_series_reducer,json=crossSeriesReducer,enum=google.monitoring.v3.Aggregation_Reducer" json:"cross_series_reducer,omitempty"`
+	CrossSeriesReducer Aggregation_Reducer `protobuf:"varint,4,opt,name=cross_series_reducer,json=crossSeriesReducer,proto3,enum=google.monitoring.v3.Aggregation_Reducer" json:"cross_series_reducer,omitempty"`
 	// The set of fields to preserve when `crossSeriesReducer` is
 	// specified. The `groupByFields` determine how the time series are
 	// partitioned into subsets prior to applying the aggregation
@@ -743,7 +743,7 @@ type Aggregation struct {
 	// the same resource type, then the time series are aggregated into
 	// a single output time series. If `crossSeriesReducer` is not
 	// defined, this field is ignored.
-	GroupByFields        []string `protobuf:"bytes,5,rep,name=group_by_fields,json=groupByFields" json:"group_by_fields,omitempty"`
+	GroupByFields        []string `protobuf:"bytes,5,rep,name=group_by_fields,json=groupByFields,proto3" json:"group_by_fields,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/monitoring/v3/group.pb.go b/googleapis/monitoring/v3/group.pb.go
index 064dc52e0a4d5f4a7af00910bbfe1cc4f4474c0e..9ae9f756df54e84dd87cf2b4cfe7585c7c666824 100644
--- a/googleapis/monitoring/v3/group.pb.go
+++ b/googleapis/monitoring/v3/group.pb.go
@@ -50,18 +50,18 @@ type Group struct {
 	// When creating a group, this field is ignored and a new name is created
 	// consisting of the project specified in the call to `CreateGroup`
 	// and a unique `{group_id}` that is generated automatically.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A user-assigned name for this group, used only for display purposes.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The name of the group's parent, if it has one.
 	// The format is `"projects/{project_id_or_number}/groups/{group_id}"`.
 	// For groups with no parent, `parentName` is the empty string, `""`.
-	ParentName string `protobuf:"bytes,3,opt,name=parent_name,json=parentName" json:"parent_name,omitempty"`
+	ParentName string `protobuf:"bytes,3,opt,name=parent_name,json=parentName,proto3" json:"parent_name,omitempty"`
 	// The filter used to determine which monitored resources belong to this group.
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// If true, the members of this group are considered to be a cluster.
 	// The system can perform additional analysis on groups that are clusters.
-	IsCluster            bool     `protobuf:"varint,6,opt,name=is_cluster,json=isCluster" json:"is_cluster,omitempty"`
+	IsCluster            bool     `protobuf:"varint,6,opt,name=is_cluster,json=isCluster,proto3" json:"is_cluster,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/monitoring/v3/group_service.pb.go b/googleapis/monitoring/v3/group_service.pb.go
index 99cd3a30ddef775241ea0f84eab9aa64ed0b3bd4..57d11175db4f0d2c6a5cc1b16361faaa8ff9fd46 100644
--- a/googleapis/monitoring/v3/group_service.pb.go
+++ b/googleapis/monitoring/v3/group_service.pb.go
@@ -30,7 +30,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type ListGroupsRequest struct {
 	// The project whose groups are to be listed. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional filter consisting of a single group name.  The filters limit the
 	// groups returned based on their parent-child relationship with the specified
 	// group. If no filter is specified, all groups are returned.
@@ -41,11 +41,11 @@ type ListGroupsRequest struct {
 	//	*ListGroupsRequest_DescendantsOfGroup
 	Filter isListGroupsRequest_Filter `protobuf_oneof:"filter"`
 	// A positive number that is the maximum number of results to return.
-	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return additional results from the previous method call.
-	PageToken            string   `protobuf:"bytes,6,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -80,13 +80,13 @@ type isListGroupsRequest_Filter interface {
 }
 
 type ListGroupsRequest_ChildrenOfGroup struct {
-	ChildrenOfGroup string `protobuf:"bytes,2,opt,name=children_of_group,json=childrenOfGroup,oneof"`
+	ChildrenOfGroup string `protobuf:"bytes,2,opt,name=children_of_group,json=childrenOfGroup,proto3,oneof"`
 }
 type ListGroupsRequest_AncestorsOfGroup struct {
-	AncestorsOfGroup string `protobuf:"bytes,3,opt,name=ancestors_of_group,json=ancestorsOfGroup,oneof"`
+	AncestorsOfGroup string `protobuf:"bytes,3,opt,name=ancestors_of_group,json=ancestorsOfGroup,proto3,oneof"`
 }
 type ListGroupsRequest_DescendantsOfGroup struct {
-	DescendantsOfGroup string `protobuf:"bytes,4,opt,name=descendants_of_group,json=descendantsOfGroup,oneof"`
+	DescendantsOfGroup string `protobuf:"bytes,4,opt,name=descendants_of_group,json=descendantsOfGroup,proto3,oneof"`
 }
 
 func (*ListGroupsRequest_ChildrenOfGroup) isListGroupsRequest_Filter()    {}
@@ -226,11 +226,11 @@ func _ListGroupsRequest_OneofSizer(msg proto.Message) (n int) {
 // The `ListGroups` response.
 type ListGroupsResponse struct {
 	// The groups that match the specified filters.
-	Group []*Group `protobuf:"bytes,1,rep,name=group" json:"group,omitempty"`
+	Group []*Group `protobuf:"bytes,1,rep,name=group,proto3" json:"group,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -278,7 +278,7 @@ func (m *ListGroupsResponse) GetNextPageToken() string {
 type GetGroupRequest struct {
 	// The group to retrieve. The format is
 	// `"projects/{project_id_or_number}/groups/{group_id}"`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -319,12 +319,12 @@ func (m *GetGroupRequest) GetName() string {
 type CreateGroupRequest struct {
 	// The project in which to create the group. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// A group definition. It is an error to define the `name` field because
 	// the system assigns the name.
-	Group *Group `protobuf:"bytes,2,opt,name=group" json:"group,omitempty"`
+	Group *Group `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
 	// If true, validate this request but do not create the group.
-	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly" json:"validate_only,omitempty"`
+	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -379,9 +379,9 @@ func (m *CreateGroupRequest) GetValidateOnly() bool {
 type UpdateGroupRequest struct {
 	// The new definition of the group.  All fields of the existing group,
 	// excepting `name`, are replaced with the corresponding fields of this group.
-	Group *Group `protobuf:"bytes,2,opt,name=group" json:"group,omitempty"`
+	Group *Group `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
 	// If true, validate this request but do not update the existing group.
-	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly" json:"validate_only,omitempty"`
+	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -429,7 +429,7 @@ func (m *UpdateGroupRequest) GetValidateOnly() bool {
 type DeleteGroupRequest struct {
 	// The group to delete. The format is
 	// `"projects/{project_id_or_number}/groups/{group_id}"`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -470,13 +470,13 @@ func (m *DeleteGroupRequest) GetName() string {
 type ListGroupMembersRequest struct {
 	// The group whose members are listed. The format is
 	// `"projects/{project_id_or_number}/groups/{group_id}"`.
-	Name string `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
 	// A positive number that is the maximum number of results to return.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return additional results from the previous method call.
-	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// An optional [list filter](/monitoring/api/learn_more#filtering) describing
 	// the members to be returned.  The filter may reference the type, labels, and
 	// metadata of monitored resources that comprise the group.
@@ -484,12 +484,12 @@ type ListGroupMembersRequest struct {
 	// instances, use this filter:
 	//
 	//     resource.type = "gce_instance"
-	Filter string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
 	// An optional time interval for which results should be returned. Only
 	// members that were part of the group during the specified interval are
 	// included in the response.  If no interval is provided then the group
 	// membership over the last minute is returned.
-	Interval             *TimeInterval `protobuf:"bytes,6,opt,name=interval" json:"interval,omitempty"`
+	Interval             *TimeInterval `protobuf:"bytes,6,opt,name=interval,proto3" json:"interval,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -557,13 +557,13 @@ func (m *ListGroupMembersRequest) GetInterval() *TimeInterval {
 // The `ListGroupMembers` response.
 type ListGroupMembersResponse struct {
 	// A set of monitored resources in the group.
-	Members []*monitoredres.MonitoredResource `protobuf:"bytes,1,rep,name=members" json:"members,omitempty"`
+	Members []*monitoredres.MonitoredResource `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"`
 	// 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.
-	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	// The total number of elements matching this request.
-	TotalSize            int32    `protobuf:"varint,3,opt,name=total_size,json=totalSize" json:"total_size,omitempty"`
+	TotalSize            int32    `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -714,8 +714,7 @@ func (c *groupServiceClient) ListGroupMembers(ctx context.Context, in *ListGroup
 	return out, nil
 }
 
-// Server API for GroupService service
-
+// GroupServiceServer is the server API for GroupService service.
 type GroupServiceServer interface {
 	// Lists the existing groups.
 	ListGroups(context.Context, *ListGroupsRequest) (*ListGroupsResponse, error)
diff --git a/googleapis/monitoring/v3/metric.pb.go b/googleapis/monitoring/v3/metric.pb.go
index e9d726fcfafe926e4e278fea1839244e16b073c5..b448a2ceb8a30c8512b48b135944f5de60613afa 100644
--- a/googleapis/monitoring/v3/metric.pb.go
+++ b/googleapis/monitoring/v3/metric.pb.go
@@ -30,9 +30,9 @@ type Point struct {
 	// points specifying the same start time and increasing end times, until an
 	// event resets the cumulative value to zero and sets a new start time for the
 	// following points.
-	Interval *TimeInterval `protobuf:"bytes,1,opt,name=interval" json:"interval,omitempty"`
+	Interval *TimeInterval `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
 	// The value of the data point.
-	Value                *TypedValue `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                *TypedValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -83,10 +83,10 @@ func (m *Point) GetValue() *TypedValue {
 type TimeSeries struct {
 	// The associated metric. A fully-specified metric used to identify the time
 	// series.
-	Metric *metric.Metric `protobuf:"bytes,1,opt,name=metric" json:"metric,omitempty"`
+	Metric *metric.Metric `protobuf:"bytes,1,opt,name=metric,proto3" json:"metric,omitempty"`
 	// The associated resource. A fully-specified monitored resource used to
 	// identify the time series.
-	Resource *monitoredres.MonitoredResource `protobuf:"bytes,2,opt,name=resource" json:"resource,omitempty"`
+	Resource *monitoredres.MonitoredResource `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
 	// The metric kind of the time series. When listing time series, this metric
 	// kind might be different from the metric kind of the associated metric if
 	// this time series is an alignment or reduction of other time series.
@@ -96,14 +96,14 @@ type TimeSeries struct {
 	// metric's descriptor must be auto-created, then this field specifies the
 	// metric kind of the new descriptor and must be either `GAUGE` (the default)
 	// or `CUMULATIVE`.
-	MetricKind metric.MetricDescriptor_MetricKind `protobuf:"varint,3,opt,name=metric_kind,json=metricKind,enum=google.api.MetricDescriptor_MetricKind" json:"metric_kind,omitempty"`
+	MetricKind metric.MetricDescriptor_MetricKind `protobuf:"varint,3,opt,name=metric_kind,json=metricKind,proto3,enum=google.api.MetricDescriptor_MetricKind" json:"metric_kind,omitempty"`
 	// 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.
-	ValueType metric.MetricDescriptor_ValueType `protobuf:"varint,4,opt,name=value_type,json=valueType,enum=google.api.MetricDescriptor_ValueType" json:"value_type,omitempty"`
+	ValueType metric.MetricDescriptor_ValueType `protobuf:"varint,4,opt,name=value_type,json=valueType,proto3,enum=google.api.MetricDescriptor_ValueType" json:"value_type,omitempty"`
 	// The data points of this time series. When listing time series, the order of
 	// the points is specified by the list method.
 	//
@@ -112,7 +112,7 @@ type TimeSeries struct {
 	// metric. If the associated metric's descriptor must be auto-created, then
 	// the value type of the descriptor is determined by the point's type, which
 	// must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`.
-	Points               []*Point `protobuf:"bytes,5,rep,name=points" json:"points,omitempty"`
+	Points               []*Point `protobuf:"bytes,5,rep,name=points,proto3" json:"points,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/monitoring/v3/metric_service.pb.go b/googleapis/monitoring/v3/metric_service.pb.go
index 881d929715b898313ed2352f522057b04547dbe7..8a538ab46638055e86048b365e63d7ff490c84f6 100644
--- a/googleapis/monitoring/v3/metric_service.pb.go
+++ b/googleapis/monitoring/v3/metric_service.pb.go
@@ -60,7 +60,7 @@ func (ListTimeSeriesRequest_TimeSeriesView) EnumDescriptor() ([]byte, []int) {
 type ListMonitoredResourceDescriptorsRequest struct {
 	// The project on which to execute the request. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional [filter](/monitoring/api/v3/filters) describing
 	// the descriptors to be returned.  The filter can reference
 	// the descriptor's type and labels. For example, the
@@ -68,13 +68,13 @@ type ListMonitoredResourceDescriptorsRequest struct {
 	// that have an `id` label:
 	//
 	//     resource.type = starts_with("gce_") AND resource.label:id
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// A positive number that is the maximum number of results to return.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return additional results from the previous method call.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -138,11 +138,11 @@ func (m *ListMonitoredResourceDescriptorsRequest) GetPageToken() string {
 type ListMonitoredResourceDescriptorsResponse struct {
 	// The monitored resource descriptors that are available to this project
 	// and that match `filter`, if present.
-	ResourceDescriptors []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,1,rep,name=resource_descriptors,json=resourceDescriptors" json:"resource_descriptors,omitempty"`
+	ResourceDescriptors []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,1,rep,name=resource_descriptors,json=resourceDescriptors,proto3" json:"resource_descriptors,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -194,7 +194,7 @@ type GetMonitoredResourceDescriptorRequest struct {
 	// `"projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}"`.
 	// The `{resource_type}` is a predefined type, such as
 	// `cloudsql_database`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -235,7 +235,7 @@ func (m *GetMonitoredResourceDescriptorRequest) GetName() string {
 type ListMetricDescriptorsRequest struct {
 	// The project on which to execute the request. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	// If this field is empty, all custom and
 	// system-defined metric descriptors are returned.
 	// Otherwise, the [filter](/monitoring/api/v3/filters)
@@ -244,13 +244,13 @@ type ListMetricDescriptorsRequest struct {
 	// [custom metrics](/monitoring/custom-metrics):
 	//
 	//     metric.type = starts_with("custom.googleapis.com/")
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// A positive number that is the maximum number of results to return.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return additional results from the previous method call.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -312,11 +312,11 @@ func (m *ListMetricDescriptorsRequest) GetPageToken() string {
 type ListMetricDescriptorsResponse struct {
 	// The metric descriptors that are available to the project
 	// and that match the value of `filter`, if present.
-	MetricDescriptors []*metric.MetricDescriptor `protobuf:"bytes,1,rep,name=metric_descriptors,json=metricDescriptors" json:"metric_descriptors,omitempty"`
+	MetricDescriptors []*metric.MetricDescriptor `protobuf:"bytes,1,rep,name=metric_descriptors,json=metricDescriptors,proto3" json:"metric_descriptors,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -366,7 +366,7 @@ type GetMetricDescriptorRequest struct {
 	// `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
 	// An example value of `{metric_id}` is
 	// `"compute.googleapis.com/instance/disk/read_bytes_count"`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -407,10 +407,10 @@ func (m *GetMetricDescriptorRequest) GetName() string {
 type CreateMetricDescriptorRequest struct {
 	// The project on which to execute the request. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The new [custom metric](/monitoring/custom-metrics)
 	// descriptor.
-	MetricDescriptor     *metric.MetricDescriptor `protobuf:"bytes,2,opt,name=metric_descriptor,json=metricDescriptor" json:"metric_descriptor,omitempty"`
+	MetricDescriptor     *metric.MetricDescriptor `protobuf:"bytes,2,opt,name=metric_descriptor,json=metricDescriptor,proto3" json:"metric_descriptor,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
 	XXX_unrecognized     []byte                   `json:"-"`
 	XXX_sizecache        int32                    `json:"-"`
@@ -460,7 +460,7 @@ type DeleteMetricDescriptorRequest struct {
 	// `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
 	// An example of `{metric_id}` is:
 	// `"custom.googleapis.com/my_test_metric"`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -501,7 +501,7 @@ func (m *DeleteMetricDescriptorRequest) GetName() string {
 type ListTimeSeriesRequest struct {
 	// The project on which to execute the request. The format is
 	// "projects/{project_id_or_number}".
-	Name string `protobuf:"bytes,10,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"`
 	// A [monitoring filter](/monitoring/api/v3/filters) that specifies which time
 	// series should be returned.  The filter must specify a single metric type,
 	// and can additionally specify metric labels and other information. For
@@ -509,30 +509,30 @@ type ListTimeSeriesRequest struct {
 	//
 	//     metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
 	//         metric.label.instance_name = "my-instance-name"
-	Filter string `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The time interval for which results should be returned. Only time series
 	// that contain data points in the specified interval are included
 	// in the response.
-	Interval *TimeInterval `protobuf:"bytes,4,opt,name=interval" json:"interval,omitempty"`
+	Interval *TimeInterval `protobuf:"bytes,4,opt,name=interval,proto3" json:"interval,omitempty"`
 	// By default, the raw time series data is returned.
 	// Use this field to combine multiple time series for different
 	// views of the data.
-	Aggregation *Aggregation `protobuf:"bytes,5,opt,name=aggregation" json:"aggregation,omitempty"`
+	Aggregation *Aggregation `protobuf:"bytes,5,opt,name=aggregation,proto3" json:"aggregation,omitempty"`
 	// Specifies the order in which the points of the time series should
 	// be returned.  By default, results are not ordered.  Currently,
 	// this field must be left blank.
-	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// Specifies which information is returned about the time series.
-	View ListTimeSeriesRequest_TimeSeriesView `protobuf:"varint,7,opt,name=view,enum=google.monitoring.v3.ListTimeSeriesRequest_TimeSeriesView" json:"view,omitempty"`
+	View ListTimeSeriesRequest_TimeSeriesView `protobuf:"varint,7,opt,name=view,proto3,enum=google.monitoring.v3.ListTimeSeriesRequest_TimeSeriesView" json:"view,omitempty"`
 	// A positive number that is the maximum number of results to return.
 	// When `view` field sets to `FULL`, it limits the number of `Points` server
 	// will return; if `view` field is `HEADERS`, it limits the number of
 	// `TimeSeries` server will return.
-	PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return additional results from the previous method call.
-	PageToken            string   `protobuf:"bytes,9,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -621,11 +621,11 @@ func (m *ListTimeSeriesRequest) GetPageToken() string {
 // The `ListTimeSeries` response.
 type ListTimeSeriesResponse struct {
 	// One or more time series that match the filter included in the request.
-	TimeSeries []*TimeSeries `protobuf:"bytes,1,rep,name=time_series,json=timeSeries" json:"time_series,omitempty"`
+	TimeSeries []*TimeSeries `protobuf:"bytes,1,rep,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
 	// 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.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -673,13 +673,13 @@ func (m *ListTimeSeriesResponse) GetNextPageToken() string {
 type CreateTimeSeriesRequest struct {
 	// The project on which to execute the request. The format is
 	// `"projects/{project_id_or_number}"`.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The new data to be added to a list of time series.
 	// Adds at most one data point to each of several time series.  The new data
 	// point must be more recent than any other point in its time series.  Each
 	// `TimeSeries` value must fully specify a unique time series by supplying
 	// all label values for the metric and the monitored resource.
-	TimeSeries           []*TimeSeries `protobuf:"bytes,2,rep,name=time_series,json=timeSeries" json:"time_series,omitempty"`
+	TimeSeries           []*TimeSeries `protobuf:"bytes,2,rep,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -729,9 +729,9 @@ type CreateTimeSeriesError struct {
 	// and `Point`s (including timestamp and value) that resulted
 	// in the error. This field provides all of the context that
 	// would be needed to retry the operation.
-	TimeSeries *TimeSeries `protobuf:"bytes,1,opt,name=time_series,json=timeSeries" json:"time_series,omitempty"`
+	TimeSeries *TimeSeries `protobuf:"bytes,1,opt,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
 	// The status of the requested write operation.
-	Status               *status.Status `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
+	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -907,8 +907,7 @@ func (c *metricServiceClient) CreateTimeSeries(ctx context.Context, in *CreateTi
 	return out, nil
 }
 
-// Server API for MetricService service
-
+// MetricServiceServer is the server API for MetricService service.
 type MetricServiceServer interface {
 	// Lists monitored resource descriptors that match a filter. This method does not require a Stackdriver account.
 	ListMonitoredResourceDescriptors(context.Context, *ListMonitoredResourceDescriptorsRequest) (*ListMonitoredResourceDescriptorsResponse, error)
diff --git a/googleapis/monitoring/v3/mutation_record.pb.go b/googleapis/monitoring/v3/mutation_record.pb.go
index d2952f124740a240d0599056046cdfb295ec23a1..f59cba8af220d72b11eddaece98162b59c405594 100644
--- a/googleapis/monitoring/v3/mutation_record.pb.go
+++ b/googleapis/monitoring/v3/mutation_record.pb.go
@@ -22,9 +22,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Describes a change made to a configuration.
 type MutationRecord struct {
 	// When the change occurred.
-	MutateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=mutate_time,json=mutateTime" json:"mutate_time,omitempty"`
+	MutateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=mutate_time,json=mutateTime,proto3" json:"mutate_time,omitempty"`
 	// The email address of the user making the change.
-	MutatedBy            string   `protobuf:"bytes,2,opt,name=mutated_by,json=mutatedBy" json:"mutated_by,omitempty"`
+	MutatedBy            string   `protobuf:"bytes,2,opt,name=mutated_by,json=mutatedBy,proto3" json:"mutated_by,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/monitoring/v3/notification.pb.go b/googleapis/monitoring/v3/notification.pb.go
index d13bb8dc8c51a0e2181d28d5a5e350d14b2850fc..8895769adc934130113f90463de28f5bf5b3485d 100644
--- a/googleapis/monitoring/v3/notification.pb.go
+++ b/googleapis/monitoring/v3/notification.pb.go
@@ -72,24 +72,24 @@ type NotificationChannelDescriptor struct {
 	//     projects/[PROJECT_ID]/notificationChannelDescriptors/[TYPE]
 	//
 	// In the above, `[TYPE]` is the value of the `type` field.
-	Name string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	// The type of notification channel, such as "email", "sms", etc.
 	// Notification channel types are globally unique.
-	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// A human-readable name for the notification channel type.  This
 	// form of the name is suitable for a user interface.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// A human-readable description of the notification channel
 	// type. The description may include a description of the properties
 	// of the channel and pointers to external documentation.
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The set of labels that must be defined to identify a particular
 	// channel of the corresponding type. Each label includes a
 	// description for how that field should be populated.
-	Labels []*label.LabelDescriptor `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty"`
+	Labels []*label.LabelDescriptor `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty"`
 	// The tiers that support this notification channel; the project service tier
 	// must be one of the supported_tiers.
-	SupportedTiers       []ServiceTier `protobuf:"varint,5,rep,packed,name=supported_tiers,json=supportedTiers,enum=google.monitoring.v3.ServiceTier" json:"supported_tiers,omitempty"`
+	SupportedTiers       []ServiceTier `protobuf:"varint,5,rep,packed,name=supported_tiers,json=supportedTiers,proto3,enum=google.monitoring.v3.ServiceTier" json:"supported_tiers,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -169,27 +169,27 @@ func (m *NotificationChannelDescriptor) GetSupportedTiers() []ServiceTier {
 type NotificationChannel struct {
 	// The type of the notification channel. This field matches the
 	// value of the [NotificationChannelDescriptor.type][google.monitoring.v3.NotificationChannelDescriptor.type] field.
-	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// The full REST resource name for this channel. The syntax is:
 	//
 	//     projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
 	//
 	// The `[CHANNEL_ID]` is automatically assigned by the server on creation.
-	Name string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
 	// An optional human-readable name for this notification channel. It is
 	// recommended that you specify a non-empty and unique name in order to
 	// make it easier to identify the channels in your project, though this is
 	// not enforced. The display name is limited to 512 Unicode characters.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// An optional human-readable description of this notification channel. This
 	// description may provide additional details, beyond the display
 	// name, for the channel. This may not exceeed 1024 Unicode characters.
-	Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 	// Configuration fields that define the channel and its behavior. The
 	// permissible and required labels are specified in the
 	// [NotificationChannelDescriptor.labels][google.monitoring.v3.NotificationChannelDescriptor.labels] of the
 	// `NotificationChannelDescriptor` corresponding to the `type` field.
-	Labels map[string]string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// User-supplied key/value data that does not need to conform to
 	// the corresponding `NotificationChannelDescriptor`'s schema, unlike
 	// the `labels` field. This field is intended to be used for organizing
@@ -199,7 +199,7 @@ type NotificationChannel struct {
 	// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
 	// values can contain only lowercase letters, numerals, underscores, and
 	// dashes. Keys must begin with a letter.
-	UserLabels map[string]string `protobuf:"bytes,8,rep,name=user_labels,json=userLabels" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	UserLabels map[string]string `protobuf:"bytes,8,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Indicates whether this channel has been verified or not. On a
 	// [`ListNotificationChannels`][google.monitoring.v3.NotificationChannelService.ListNotificationChannels]
 	// or
@@ -219,14 +219,14 @@ type NotificationChannel struct {
 	// [`UpdateNotificationChannel`][google.monitoring.v3.NotificationChannelService.UpdateNotificationChannel]
 	// operation. To change the value of this field, you must call
 	// [`VerifyNotificationChannel`][google.monitoring.v3.NotificationChannelService.VerifyNotificationChannel].
-	VerificationStatus NotificationChannel_VerificationStatus `protobuf:"varint,9,opt,name=verification_status,json=verificationStatus,enum=google.monitoring.v3.NotificationChannel_VerificationStatus" json:"verification_status,omitempty"`
+	VerificationStatus NotificationChannel_VerificationStatus `protobuf:"varint,9,opt,name=verification_status,json=verificationStatus,proto3,enum=google.monitoring.v3.NotificationChannel_VerificationStatus" json:"verification_status,omitempty"`
 	// Whether notifications are forwarded to the described channel. This makes
 	// it possible to disable delivery of notifications to a particular channel
 	// without removing the channel from all alerting policies that reference
 	// the channel. This is a more convenient approach when the change is
 	// temporary and you want to receive notifications from the same set
 	// of alerting policies on the channel at some point in the future.
-	Enabled              *wrappers.BoolValue `protobuf:"bytes,11,opt,name=enabled" json:"enabled,omitempty"`
+	Enabled              *wrappers.BoolValue `protobuf:"bytes,11,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
diff --git a/googleapis/monitoring/v3/notification_service.pb.go b/googleapis/monitoring/v3/notification_service.pb.go
index 6d333a1611fc1e4d0454e1b235721cdd52179b3c..7a14f9acac53dfbf718ced9f803cb1b53c0753ef 100644
--- a/googleapis/monitoring/v3/notification_service.pb.go
+++ b/googleapis/monitoring/v3/notification_service.pb.go
@@ -38,15 +38,15 @@ type ListNotificationChannelDescriptorsRequest struct {
 	// descriptors; to retrieve a single descriptor by name, use the
 	// [GetNotificationChannelDescriptor][google.monitoring.v3.NotificationChannelService.GetNotificationChannelDescriptor]
 	// operation, instead.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The maximum number of results to return in a single response. If
 	// not set to a positive number, a reasonable value will be chosen by the
 	// service.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` must contain a value returned as the
 	// `next_page_token` in a previous response to request the next set
 	// of results.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -103,12 +103,12 @@ func (m *ListNotificationChannelDescriptorsRequest) GetPageToken() string {
 type ListNotificationChannelDescriptorsResponse struct {
 	// The monitored resource descriptors supported for the specified
 	// project, optionally filtered.
-	ChannelDescriptors []*NotificationChannelDescriptor `protobuf:"bytes,1,rep,name=channel_descriptors,json=channelDescriptors" json:"channel_descriptors,omitempty"`
+	ChannelDescriptors []*NotificationChannelDescriptor `protobuf:"bytes,1,rep,name=channel_descriptors,json=channelDescriptors,proto3" json:"channel_descriptors,omitempty"`
 	// If not empty, indicates that there may be more results that match
 	// the request. Use the value in the `page_token` field in a
 	// subsequent request to fetch the next set of results. If empty,
 	// all results have been returned.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -160,7 +160,7 @@ func (m *ListNotificationChannelDescriptorsResponse) GetNextPageToken() string {
 type GetNotificationChannelDescriptorRequest struct {
 	// The channel type for which to execute the request. The format is
 	// `projects/[PROJECT_ID]/notificationChannelDescriptors/{channel_type}`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -209,9 +209,9 @@ type CreateNotificationChannelRequest struct {
 	// written. This does not name the newly created channel. The resulting
 	// channel's name will have a normalized version of this field as a prefix,
 	// but will add `/notificationChannels/[CHANNEL_ID]` to identify the channel.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// The definition of the `NotificationChannel` to create.
-	NotificationChannel  *NotificationChannel `protobuf:"bytes,2,opt,name=notification_channel,json=notificationChannel" json:"notification_channel,omitempty"`
+	NotificationChannel  *NotificationChannel `protobuf:"bytes,2,opt,name=notification_channel,json=notificationChannel,proto3" json:"notification_channel,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -263,28 +263,28 @@ type ListNotificationChannelsRequest struct {
 	// specific channel. To query a specific channel by REST resource name, use
 	// the
 	// [`GetNotificationChannel`][google.monitoring.v3.NotificationChannelService.GetNotificationChannel] operation.
-	Name string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
 	// If provided, this field specifies the criteria that must be met by
 	// notification channels to be included in the response.
 	//
 	// For more details, see [sorting and
 	// filtering](/monitoring/api/v3/sorting-and-filtering).
-	Filter string `protobuf:"bytes,6,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,6,opt,name=filter,proto3" json:"filter,omitempty"`
 	// A comma-separated list of fields by which to sort the result. Supports
 	// the same set of fields as in `filter`. Entries can be prefixed with
 	// a minus sign to sort in descending rather than ascending order.
 	//
 	// For more details, see [sorting and
 	// filtering](/monitoring/api/v3/sorting-and-filtering).
-	OrderBy string `protobuf:"bytes,7,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy string `protobuf:"bytes,7,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	// The maximum number of results to return in a single response. If
 	// not set to a positive number, a reasonable value will be chosen by the
 	// service.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` must contain a value returned as the
 	// `next_page_token` in a previous response to request the next set
 	// of results.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -352,12 +352,12 @@ func (m *ListNotificationChannelsRequest) GetPageToken() string {
 // The `ListNotificationChannels` response.
 type ListNotificationChannelsResponse struct {
 	// The notification channels defined for the specified project.
-	NotificationChannels []*NotificationChannel `protobuf:"bytes,3,rep,name=notification_channels,json=notificationChannels" json:"notification_channels,omitempty"`
+	NotificationChannels []*NotificationChannel `protobuf:"bytes,3,rep,name=notification_channels,json=notificationChannels,proto3" json:"notification_channels,omitempty"`
 	// If not empty, indicates that there may be more results that match
 	// the request. Use the value in the `page_token` field in a
 	// subsequent request to fetch the next set of results. If empty,
 	// all results have been returned.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -405,7 +405,7 @@ func (m *ListNotificationChannelsResponse) GetNextPageToken() string {
 type GetNotificationChannelRequest struct {
 	// The channel for which to execute the request. The format is
 	// `projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]`.
-	Name                 string   `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -445,12 +445,12 @@ func (m *GetNotificationChannelRequest) GetName() string {
 // The `UpdateNotificationChannel` request.
 type UpdateNotificationChannelRequest struct {
 	// The fields to update.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// A description of the changes to be applied to the specified
 	// notification channel. The description must provide a definition for
 	// fields to be updated; the names of these fields should also be
 	// included in the `update_mask`.
-	NotificationChannel  *NotificationChannel `protobuf:"bytes,3,opt,name=notification_channel,json=notificationChannel" json:"notification_channel,omitempty"`
+	NotificationChannel  *NotificationChannel `protobuf:"bytes,3,opt,name=notification_channel,json=notificationChannel,proto3" json:"notification_channel,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -498,12 +498,12 @@ func (m *UpdateNotificationChannelRequest) GetNotificationChannel() *Notificatio
 type DeleteNotificationChannelRequest struct {
 	// The channel for which to execute the request. The format is
 	// `projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]`.
-	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 	// If true, the notification channel will be deleted regardless of its
 	// use in alert policies (the policies will be updated to remove the
 	// channel). If false, channels that are still referenced by an existing
 	// alerting policy will fail to be deleted in a delete operation.
-	Force                bool     `protobuf:"varint,5,opt,name=force" json:"force,omitempty"`
+	Force                bool     `protobuf:"varint,5,opt,name=force,proto3" json:"force,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -550,7 +550,7 @@ func (m *DeleteNotificationChannelRequest) GetForce() bool {
 // The `SendNotificationChannelVerificationCode` request.
 type SendNotificationChannelVerificationCodeRequest struct {
 	// The notification channel to which to send a verification code.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -596,7 +596,7 @@ type GetNotificationChannelVerificationCodeRequest struct {
 	// The notification channel for which a verification code is to be generated
 	// and retrieved. This must name a channel that is already verified; if
 	// the specified channel is not verified, the request will fail.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The desired expiration time. If specified, the API will guarantee that
 	// the returned code will not be valid after the specified timestamp;
 	// however, the API cannot guarantee that the returned code will be
@@ -606,7 +606,7 @@ type GetNotificationChannelVerificationCodeRequest struct {
 	// permissible expiration (so specifying an expiration may extend the
 	// code's lifetime over omitting an expiration, even though the API does
 	// impose an upper limit on the maximum expiration that is permitted).
-	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -660,11 +660,11 @@ type GetNotificationChannelVerificationCodeResponse struct {
 	// that have an equivalent identity (i.e. other channels of the same
 	// type with the same fingerprint such as other email channels with
 	// the same email address or other sms channels with the same number).
-	Code string `protobuf:"bytes,1,opt,name=code" json:"code,omitempty"`
+	Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
 	// The expiration time associated with the code that was returned. If
 	// an expiration was provided in the request, this is the minimum of the
 	// requested expiration in the request and the max permitted expiration.
-	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -715,7 +715,7 @@ func (m *GetNotificationChannelVerificationCodeResponse) GetExpireTime() *timest
 // The `VerifyNotificationChannel` request.
 type VerifyNotificationChannelRequest struct {
 	// The notification channel to verify.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The verification code that was delivered to the channel as
 	// a result of invoking the `SendNotificationChannelVerificationCode` API
 	// method or that was retrieved from a verified channel via
@@ -723,7 +723,7 @@ type VerifyNotificationChannelRequest struct {
 	// "G-123456" or "TKNZGhhd2EyN3I1MnRnMjRv" (in general, one is only
 	// guaranteed that the code is valid UTF-8; one should not
 	// make any assumptions regarding the structure or format of the code).
-	Code                 string   `protobuf:"bytes,2,opt,name=code" json:"code,omitempty"`
+	Code                 string   `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -946,8 +946,7 @@ func (c *notificationChannelServiceClient) VerifyNotificationChannel(ctx context
 	return out, nil
 }
 
-// Server API for NotificationChannelService service
-
+// NotificationChannelServiceServer is the server API for NotificationChannelService service.
 type NotificationChannelServiceServer interface {
 	// Lists the descriptors for supported channel types. The use of descriptors
 	// makes it possible for new channel types to be dynamically added.
diff --git a/googleapis/monitoring/v3/uptime.pb.go b/googleapis/monitoring/v3/uptime.pb.go
index cb85cbe05a6b2c9e20e5e1323026ab20af9a9c8d..cb1cf7ee4829f92fa7436c917601ffb234768be7 100644
--- a/googleapis/monitoring/v3/uptime.pb.go
+++ b/googleapis/monitoring/v3/uptime.pb.go
@@ -104,11 +104,11 @@ type UptimeCheckConfig struct {
 	// This field should be omitted when creating the uptime check configuration;
 	// on create, the resource name is assigned by the server and included in the
 	// response.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A human-friendly name for the uptime check configuration. The display name
 	// should be unique within a Stackdriver Account in order to make it easier
 	// to identify; however, uniqueness is not enforced. Required.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// The resource the check is checking. Required.
 	//
 	// Types that are valid to be assigned to Resource:
@@ -123,24 +123,24 @@ type UptimeCheckConfig struct {
 	CheckRequestType isUptimeCheckConfig_CheckRequestType `protobuf_oneof:"check_request_type"`
 	// How often the uptime check is performed.
 	// Currently, only 1, 5, 10, and 15 minutes are supported. Required.
-	Period *duration.Duration `protobuf:"bytes,7,opt,name=period" json:"period,omitempty"`
+	Period *duration.Duration `protobuf:"bytes,7,opt,name=period,proto3" json:"period,omitempty"`
 	// The maximum amount of time to wait for the request to complete (must be
 	// between 1 and 60 seconds). Required.
-	Timeout *duration.Duration `protobuf:"bytes,8,opt,name=timeout" json:"timeout,omitempty"`
+	Timeout *duration.Duration `protobuf:"bytes,8,opt,name=timeout,proto3" json:"timeout,omitempty"`
 	// The expected content on the page the check is run against.
 	// Currently, only the first entry in the list is supported, and other entries
 	// will be ignored. The server will look for an exact match of the string in
 	// the page response's content. This field is optional and should only be
 	// specified if a content match is required.
-	ContentMatchers []*UptimeCheckConfig_ContentMatcher `protobuf:"bytes,9,rep,name=content_matchers,json=contentMatchers" json:"content_matchers,omitempty"`
+	ContentMatchers []*UptimeCheckConfig_ContentMatcher `protobuf:"bytes,9,rep,name=content_matchers,json=contentMatchers,proto3" json:"content_matchers,omitempty"`
 	// The list of regions from which the check will be run.
 	// If this field is specified, enough regions to include a minimum of
 	// 3 locations must be provided, or an error message is returned.
 	// Not specifying this field will result in uptime checks running from all
 	// regions.
-	SelectedRegions []UptimeCheckRegion `protobuf:"varint,10,rep,packed,name=selected_regions,json=selectedRegions,enum=google.monitoring.v3.UptimeCheckRegion" json:"selected_regions,omitempty"`
+	SelectedRegions []UptimeCheckRegion `protobuf:"varint,10,rep,packed,name=selected_regions,json=selectedRegions,proto3,enum=google.monitoring.v3.UptimeCheckRegion" json:"selected_regions,omitempty"`
 	// The internal checkers that this check will egress from.
-	InternalCheckers     []*UptimeCheckConfig_InternalChecker `protobuf:"bytes,14,rep,name=internal_checkers,json=internalCheckers" json:"internal_checkers,omitempty"`
+	InternalCheckers     []*UptimeCheckConfig_InternalChecker `protobuf:"bytes,14,rep,name=internal_checkers,json=internalCheckers,proto3" json:"internal_checkers,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
 	XXX_unrecognized     []byte                               `json:"-"`
 	XXX_sizecache        int32                                `json:"-"`
@@ -178,16 +178,16 @@ type isUptimeCheckConfig_CheckRequestType interface {
 }
 
 type UptimeCheckConfig_MonitoredResource struct {
-	MonitoredResource *monitoredres.MonitoredResource `protobuf:"bytes,3,opt,name=monitored_resource,json=monitoredResource,oneof"`
+	MonitoredResource *monitoredres.MonitoredResource `protobuf:"bytes,3,opt,name=monitored_resource,json=monitoredResource,proto3,oneof"`
 }
 type UptimeCheckConfig_ResourceGroup_ struct {
-	ResourceGroup *UptimeCheckConfig_ResourceGroup `protobuf:"bytes,4,opt,name=resource_group,json=resourceGroup,oneof"`
+	ResourceGroup *UptimeCheckConfig_ResourceGroup `protobuf:"bytes,4,opt,name=resource_group,json=resourceGroup,proto3,oneof"`
 }
 type UptimeCheckConfig_HttpCheck_ struct {
-	HttpCheck *UptimeCheckConfig_HttpCheck `protobuf:"bytes,5,opt,name=http_check,json=httpCheck,oneof"`
+	HttpCheck *UptimeCheckConfig_HttpCheck `protobuf:"bytes,5,opt,name=http_check,json=httpCheck,proto3,oneof"`
 }
 type UptimeCheckConfig_TcpCheck_ struct {
-	TcpCheck *UptimeCheckConfig_TcpCheck `protobuf:"bytes,6,opt,name=tcp_check,json=tcpCheck,oneof"`
+	TcpCheck *UptimeCheckConfig_TcpCheck `protobuf:"bytes,6,opt,name=tcp_check,json=tcpCheck,proto3,oneof"`
 }
 
 func (*UptimeCheckConfig_MonitoredResource) isUptimeCheckConfig_Resource()  {}
@@ -414,9 +414,9 @@ func _UptimeCheckConfig_OneofSizer(msg proto.Message) (n int) {
 type UptimeCheckConfig_ResourceGroup struct {
 	// The group of resources being monitored. Should be only the
 	// group_id, not projects/<project_id>/groups/<group_id>.
-	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId" json:"group_id,omitempty"`
+	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
 	// The resource type of the group members.
-	ResourceType         GroupResourceType `protobuf:"varint,2,opt,name=resource_type,json=resourceType,enum=google.monitoring.v3.GroupResourceType" json:"resource_type,omitempty"`
+	ResourceType         GroupResourceType `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=google.monitoring.v3.GroupResourceType" json:"resource_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -463,25 +463,25 @@ func (m *UptimeCheckConfig_ResourceGroup) GetResourceType() GroupResourceType {
 // Information involved in an HTTP/HTTPS uptime check request.
 type UptimeCheckConfig_HttpCheck struct {
 	// If true, use HTTPS instead of HTTP to run the check.
-	UseSsl bool `protobuf:"varint,1,opt,name=use_ssl,json=useSsl" json:"use_ssl,omitempty"`
+	UseSsl bool `protobuf:"varint,1,opt,name=use_ssl,json=useSsl,proto3" json:"use_ssl,omitempty"`
 	// The path to the page to run the check against. Will be combined with the
 	// host (specified within the MonitoredResource) and port to construct the
 	// full URL. Optional (defaults to "/").
-	Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
+	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
 	// The port to the page to run the check against. Will be combined with host
 	// (specified within the MonitoredResource) and path to construct the full
 	// URL. Optional (defaults to 80 without SSL, or 443 with SSL).
-	Port int32 `protobuf:"varint,3,opt,name=port" json:"port,omitempty"`
+	Port int32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
 	// The authentication information. Optional when creating an HTTP check;
 	// defaults to empty.
-	AuthInfo *UptimeCheckConfig_HttpCheck_BasicAuthentication `protobuf:"bytes,4,opt,name=auth_info,json=authInfo" json:"auth_info,omitempty"`
+	AuthInfo *UptimeCheckConfig_HttpCheck_BasicAuthentication `protobuf:"bytes,4,opt,name=auth_info,json=authInfo,proto3" json:"auth_info,omitempty"`
 	// Boolean specifiying whether to encrypt the header information.
 	// Encryption should be specified for any headers related to authentication
 	// that you do not wish to be seen when retrieving the configuration. The
 	// server will be responsible for encrypting the headers.
 	// On Get/List calls, if mask_headers is set to True then the headers
 	// will be obscured with ******.
-	MaskHeaders bool `protobuf:"varint,5,opt,name=mask_headers,json=maskHeaders" json:"mask_headers,omitempty"`
+	MaskHeaders bool `protobuf:"varint,5,opt,name=mask_headers,json=maskHeaders,proto3" json:"mask_headers,omitempty"`
 	// The list of headers to send as part of the uptime check request.
 	// If two headers have the same key and different values, they should
 	// be entered as a single header, with the value being a comma-separated
@@ -489,7 +489,7 @@ type UptimeCheckConfig_HttpCheck struct {
 	// https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31).
 	// Entering two separate headers with the same key in a Create call will
 	// cause the first to be overwritten by the second.
-	Headers              map[string]string `protobuf:"bytes,6,rep,name=headers" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Headers              map[string]string `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -566,9 +566,9 @@ func (m *UptimeCheckConfig_HttpCheck) GetHeaders() map[string]string {
 // Currently, only Basic authentication is supported in Uptime Monitoring.
 type UptimeCheckConfig_HttpCheck_BasicAuthentication struct {
 	// The username to authenticate.
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
 	// The password to authenticate.
-	Password             string   `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Password             string   `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -621,7 +621,7 @@ type UptimeCheckConfig_TcpCheck struct {
 	// The port to the page to run the check against. Will be combined with host
 	// (specified within the MonitoredResource) to construct the full URL.
 	// Required.
-	Port                 int32    `protobuf:"varint,1,opt,name=port" json:"port,omitempty"`
+	Port                 int32    `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -663,7 +663,7 @@ func (m *UptimeCheckConfig_TcpCheck) GetPort() int32 {
 // and more complex matching.
 type UptimeCheckConfig_ContentMatcher struct {
 	// String content to match
-	Content              string   `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"`
+	Content              string   `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -703,16 +703,16 @@ func (m *UptimeCheckConfig_ContentMatcher) GetContent() string {
 // Nimbus InternalCheckers.
 type UptimeCheckConfig_InternalChecker struct {
 	// The GCP project ID. Not necessarily the same as the project_id for the config.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The internal network to perform this uptime check on.
-	Network string `protobuf:"bytes,2,opt,name=network" json:"network,omitempty"`
+	Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"`
 	// The GCP zone the uptime check should egress from. Only respected for
 	// internal uptime checks, where internal_network is specified.
-	GcpZone string `protobuf:"bytes,3,opt,name=gcp_zone,json=gcpZone" json:"gcp_zone,omitempty"`
+	GcpZone string `protobuf:"bytes,3,opt,name=gcp_zone,json=gcpZone,proto3" json:"gcp_zone,omitempty"`
 	// The checker ID.
-	CheckerId string `protobuf:"bytes,4,opt,name=checker_id,json=checkerId" json:"checker_id,omitempty"`
+	CheckerId string `protobuf:"bytes,4,opt,name=checker_id,json=checkerId,proto3" json:"checker_id,omitempty"`
 	// The checker's human-readable name.
-	DisplayName          string   `protobuf:"bytes,5,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -781,17 +781,17 @@ func (m *UptimeCheckConfig_InternalChecker) GetDisplayName() string {
 // addresses where checkers in the location run from.
 type UptimeCheckIp struct {
 	// A broad region category in which the IP address is located.
-	Region UptimeCheckRegion `protobuf:"varint,1,opt,name=region,enum=google.monitoring.v3.UptimeCheckRegion" json:"region,omitempty"`
+	Region UptimeCheckRegion `protobuf:"varint,1,opt,name=region,proto3,enum=google.monitoring.v3.UptimeCheckRegion" json:"region,omitempty"`
 	// A more specific location within the region that typically encodes
 	// a particular city/town/metro (and its containing state/province or country)
 	// within the broader umbrella region category.
-	Location string `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"`
+	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
 	// The IP address from which the uptime check originates. This is a full
 	// IP address (not an IP address range). Most IP addresses, as of this
 	// publication, are in IPv4 format; however, one should not rely on the
 	// IP addresses being in IPv4 format indefinitely and should support
 	// interpreting this field in either IPv4 or IPv6 format.
-	IpAddress            string   `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
+	IpAddress            string   `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/monitoring/v3/uptime_service.pb.go b/googleapis/monitoring/v3/uptime_service.pb.go
index cdf8e1a7e7270461ef830e5765cfb14d26caeae4..23fe5ef45d833f26549d862954141f7f63be40cb 100644
--- a/googleapis/monitoring/v3/uptime_service.pb.go
+++ b/googleapis/monitoring/v3/uptime_service.pb.go
@@ -31,16 +31,16 @@ type ListUptimeCheckConfigsRequest struct {
 	// The project whose uptime check configurations are listed. The format is
 	//
 	//   `projects/[PROJECT_ID]`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The maximum number of results to return in a single response. The server
 	// may further constrain the maximum number of results returned in a single
 	// page. If the page_size is <=0, the server will decide the number of results
 	// to be returned.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return more results from the previous method call.
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -94,13 +94,13 @@ func (m *ListUptimeCheckConfigsRequest) GetPageToken() string {
 // The protocol for the `ListUptimeCheckConfigs` response.
 type ListUptimeCheckConfigsResponse struct {
 	// The returned uptime check configurations.
-	UptimeCheckConfigs []*UptimeCheckConfig `protobuf:"bytes,1,rep,name=uptime_check_configs,json=uptimeCheckConfigs" json:"uptime_check_configs,omitempty"`
+	UptimeCheckConfigs []*UptimeCheckConfig `protobuf:"bytes,1,rep,name=uptime_check_configs,json=uptimeCheckConfigs,proto3" json:"uptime_check_configs,omitempty"`
 	// This field represents the pagination token to retrieve the next page of
 	// results. If the value is empty, it means no further results for the
 	// request. To retrieve the next page of results, the value of the
 	// next_page_token is passed to the subsequent List method call (in the
 	// request message's page_token field).
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -149,7 +149,7 @@ type GetUptimeCheckConfigRequest struct {
 	// The uptime check configuration to retrieve. The format is
 	//
 	//   `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -191,9 +191,9 @@ type CreateUptimeCheckConfigRequest struct {
 	// The project in which to create the uptime check. The format is:
 	//
 	//   `projects/[PROJECT_ID]`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The new uptime check configuration.
-	UptimeCheckConfig    *UptimeCheckConfig `protobuf:"bytes,2,opt,name=uptime_check_config,json=uptimeCheckConfig" json:"uptime_check_config,omitempty"`
+	UptimeCheckConfig    *UptimeCheckConfig `protobuf:"bytes,2,opt,name=uptime_check_config,json=uptimeCheckConfig,proto3" json:"uptime_check_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -243,7 +243,7 @@ type UpdateUptimeCheckConfigRequest struct {
 	// configuration are updated with values from the new configuration. If this
 	// field is empty, then the current configuration is completely replaced with
 	// the new configuration.
-	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	// Required. If an `"updateMask"` has been specified, this field gives
 	// the values for the set of fields mentioned in the `"updateMask"`. If an
 	// `"updateMask"` has not been given, this uptime check configuration replaces
@@ -251,7 +251,7 @@ type UpdateUptimeCheckConfigRequest struct {
 	// the corresonding field is omitted in this partial uptime check
 	// configuration, it has the effect of deleting/clearing the field from the
 	// configuration on the server.
-	UptimeCheckConfig    *UptimeCheckConfig `protobuf:"bytes,3,opt,name=uptime_check_config,json=uptimeCheckConfig" json:"uptime_check_config,omitempty"`
+	UptimeCheckConfig    *UptimeCheckConfig `protobuf:"bytes,3,opt,name=uptime_check_config,json=uptimeCheckConfig,proto3" json:"uptime_check_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -300,7 +300,7 @@ type DeleteUptimeCheckConfigRequest struct {
 	// The uptime check configuration to delete. The format is
 	//
 	//   `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -344,12 +344,12 @@ type ListUptimeCheckIpsRequest struct {
 	// page. If the page_size is <=0, the server will decide the number of results
 	// to be returned.
 	// NOTE: this field is not yet implemented
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If this field is not empty then it must contain the `nextPageToken` value
 	// returned by a previous call to this method.  Using this field causes the
 	// method to return more results from the previous method call.
 	// NOTE: this field is not yet implemented
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -397,14 +397,14 @@ func (m *ListUptimeCheckIpsRequest) GetPageToken() string {
 type ListUptimeCheckIpsResponse struct {
 	// The returned list of IP addresses (including region and location) that the
 	// checkers run from.
-	UptimeCheckIps []*UptimeCheckIp `protobuf:"bytes,1,rep,name=uptime_check_ips,json=uptimeCheckIps" json:"uptime_check_ips,omitempty"`
+	UptimeCheckIps []*UptimeCheckIp `protobuf:"bytes,1,rep,name=uptime_check_ips,json=uptimeCheckIps,proto3" json:"uptime_check_ips,omitempty"`
 	// This field represents the pagination token to retrieve the next page of
 	// results. If the value is empty, it means no further results for the
 	// request. To retrieve the next page of results, the value of the
 	// next_page_token is passed to the subsequent List method call (in the
 	// request message's page_token field).
 	// NOTE: this field is not yet implemented
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -553,8 +553,7 @@ func (c *uptimeCheckServiceClient) ListUptimeCheckIps(ctx context.Context, in *L
 	return out, nil
 }
 
-// Server API for UptimeCheckService service
-
+// UptimeCheckServiceServer is the server API for UptimeCheckService service.
 type UptimeCheckServiceServer interface {
 	// Lists the existing valid uptime check configurations for the project,
 	// leaving out any invalid configurations.
diff --git a/googleapis/privacy/dlp/v2/dlp.pb.go b/googleapis/privacy/dlp/v2/dlp.pb.go
index 27b07e9e11a725b5429292414071fe74326bab95..8c4fa572bce76bc7c48e3105ec68830306aa6e84 100644
--- a/googleapis/privacy/dlp/v2/dlp.pb.go
+++ b/googleapis/privacy/dlp/v2/dlp.pb.go
@@ -504,21 +504,21 @@ func (DlpJob_JobState) EnumDescriptor() ([]byte, []int) {
 type InspectConfig struct {
 	// Restricts what info_types to look for. The values must correspond to
 	// InfoType values returned by ListInfoTypes or found in documentation.
-	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes" json:"info_types,omitempty"`
+	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
 	// Only returns findings equal or above this threshold. The default is
 	// POSSIBLE.
-	MinLikelihood Likelihood                   `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,enum=google.privacy.dlp.v2.Likelihood" json:"min_likelihood,omitempty"`
-	Limits        *InspectConfig_FindingLimits `protobuf:"bytes,3,opt,name=limits" json:"limits,omitempty"`
+	MinLikelihood Likelihood                   `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"min_likelihood,omitempty"`
+	Limits        *InspectConfig_FindingLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"`
 	// When true, a contextual quote from the data that triggered a finding is
 	// included in the response; see Finding.quote.
-	IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote" json:"include_quote,omitempty"`
+	IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote,proto3" json:"include_quote,omitempty"`
 	// When true, excludes type information of the findings.
-	ExcludeInfoTypes bool `protobuf:"varint,5,opt,name=exclude_info_types,json=excludeInfoTypes" json:"exclude_info_types,omitempty"`
+	ExcludeInfoTypes bool `protobuf:"varint,5,opt,name=exclude_info_types,json=excludeInfoTypes,proto3" json:"exclude_info_types,omitempty"`
 	// Custom infoTypes provided by the user.
-	CustomInfoTypes []*CustomInfoType `protobuf:"bytes,6,rep,name=custom_info_types,json=customInfoTypes" json:"custom_info_types,omitempty"`
+	CustomInfoTypes []*CustomInfoType `protobuf:"bytes,6,rep,name=custom_info_types,json=customInfoTypes,proto3" json:"custom_info_types,omitempty"`
 	// List of options defining data content to scan.
 	// If empty, text, images, and other content will be included.
-	ContentOptions       []ContentOption `protobuf:"varint,8,rep,packed,name=content_options,json=contentOptions,enum=google.privacy.dlp.v2.ContentOption" json:"content_options,omitempty"`
+	ContentOptions       []ContentOption `protobuf:"varint,8,rep,packed,name=content_options,json=contentOptions,proto3,enum=google.privacy.dlp.v2.ContentOption" json:"content_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -602,13 +602,13 @@ type InspectConfig_FindingLimits struct {
 	// When set within `InspectDataSourceRequest`,
 	// the maximum returned is 1000 regardless if this is set higher.
 	// When set within `InspectContentRequest`, this field is ignored.
-	MaxFindingsPerItem int32 `protobuf:"varint,1,opt,name=max_findings_per_item,json=maxFindingsPerItem" json:"max_findings_per_item,omitempty"`
+	MaxFindingsPerItem int32 `protobuf:"varint,1,opt,name=max_findings_per_item,json=maxFindingsPerItem,proto3" json:"max_findings_per_item,omitempty"`
 	// Max number of findings that will be returned per request/job.
 	// When set within `InspectContentRequest`, the maximum returned is 1000
 	// regardless if this is set higher.
-	MaxFindingsPerRequest int32 `protobuf:"varint,2,opt,name=max_findings_per_request,json=maxFindingsPerRequest" json:"max_findings_per_request,omitempty"`
+	MaxFindingsPerRequest int32 `protobuf:"varint,2,opt,name=max_findings_per_request,json=maxFindingsPerRequest,proto3" json:"max_findings_per_request,omitempty"`
 	// Configuration of findings limit given for specified infoTypes.
-	MaxFindingsPerInfoType []*InspectConfig_FindingLimits_InfoTypeLimit `protobuf:"bytes,3,rep,name=max_findings_per_info_type,json=maxFindingsPerInfoType" json:"max_findings_per_info_type,omitempty"`
+	MaxFindingsPerInfoType []*InspectConfig_FindingLimits_InfoTypeLimit `protobuf:"bytes,3,rep,name=max_findings_per_info_type,json=maxFindingsPerInfoType,proto3" json:"max_findings_per_info_type,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{}                                     `json:"-"`
 	XXX_unrecognized       []byte                                       `json:"-"`
 	XXX_sizecache          int32                                        `json:"-"`
@@ -666,9 +666,9 @@ type InspectConfig_FindingLimits_InfoTypeLimit struct {
 	// info_type should be provided. If InfoTypeLimit does not have an
 	// info_type, the DLP API applies the limit against all info_types that
 	// are found but not specified in another InfoTypeLimit.
-	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
+	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
 	// Max findings limit for the given infoType.
-	MaxFindings          int32    `protobuf:"varint,2,opt,name=max_findings,json=maxFindings" json:"max_findings,omitempty"`
+	MaxFindings          int32    `protobuf:"varint,2,opt,name=max_findings,json=maxFindings,proto3" json:"max_findings,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -717,7 +717,7 @@ func (m *InspectConfig_FindingLimits_InfoTypeLimit) GetMaxFindings() int32 {
 // Container for bytes to inspect or redact.
 type ByteContentItem struct {
 	// The type of data stored in the bytes string. Default will be TEXT_UTF8.
-	Type ByteContentItem_BytesType `protobuf:"varint,1,opt,name=type,enum=google.privacy.dlp.v2.ByteContentItem_BytesType" json:"type,omitempty"`
+	Type ByteContentItem_BytesType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.ByteContentItem_BytesType" json:"type,omitempty"`
 	// Content data to inspect or redact.
 	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -806,13 +806,13 @@ type isContentItem_DataItem interface {
 }
 
 type ContentItem_Value struct {
-	Value string `protobuf:"bytes,3,opt,name=value,oneof"`
+	Value string `protobuf:"bytes,3,opt,name=value,proto3,oneof"`
 }
 type ContentItem_Table struct {
-	Table *Table `protobuf:"bytes,4,opt,name=table,oneof"`
+	Table *Table `protobuf:"bytes,4,opt,name=table,proto3,oneof"`
 }
 type ContentItem_ByteItem struct {
-	ByteItem *ByteContentItem `protobuf:"bytes,5,opt,name=byte_item,json=byteItem,oneof"`
+	ByteItem *ByteContentItem `protobuf:"bytes,5,opt,name=byte_item,json=byteItem,proto3,oneof"`
 }
 
 func (*ContentItem_Value) isContentItem_DataItem()    {}
@@ -938,8 +938,8 @@ func _ContentItem_OneofSizer(msg proto.Message) (n int) {
 
 // Structured content to inspect. Up to 50,000 `Value`s per request allowed.
 type Table struct {
-	Headers              []*FieldId   `protobuf:"bytes,1,rep,name=headers" json:"headers,omitempty"`
-	Rows                 []*Table_Row `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"`
+	Headers              []*FieldId   `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
+	Rows                 []*Table_Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -984,7 +984,7 @@ func (m *Table) GetRows() []*Table_Row {
 }
 
 type Table_Row struct {
-	Values               []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
+	Values               []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1024,14 +1024,14 @@ func (m *Table_Row) GetValues() []*Value {
 // All the findings for a single scanned item.
 type InspectResult struct {
 	// List of findings for an item.
-	Findings []*Finding `protobuf:"bytes,1,rep,name=findings" json:"findings,omitempty"`
+	Findings []*Finding `protobuf:"bytes,1,rep,name=findings,proto3" json:"findings,omitempty"`
 	// If true, then this item might have more findings than were returned,
 	// and the findings returned are an arbitrary subset of all findings.
 	// The findings list might be truncated because the input items were too
 	// large, or because the server reached the maximum amount of resources
 	// allowed for a single API call. For best results, divide the input into
 	// smaller batches.
-	FindingsTruncated    bool     `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated" json:"findings_truncated,omitempty"`
+	FindingsTruncated    bool     `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated,proto3" json:"findings_truncated,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1082,20 +1082,20 @@ type Finding struct {
 	// Provided if requested by the `InspectConfig` and the finding is
 	// less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes
 	// in length, the quote may be omitted.
-	Quote string `protobuf:"bytes,1,opt,name=quote" json:"quote,omitempty"`
+	Quote string `protobuf:"bytes,1,opt,name=quote,proto3" json:"quote,omitempty"`
 	// The type of content that might have been found.
 	// Provided if requested by the `InspectConfig`.
-	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
+	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
 	// Estimate of how likely it is that the `info_type` is correct.
-	Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"`
+	Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"`
 	// Where the content was found.
-	Location *Location `protobuf:"bytes,4,opt,name=location" json:"location,omitempty"`
+	Location *Location `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"`
 	// Timestamp when finding was detected.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Contains data parsed from quotes. Only populated if include_quote was set
 	// to true and a supported infoType was requested. Currently supported
 	// infoTypes: DATE, DATE_OF_BIRTH and TIME.
-	QuoteInfo            *QuoteInfo `protobuf:"bytes,7,opt,name=quote_info,json=quoteInfo" json:"quote_info,omitempty"`
+	QuoteInfo            *QuoteInfo `protobuf:"bytes,7,opt,name=quote_info,json=quoteInfo,proto3" json:"quote_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -1174,14 +1174,14 @@ type Location struct {
 	// Note that when the content is not textual, this references
 	// the UTF-8 encoded textual representation of the content.
 	// Omitted if content is an image.
-	ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange" json:"byte_range,omitempty"`
+	ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange,proto3" json:"byte_range,omitempty"`
 	// Unicode character offsets delimiting the finding.
 	// These are relative to the finding's containing element.
 	// Provided when the content is text.
-	CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange" json:"codepoint_range,omitempty"`
+	CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange,proto3" json:"codepoint_range,omitempty"`
 	// List of nested objects pointing to the precise location of the finding
 	// within the file or record.
-	ContentLocations     []*ContentLocation `protobuf:"bytes,7,rep,name=content_locations,json=contentLocations" json:"content_locations,omitempty"`
+	ContentLocations     []*ContentLocation `protobuf:"bytes,7,rep,name=content_locations,json=contentLocations,proto3" json:"content_locations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1238,7 +1238,7 @@ type ContentLocation struct {
 	// The top level name is the source file name or table name. Nested names
 	// could be absent if the embedded object has no string identifier
 	// (for an example an image contained within a document).
-	ContainerName string `protobuf:"bytes,1,opt,name=container_name,json=containerName" json:"container_name,omitempty"`
+	ContainerName string `protobuf:"bytes,1,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"`
 	// Type of the container within the file with location of the finding.
 	//
 	// Types that are valid to be assigned to Location:
@@ -1250,10 +1250,10 @@ type ContentLocation struct {
 	// For Google Cloud Storage contains last file modification timestamp.
 	// For BigQuery table contains last_modified_time property.
 	// For Datastore - not populated.
-	ContainerTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=container_timestamp,json=containerTimestamp" json:"container_timestamp,omitempty"`
+	ContainerTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=container_timestamp,json=containerTimestamp,proto3" json:"container_timestamp,omitempty"`
 	// Findings container version, if available
 	// ("generation" for Google Cloud Storage).
-	ContainerVersion     string   `protobuf:"bytes,7,opt,name=container_version,json=containerVersion" json:"container_version,omitempty"`
+	ContainerVersion     string   `protobuf:"bytes,7,opt,name=container_version,json=containerVersion,proto3" json:"container_version,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1288,13 +1288,13 @@ type isContentLocation_Location interface {
 }
 
 type ContentLocation_RecordLocation struct {
-	RecordLocation *RecordLocation `protobuf:"bytes,2,opt,name=record_location,json=recordLocation,oneof"`
+	RecordLocation *RecordLocation `protobuf:"bytes,2,opt,name=record_location,json=recordLocation,proto3,oneof"`
 }
 type ContentLocation_ImageLocation struct {
-	ImageLocation *ImageLocation `protobuf:"bytes,3,opt,name=image_location,json=imageLocation,oneof"`
+	ImageLocation *ImageLocation `protobuf:"bytes,3,opt,name=image_location,json=imageLocation,proto3,oneof"`
 }
 type ContentLocation_DocumentLocation struct {
-	DocumentLocation *DocumentLocation `protobuf:"bytes,5,opt,name=document_location,json=documentLocation,oneof"`
+	DocumentLocation *DocumentLocation `protobuf:"bytes,5,opt,name=document_location,json=documentLocation,proto3,oneof"`
 }
 
 func (*ContentLocation_RecordLocation) isContentLocation_Location()   {}
@@ -1447,7 +1447,7 @@ func _ContentLocation_OneofSizer(msg proto.Message) (n int) {
 type DocumentLocation struct {
 	// Offset of the line, from the beginning of the file, where the finding
 	// is located.
-	FileOffset           int64    `protobuf:"varint,1,opt,name=file_offset,json=fileOffset" json:"file_offset,omitempty"`
+	FileOffset           int64    `protobuf:"varint,1,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1487,11 +1487,11 @@ func (m *DocumentLocation) GetFileOffset() int64 {
 // Location of a finding within a row or record.
 type RecordLocation struct {
 	// Key of the finding.
-	RecordKey *RecordKey `protobuf:"bytes,1,opt,name=record_key,json=recordKey" json:"record_key,omitempty"`
+	RecordKey *RecordKey `protobuf:"bytes,1,opt,name=record_key,json=recordKey,proto3" json:"record_key,omitempty"`
 	// Field id of the field containing the finding.
-	FieldId *FieldId `protobuf:"bytes,2,opt,name=field_id,json=fieldId" json:"field_id,omitempty"`
+	FieldId *FieldId `protobuf:"bytes,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
 	// Location within a `ContentItem.Table`.
-	TableLocation        *TableLocation `protobuf:"bytes,3,opt,name=table_location,json=tableLocation" json:"table_location,omitempty"`
+	TableLocation        *TableLocation `protobuf:"bytes,3,opt,name=table_location,json=tableLocation,proto3" json:"table_location,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1545,7 +1545,7 @@ func (m *RecordLocation) GetTableLocation() *TableLocation {
 // Location of a finding within a table.
 type TableLocation struct {
 	// The zero-based index of the row where the finding is located.
-	RowIndex             int64    `protobuf:"varint,1,opt,name=row_index,json=rowIndex" json:"row_index,omitempty"`
+	RowIndex             int64    `protobuf:"varint,1,opt,name=row_index,json=rowIndex,proto3" json:"row_index,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1585,9 +1585,9 @@ func (m *TableLocation) GetRowIndex() int64 {
 // Generic half-open interval [start, end)
 type Range struct {
 	// Index of the first character of the range (inclusive).
-	Start int64 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
+	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
 	// Index of the last character of the range (exclusive).
-	End                  int64    `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
+	End                  int64    `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1634,7 +1634,7 @@ func (m *Range) GetEnd() int64 {
 // Location of the finding within an image.
 type ImageLocation struct {
 	// Bounding boxes locating the pixels within the image containing the finding.
-	BoundingBoxes        []*BoundingBox `protobuf:"bytes,1,rep,name=bounding_boxes,json=boundingBoxes" json:"bounding_boxes,omitempty"`
+	BoundingBoxes        []*BoundingBox `protobuf:"bytes,1,rep,name=bounding_boxes,json=boundingBoxes,proto3" json:"bounding_boxes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -1674,13 +1674,13 @@ func (m *ImageLocation) GetBoundingBoxes() []*BoundingBox {
 // Bounding box encompassing detected text within an image.
 type BoundingBox struct {
 	// Top coordinate of the bounding box. (0,0) is upper left.
-	Top int32 `protobuf:"varint,1,opt,name=top" json:"top,omitempty"`
+	Top int32 `protobuf:"varint,1,opt,name=top,proto3" json:"top,omitempty"`
 	// Left coordinate of the bounding box. (0,0) is upper left.
-	Left int32 `protobuf:"varint,2,opt,name=left" json:"left,omitempty"`
+	Left int32 `protobuf:"varint,2,opt,name=left,proto3" json:"left,omitempty"`
 	// Width of the bounding box in pixels.
-	Width int32 `protobuf:"varint,3,opt,name=width" json:"width,omitempty"`
+	Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
 	// Height of the bounding box in pixels.
-	Height               int32    `protobuf:"varint,4,opt,name=height" json:"height,omitempty"`
+	Height               int32    `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1742,13 +1742,13 @@ func (m *BoundingBox) GetHeight() int32 {
 // and replace it with a default or provided content.
 type RedactImageRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Configuration for the inspector.
-	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	// The configuration for specifying what content to redact from images.
-	ImageRedactionConfigs []*RedactImageRequest_ImageRedactionConfig `protobuf:"bytes,5,rep,name=image_redaction_configs,json=imageRedactionConfigs" json:"image_redaction_configs,omitempty"`
+	ImageRedactionConfigs []*RedactImageRequest_ImageRedactionConfig `protobuf:"bytes,5,rep,name=image_redaction_configs,json=imageRedactionConfigs,proto3" json:"image_redaction_configs,omitempty"`
 	// The content must be PNG, JPEG, SVG or BMP.
-	ByteItem             *ByteContentItem `protobuf:"bytes,7,opt,name=byte_item,json=byteItem" json:"byte_item,omitempty"`
+	ByteItem             *ByteContentItem `protobuf:"bytes,7,opt,name=byte_item,json=byteItem,proto3" json:"byte_item,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -1816,7 +1816,7 @@ type RedactImageRequest_ImageRedactionConfig struct {
 	Target isRedactImageRequest_ImageRedactionConfig_Target `protobuf_oneof:"target"`
 	// The color to use when redacting content from an image. If not specified,
 	// the default is black.
-	RedactionColor       *Color   `protobuf:"bytes,3,opt,name=redaction_color,json=redactionColor" json:"redaction_color,omitempty"`
+	RedactionColor       *Color   `protobuf:"bytes,3,opt,name=redaction_color,json=redactionColor,proto3" json:"redaction_color,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1853,10 +1853,10 @@ type isRedactImageRequest_ImageRedactionConfig_Target interface {
 }
 
 type RedactImageRequest_ImageRedactionConfig_InfoType struct {
-	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,oneof"`
+	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3,oneof"`
 }
 type RedactImageRequest_ImageRedactionConfig_RedactAllText struct {
-	RedactAllText bool `protobuf:"varint,2,opt,name=redact_all_text,json=redactAllText,oneof"`
+	RedactAllText bool `protobuf:"varint,2,opt,name=redact_all_text,json=redactAllText,proto3,oneof"`
 }
 
 func (*RedactImageRequest_ImageRedactionConfig_InfoType) isRedactImageRequest_ImageRedactionConfig_Target() {
@@ -1968,11 +1968,11 @@ func _RedactImageRequest_ImageRedactionConfig_OneofSizer(msg proto.Message) (n i
 // Represents a color in the RGB color space.
 type Color struct {
 	// The amount of red in the color as a value in the interval [0, 1].
-	Red float32 `protobuf:"fixed32,1,opt,name=red" json:"red,omitempty"`
+	Red float32 `protobuf:"fixed32,1,opt,name=red,proto3" json:"red,omitempty"`
 	// The amount of green in the color as a value in the interval [0, 1].
-	Green float32 `protobuf:"fixed32,2,opt,name=green" json:"green,omitempty"`
+	Green float32 `protobuf:"fixed32,2,opt,name=green,proto3" json:"green,omitempty"`
 	// The amount of blue in the color as a value in the interval [0, 1].
-	Blue                 float32  `protobuf:"fixed32,3,opt,name=blue" json:"blue,omitempty"`
+	Blue                 float32  `protobuf:"fixed32,3,opt,name=blue,proto3" json:"blue,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2030,7 +2030,7 @@ type RedactImageResponse struct {
 	// If an image was being inspected and the InspectConfig's include_quote was
 	// set to true, then this field will include all text, if any, that was found
 	// in the image.
-	ExtractedText        string   `protobuf:"bytes,2,opt,name=extracted_text,json=extractedText" json:"extracted_text,omitempty"`
+	ExtractedText        string   `protobuf:"bytes,2,opt,name=extracted_text,json=extractedText,proto3" json:"extracted_text,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2077,29 +2077,29 @@ func (m *RedactImageResponse) GetExtractedText() string {
 // Request to de-identify a list of items.
 type DeidentifyContentRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Configuration for the de-identification of the content item.
 	// Items specified here will override the template referenced by the
 	// deidentify_template_name argument.
-	DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=deidentify_config,json=deidentifyConfig" json:"deidentify_config,omitempty"`
+	DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"`
 	// Configuration for the inspector.
 	// Items specified here will override the template referenced by the
 	// inspect_template_name argument.
-	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	// The item to de-identify. Will be treated as text.
-	Item *ContentItem `protobuf:"bytes,4,opt,name=item" json:"item,omitempty"`
+	Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"`
 	// Optional template to use. Any configuration directly specified in
 	// inspect_config will override those set in the template. Singular fields
 	// that are set in this request will replace their corresponding fields in the
 	// template. Repeated fields are appended. Singular sub-messages and groups
 	// are recursively merged.
-	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName" json:"inspect_template_name,omitempty"`
+	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
 	// Optional template to use. Any configuration directly specified in
 	// deidentify_config will override those set in the template. Singular fields
 	// that are set in this request will replace their corresponding fields in the
 	// template. Repeated fields are appended. Singular sub-messages and groups
 	// are recursively merged.
-	DeidentifyTemplateName string   `protobuf:"bytes,6,opt,name=deidentify_template_name,json=deidentifyTemplateName" json:"deidentify_template_name,omitempty"`
+	DeidentifyTemplateName string   `protobuf:"bytes,6,opt,name=deidentify_template_name,json=deidentifyTemplateName,proto3" json:"deidentify_template_name,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -2174,9 +2174,9 @@ func (m *DeidentifyContentRequest) GetDeidentifyTemplateName() string {
 // Results of de-identifying a ContentItem.
 type DeidentifyContentResponse struct {
 	// The de-identified item.
-	Item *ContentItem `protobuf:"bytes,1,opt,name=item" json:"item,omitempty"`
+	Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
 	// An overview of the changes that were made on the `item`.
-	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview" json:"overview,omitempty"`
+	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -2223,7 +2223,7 @@ func (m *DeidentifyContentResponse) GetOverview() *TransformationOverview {
 // Request to re-identify an item.
 type ReidentifyContentRequest struct {
 	// The parent resource name.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Configuration for the re-identification of the content item.
 	// This field shares the same proto message type that is used for
 	// de-identification, however its usage here is for the reversal of the
@@ -2233,24 +2233,24 @@ type ReidentifyContentRequest struct {
 	// be provided here. The reversible transformations are:
 	//
 	//  - `CryptoReplaceFfxFpeConfig`
-	ReidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=reidentify_config,json=reidentifyConfig" json:"reidentify_config,omitempty"`
+	ReidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=reidentify_config,json=reidentifyConfig,proto3" json:"reidentify_config,omitempty"`
 	// Configuration for the inspector.
-	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	// The item to re-identify. Will be treated as text.
-	Item *ContentItem `protobuf:"bytes,4,opt,name=item" json:"item,omitempty"`
+	Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"`
 	// Optional template to use. Any configuration directly specified in
 	// `inspect_config` will override those set in the template. Singular fields
 	// that are set in this request will replace their corresponding fields in the
 	// template. Repeated fields are appended. Singular sub-messages and groups
 	// are recursively merged.
-	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName" json:"inspect_template_name,omitempty"`
+	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
 	// Optional template to use. References an instance of `DeidentifyTemplate`.
 	// Any configuration directly specified in `reidentify_config` or
 	// `inspect_config` will override those set in the template. Singular fields
 	// that are set in this request will replace their corresponding fields in the
 	// template. Repeated fields are appended. Singular sub-messages and groups
 	// are recursively merged.
-	ReidentifyTemplateName string   `protobuf:"bytes,6,opt,name=reidentify_template_name,json=reidentifyTemplateName" json:"reidentify_template_name,omitempty"`
+	ReidentifyTemplateName string   `protobuf:"bytes,6,opt,name=reidentify_template_name,json=reidentifyTemplateName,proto3" json:"reidentify_template_name,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
 	XXX_unrecognized       []byte   `json:"-"`
 	XXX_sizecache          int32    `json:"-"`
@@ -2325,9 +2325,9 @@ func (m *ReidentifyContentRequest) GetReidentifyTemplateName() string {
 // Results of re-identifying a item.
 type ReidentifyContentResponse struct {
 	// The re-identified item.
-	Item *ContentItem `protobuf:"bytes,1,opt,name=item" json:"item,omitempty"`
+	Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
 	// An overview of the changes that were made to the `item`.
-	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview" json:"overview,omitempty"`
+	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -2374,18 +2374,18 @@ func (m *ReidentifyContentResponse) GetOverview() *TransformationOverview {
 // Request to search for potentially sensitive info in a ContentItem.
 type InspectContentRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Configuration for the inspector. What specified here will override
 	// the template referenced by the inspect_template_name argument.
-	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	// The item to inspect.
-	Item *ContentItem `protobuf:"bytes,3,opt,name=item" json:"item,omitempty"`
+	Item *ContentItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"`
 	// Optional template to use. Any configuration directly specified in
 	// inspect_config will override those set in the template. Singular fields
 	// that are set in this request will replace their corresponding fields in the
 	// template. Repeated fields are appended. Singular sub-messages and groups
 	// are recursively merged.
-	InspectTemplateName  string   `protobuf:"bytes,4,opt,name=inspect_template_name,json=inspectTemplateName" json:"inspect_template_name,omitempty"`
+	InspectTemplateName  string   `protobuf:"bytes,4,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2446,7 +2446,7 @@ func (m *InspectContentRequest) GetInspectTemplateName() string {
 // Results of inspecting an item.
 type InspectContentResponse struct {
 	// The findings.
-	Result               *InspectResult `protobuf:"bytes,1,opt,name=result" json:"result,omitempty"`
+	Result               *InspectResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -2495,7 +2495,7 @@ type OutputStorageConfig struct {
 	//
 	// If unspecified, then all available columns will be used for a new table,
 	// and no changes will be made to an existing table.
-	OutputSchema         OutputStorageConfig_OutputSchema `protobuf:"varint,3,opt,name=output_schema,json=outputSchema,enum=google.privacy.dlp.v2.OutputStorageConfig_OutputSchema" json:"output_schema,omitempty"`
+	OutputSchema         OutputStorageConfig_OutputSchema `protobuf:"varint,3,opt,name=output_schema,json=outputSchema,proto3,enum=google.privacy.dlp.v2.OutputStorageConfig_OutputSchema" json:"output_schema,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
 	XXX_unrecognized     []byte                           `json:"-"`
 	XXX_sizecache        int32                            `json:"-"`
@@ -2530,7 +2530,7 @@ type isOutputStorageConfig_Type interface {
 }
 
 type OutputStorageConfig_Table struct {
-	Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,oneof"`
+	Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3,oneof"`
 }
 
 func (*OutputStorageConfig_Table) isOutputStorageConfig_Type() {}
@@ -2614,9 +2614,9 @@ func _OutputStorageConfig_OneofSizer(msg proto.Message) (n int) {
 // Statistics regarding a specific InfoType.
 type InfoTypeStats struct {
 	// The type of finding this stat is for.
-	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
+	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
 	// Number of findings for this infoType.
-	Count                int64    `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
+	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2663,9 +2663,9 @@ func (m *InfoTypeStats) GetCount() int64 {
 // The results of an inspect DataSource job.
 type InspectDataSourceDetails struct {
 	// The configuration used for this job.
-	RequestedOptions *InspectDataSourceDetails_RequestedOptions `protobuf:"bytes,2,opt,name=requested_options,json=requestedOptions" json:"requested_options,omitempty"`
+	RequestedOptions *InspectDataSourceDetails_RequestedOptions `protobuf:"bytes,2,opt,name=requested_options,json=requestedOptions,proto3" json:"requested_options,omitempty"`
 	// A summary of the outcome of this inspect job.
-	Result               *InspectDataSourceDetails_Result `protobuf:"bytes,3,opt,name=result" json:"result,omitempty"`
+	Result               *InspectDataSourceDetails_Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
 	XXX_unrecognized     []byte                           `json:"-"`
 	XXX_sizecache        int32                            `json:"-"`
@@ -2712,8 +2712,8 @@ func (m *InspectDataSourceDetails) GetResult() *InspectDataSourceDetails_Result
 type InspectDataSourceDetails_RequestedOptions struct {
 	// If run with an InspectTemplate, a snapshot of its state at the time of
 	// this run.
-	SnapshotInspectTemplate *InspectTemplate  `protobuf:"bytes,1,opt,name=snapshot_inspect_template,json=snapshotInspectTemplate" json:"snapshot_inspect_template,omitempty"`
-	JobConfig               *InspectJobConfig `protobuf:"bytes,3,opt,name=job_config,json=jobConfig" json:"job_config,omitempty"`
+	SnapshotInspectTemplate *InspectTemplate  `protobuf:"bytes,1,opt,name=snapshot_inspect_template,json=snapshotInspectTemplate,proto3" json:"snapshot_inspect_template,omitempty"`
+	JobConfig               *InspectJobConfig `protobuf:"bytes,3,opt,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}          `json:"-"`
 	XXX_unrecognized        []byte            `json:"-"`
 	XXX_sizecache           int32             `json:"-"`
@@ -2761,12 +2761,12 @@ func (m *InspectDataSourceDetails_RequestedOptions) GetJobConfig() *InspectJobCo
 
 type InspectDataSourceDetails_Result struct {
 	// Total size in bytes that were processed.
-	ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes" json:"processed_bytes,omitempty"`
+	ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes,proto3" json:"processed_bytes,omitempty"`
 	// Estimate of the number of bytes to process.
-	TotalEstimatedBytes int64 `protobuf:"varint,2,opt,name=total_estimated_bytes,json=totalEstimatedBytes" json:"total_estimated_bytes,omitempty"`
+	TotalEstimatedBytes int64 `protobuf:"varint,2,opt,name=total_estimated_bytes,json=totalEstimatedBytes,proto3" json:"total_estimated_bytes,omitempty"`
 	// Statistics of how many instances of each info type were found during
 	// inspect job.
-	InfoTypeStats        []*InfoTypeStats `protobuf:"bytes,3,rep,name=info_type_stats,json=infoTypeStats" json:"info_type_stats,omitempty"`
+	InfoTypeStats        []*InfoTypeStats `protobuf:"bytes,3,rep,name=info_type_stats,json=infoTypeStats,proto3" json:"info_type_stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -2820,11 +2820,11 @@ func (m *InspectDataSourceDetails_Result) GetInfoTypeStats() []*InfoTypeStats {
 // InfoType description.
 type InfoTypeDescription struct {
 	// Internal name of the infoType.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Human readable form of the infoType name.
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Which parts of the API supports this InfoType.
-	SupportedBy          []InfoTypeSupportedBy `protobuf:"varint,3,rep,packed,name=supported_by,json=supportedBy,enum=google.privacy.dlp.v2.InfoTypeSupportedBy" json:"supported_by,omitempty"`
+	SupportedBy          []InfoTypeSupportedBy `protobuf:"varint,3,rep,packed,name=supported_by,json=supportedBy,proto3,enum=google.privacy.dlp.v2.InfoTypeSupportedBy" json:"supported_by,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -2880,10 +2880,10 @@ type ListInfoTypesRequest struct {
 	// Optional BCP-47 language code for localized infoType friendly
 	// names. If omitted, or if localized strings are not available,
 	// en-US strings will be returned.
-	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional filter to only return infoTypes supported by certain parts of the
 	// API. Defaults to supported_by=INSPECT.
-	Filter               string   `protobuf:"bytes,2,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2930,7 +2930,7 @@ func (m *ListInfoTypesRequest) GetFilter() string {
 // Response to the ListInfoTypes request.
 type ListInfoTypesResponse struct {
 	// Set of sensitive infoTypes.
-	InfoTypes            []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes" json:"info_types,omitempty"`
+	InfoTypes            []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -2970,12 +2970,12 @@ func (m *ListInfoTypesResponse) GetInfoTypes() []*InfoTypeDescription {
 // Configuration for a risk analysis job.
 type RiskAnalysisJobConfig struct {
 	// Privacy metric to compute.
-	PrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=privacy_metric,json=privacyMetric" json:"privacy_metric,omitempty"`
+	PrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=privacy_metric,json=privacyMetric,proto3" json:"privacy_metric,omitempty"`
 	// Input dataset to compute metrics over.
-	SourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=source_table,json=sourceTable" json:"source_table,omitempty"`
+	SourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"`
 	// Actions to execute at the completion of the job. Are executed in the order
 	// provided.
-	Actions              []*Action `protobuf:"bytes,3,rep,name=actions" json:"actions,omitempty"`
+	Actions              []*Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -3069,19 +3069,19 @@ type isPrivacyMetric_Type interface {
 }
 
 type PrivacyMetric_NumericalStatsConfig_ struct {
-	NumericalStatsConfig *PrivacyMetric_NumericalStatsConfig `protobuf:"bytes,1,opt,name=numerical_stats_config,json=numericalStatsConfig,oneof"`
+	NumericalStatsConfig *PrivacyMetric_NumericalStatsConfig `protobuf:"bytes,1,opt,name=numerical_stats_config,json=numericalStatsConfig,proto3,oneof"`
 }
 type PrivacyMetric_CategoricalStatsConfig_ struct {
-	CategoricalStatsConfig *PrivacyMetric_CategoricalStatsConfig `protobuf:"bytes,2,opt,name=categorical_stats_config,json=categoricalStatsConfig,oneof"`
+	CategoricalStatsConfig *PrivacyMetric_CategoricalStatsConfig `protobuf:"bytes,2,opt,name=categorical_stats_config,json=categoricalStatsConfig,proto3,oneof"`
 }
 type PrivacyMetric_KAnonymityConfig_ struct {
-	KAnonymityConfig *PrivacyMetric_KAnonymityConfig `protobuf:"bytes,3,opt,name=k_anonymity_config,json=kAnonymityConfig,oneof"`
+	KAnonymityConfig *PrivacyMetric_KAnonymityConfig `protobuf:"bytes,3,opt,name=k_anonymity_config,json=kAnonymityConfig,proto3,oneof"`
 }
 type PrivacyMetric_LDiversityConfig_ struct {
-	LDiversityConfig *PrivacyMetric_LDiversityConfig `protobuf:"bytes,4,opt,name=l_diversity_config,json=lDiversityConfig,oneof"`
+	LDiversityConfig *PrivacyMetric_LDiversityConfig `protobuf:"bytes,4,opt,name=l_diversity_config,json=lDiversityConfig,proto3,oneof"`
 }
 type PrivacyMetric_KMapEstimationConfig_ struct {
-	KMapEstimationConfig *PrivacyMetric_KMapEstimationConfig `protobuf:"bytes,5,opt,name=k_map_estimation_config,json=kMapEstimationConfig,oneof"`
+	KMapEstimationConfig *PrivacyMetric_KMapEstimationConfig `protobuf:"bytes,5,opt,name=k_map_estimation_config,json=kMapEstimationConfig,proto3,oneof"`
 }
 
 func (*PrivacyMetric_NumericalStatsConfig_) isPrivacyMetric_Type()   {}
@@ -3268,7 +3268,7 @@ func _PrivacyMetric_OneofSizer(msg proto.Message) (n int) {
 type PrivacyMetric_NumericalStatsConfig struct {
 	// Field to compute numerical stats on. Supported types are
 	// integer, float, date, datetime, timestamp, time.
-	Field                *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3312,7 +3312,7 @@ type PrivacyMetric_CategoricalStatsConfig struct {
 	// supported except for arrays and structs. However, it may be more
 	// informative to use NumericalStats when the field type is supported,
 	// depending on the data.
-	Field                *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3356,7 +3356,7 @@ type PrivacyMetric_KAnonymityConfig struct {
 	// repeated data types are not supported; however, nested fields are
 	// supported so long as they are not structs themselves or nested within
 	// a repeated field.
-	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds" json:"quasi_ids,omitempty"`
+	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
 	// Optional message indicating that multiple rows might be associated to a
 	// single individual. If the same entity_id is associated to multiple
 	// quasi-identifier tuples over distict rows, we consider the entire
@@ -3367,7 +3367,7 @@ type PrivacyMetric_KAnonymityConfig struct {
 	// Important note: a maximum of 1000 rows can be associated to a single
 	// entity ID. If more rows are associated with the same entity ID, some
 	// might be ignored.
-	EntityId             *EntityId `protobuf:"bytes,2,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
+	EntityId             *EntityId `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -3416,9 +3416,9 @@ type PrivacyMetric_LDiversityConfig struct {
 	// Set of quasi-identifiers indicating how equivalence classes are
 	// defined for the l-diversity computation. When multiple fields are
 	// specified, they are considered a single composite key.
-	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds" json:"quasi_ids,omitempty"`
+	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
 	// Sensitive field for computing the l-value.
-	SensitiveAttribute   *FieldId `protobuf:"bytes,2,opt,name=sensitive_attribute,json=sensitiveAttribute" json:"sensitive_attribute,omitempty"`
+	SensitiveAttribute   *FieldId `protobuf:"bytes,2,opt,name=sensitive_attribute,json=sensitiveAttribute,proto3" json:"sensitive_attribute,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3472,15 +3472,15 @@ func (m *PrivacyMetric_LDiversityConfig) GetSensitiveAttribute() *FieldId {
 type PrivacyMetric_KMapEstimationConfig struct {
 	// Fields considered to be quasi-identifiers. No two columns can have the
 	// same tag. [required]
-	QuasiIds []*PrivacyMetric_KMapEstimationConfig_TaggedField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds" json:"quasi_ids,omitempty"`
+	QuasiIds []*PrivacyMetric_KMapEstimationConfig_TaggedField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
 	// ISO 3166-1 alpha-2 region code to use in the statistical modeling.
 	// Required if no column is tagged with a region-specific InfoType (like
 	// US_ZIP_5) or a region code.
-	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode" json:"region_code,omitempty"`
+	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
 	// Several auxiliary tables can be used in the analysis. Each custom_tag
 	// used to tag a quasi-identifiers column must appear in exactly one column
 	// of one auxiliary table.
-	AuxiliaryTables      []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables" json:"auxiliary_tables,omitempty"`
+	AuxiliaryTables      []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                             `json:"-"`
 	XXX_unrecognized     []byte                                               `json:"-"`
 	XXX_sizecache        int32                                                `json:"-"`
@@ -3533,7 +3533,7 @@ func (m *PrivacyMetric_KMapEstimationConfig) GetAuxiliaryTables() []*PrivacyMetr
 
 type PrivacyMetric_KMapEstimationConfig_TaggedField struct {
 	// Identifies the column. [required]
-	Field *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	// Semantic tag that identifies what a column contains, to determine which
 	// statistical model to use to estimate the reidentifiability of each
 	// value. [required]
@@ -3581,13 +3581,13 @@ type isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag interface {
 }
 
 type PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType struct {
-	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,oneof"`
+	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"`
 }
 type PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag struct {
-	CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,oneof"`
+	CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"`
 }
 type PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred struct {
-	Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,oneof"`
+	Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"`
 }
 
 func (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() {
@@ -3730,13 +3730,13 @@ func _PrivacyMetric_KMapEstimationConfig_TaggedField_OneofSizer(msg proto.Messag
 // tuple is highly reidentifiable).
 type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable struct {
 	// Auxiliary table location. [required]
-	Table *BigQueryTable `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
+	Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
 	// Quasi-identifier columns. [required]
-	QuasiIds []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds" json:"quasi_ids,omitempty"`
+	QuasiIds []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
 	// The relative frequency column must contain a floating-point number
 	// between 0 and 1 (inclusive). Null values are assumed to be zero.
 	// [required]
-	RelativeFrequency    *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency" json:"relative_frequency,omitempty"`
+	RelativeFrequency    *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3794,8 +3794,8 @@ func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetRelativeFrequency
 // A quasi-identifier column has a custom_tag, used to know which column
 // in the data corresponds to which column in the statistical model.
 type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField struct {
-	Field                *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
-	CustomTag            string   `protobuf:"bytes,2,opt,name=custom_tag,json=customTag" json:"custom_tag,omitempty"`
+	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
+	CustomTag            string   `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -3846,9 +3846,9 @@ func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetCust
 // Result of a risk analysis operation request.
 type AnalyzeDataSourceRiskDetails struct {
 	// Privacy metric to compute.
-	RequestedPrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=requested_privacy_metric,json=requestedPrivacyMetric" json:"requested_privacy_metric,omitempty"`
+	RequestedPrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=requested_privacy_metric,json=requestedPrivacyMetric,proto3" json:"requested_privacy_metric,omitempty"`
 	// Input dataset to compute metrics over.
-	RequestedSourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=requested_source_table,json=requestedSourceTable" json:"requested_source_table,omitempty"`
+	RequestedSourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=requested_source_table,json=requestedSourceTable,proto3" json:"requested_source_table,omitempty"`
 	// Values associated with this metric.
 	//
 	// Types that are valid to be assigned to Result:
@@ -3892,19 +3892,19 @@ type isAnalyzeDataSourceRiskDetails_Result interface {
 }
 
 type AnalyzeDataSourceRiskDetails_NumericalStatsResult_ struct {
-	NumericalStatsResult *AnalyzeDataSourceRiskDetails_NumericalStatsResult `protobuf:"bytes,3,opt,name=numerical_stats_result,json=numericalStatsResult,oneof"`
+	NumericalStatsResult *AnalyzeDataSourceRiskDetails_NumericalStatsResult `protobuf:"bytes,3,opt,name=numerical_stats_result,json=numericalStatsResult,proto3,oneof"`
 }
 type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ struct {
-	CategoricalStatsResult *AnalyzeDataSourceRiskDetails_CategoricalStatsResult `protobuf:"bytes,4,opt,name=categorical_stats_result,json=categoricalStatsResult,oneof"`
+	CategoricalStatsResult *AnalyzeDataSourceRiskDetails_CategoricalStatsResult `protobuf:"bytes,4,opt,name=categorical_stats_result,json=categoricalStatsResult,proto3,oneof"`
 }
 type AnalyzeDataSourceRiskDetails_KAnonymityResult_ struct {
-	KAnonymityResult *AnalyzeDataSourceRiskDetails_KAnonymityResult `protobuf:"bytes,5,opt,name=k_anonymity_result,json=kAnonymityResult,oneof"`
+	KAnonymityResult *AnalyzeDataSourceRiskDetails_KAnonymityResult `protobuf:"bytes,5,opt,name=k_anonymity_result,json=kAnonymityResult,proto3,oneof"`
 }
 type AnalyzeDataSourceRiskDetails_LDiversityResult_ struct {
-	LDiversityResult *AnalyzeDataSourceRiskDetails_LDiversityResult `protobuf:"bytes,6,opt,name=l_diversity_result,json=lDiversityResult,oneof"`
+	LDiversityResult *AnalyzeDataSourceRiskDetails_LDiversityResult `protobuf:"bytes,6,opt,name=l_diversity_result,json=lDiversityResult,proto3,oneof"`
 }
 type AnalyzeDataSourceRiskDetails_KMapEstimationResult_ struct {
-	KMapEstimationResult *AnalyzeDataSourceRiskDetails_KMapEstimationResult `protobuf:"bytes,7,opt,name=k_map_estimation_result,json=kMapEstimationResult,oneof"`
+	KMapEstimationResult *AnalyzeDataSourceRiskDetails_KMapEstimationResult `protobuf:"bytes,7,opt,name=k_map_estimation_result,json=kMapEstimationResult,proto3,oneof"`
 }
 
 func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_) isAnalyzeDataSourceRiskDetails_Result()   {}
@@ -4103,12 +4103,12 @@ func _AnalyzeDataSourceRiskDetails_OneofSizer(msg proto.Message) (n int) {
 // Result of the numerical stats computation.
 type AnalyzeDataSourceRiskDetails_NumericalStatsResult struct {
 	// Minimum value appearing in the column.
-	MinValue *Value `protobuf:"bytes,1,opt,name=min_value,json=minValue" json:"min_value,omitempty"`
+	MinValue *Value `protobuf:"bytes,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
 	// Maximum value appearing in the column.
-	MaxValue *Value `protobuf:"bytes,2,opt,name=max_value,json=maxValue" json:"max_value,omitempty"`
+	MaxValue *Value `protobuf:"bytes,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
 	// List of 99 values that partition the set of field values into 100 equal
 	// sized buckets.
-	QuantileValues       []*Value `protobuf:"bytes,4,rep,name=quantile_values,json=quantileValues" json:"quantile_values,omitempty"`
+	QuantileValues       []*Value `protobuf:"bytes,4,rep,name=quantile_values,json=quantileValues,proto3" json:"quantile_values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4166,7 +4166,7 @@ func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetQuantileValues()
 // Result of the categorical stats computation.
 type AnalyzeDataSourceRiskDetails_CategoricalStatsResult struct {
 	// Histogram of value frequencies in the column.
-	ValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket `protobuf:"bytes,5,rep,name=value_frequency_histogram_buckets,json=valueFrequencyHistogramBuckets" json:"value_frequency_histogram_buckets,omitempty"`
+	ValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket `protobuf:"bytes,5,rep,name=value_frequency_histogram_buckets,json=valueFrequencyHistogramBuckets,proto3" json:"value_frequency_histogram_buckets,omitempty"`
 	XXX_NoUnkeyedLiteral           struct{}                                                                               `json:"-"`
 	XXX_unrecognized               []byte                                                                                 `json:"-"`
 	XXX_sizecache                  int32                                                                                  `json:"-"`
@@ -4209,16 +4209,16 @@ func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) GetValueFrequencyH
 
 type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket struct {
 	// Lower bound on the value frequency of the values in this bucket.
-	ValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=value_frequency_lower_bound,json=valueFrequencyLowerBound" json:"value_frequency_lower_bound,omitempty"`
+	ValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=value_frequency_lower_bound,json=valueFrequencyLowerBound,proto3" json:"value_frequency_lower_bound,omitempty"`
 	// Upper bound on the value frequency of the values in this bucket.
-	ValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=value_frequency_upper_bound,json=valueFrequencyUpperBound" json:"value_frequency_upper_bound,omitempty"`
+	ValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=value_frequency_upper_bound,json=valueFrequencyUpperBound,proto3" json:"value_frequency_upper_bound,omitempty"`
 	// Total number of values in this bucket.
-	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
+	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
 	// Sample of value frequencies in this bucket. The total number of
 	// values returned per bucket is capped at 20.
-	BucketValues []*ValueFrequency `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues" json:"bucket_values,omitempty"`
+	BucketValues []*ValueFrequency `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
 	// Total number of distinct values in this bucket.
-	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount" json:"bucket_value_count,omitempty"`
+	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4291,7 +4291,7 @@ func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHis
 // Result of the k-anonymity computation.
 type AnalyzeDataSourceRiskDetails_KAnonymityResult struct {
 	// Histogram of k-anonymity equivalence classes.
-	EquivalenceClassHistogramBuckets []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket `protobuf:"bytes,5,rep,name=equivalence_class_histogram_buckets,json=equivalenceClassHistogramBuckets" json:"equivalence_class_histogram_buckets,omitempty"`
+	EquivalenceClassHistogramBuckets []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket `protobuf:"bytes,5,rep,name=equivalence_class_histogram_buckets,json=equivalenceClassHistogramBuckets,proto3" json:"equivalence_class_histogram_buckets,omitempty"`
 	XXX_NoUnkeyedLiteral             struct{}                                                                   `json:"-"`
 	XXX_unrecognized                 []byte                                                                     `json:"-"`
 	XXX_sizecache                    int32                                                                      `json:"-"`
@@ -4337,10 +4337,10 @@ type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass st
 	// Set of values defining the equivalence class. One value per
 	// quasi-identifier column in the original KAnonymity metric message.
 	// The order is always the same as the original request.
-	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues" json:"quasi_ids_values,omitempty"`
+	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
 	// Size of the equivalence class, for example number of rows with the
 	// above set of values.
-	EquivalenceClassSize int64    `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize" json:"equivalence_class_size,omitempty"`
+	EquivalenceClassSize int64    `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4390,16 +4390,16 @@ func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClas
 
 type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket struct {
 	// Lower bound on the size of the equivalence classes in this bucket.
-	EquivalenceClassSizeLowerBound int64 `protobuf:"varint,1,opt,name=equivalence_class_size_lower_bound,json=equivalenceClassSizeLowerBound" json:"equivalence_class_size_lower_bound,omitempty"`
+	EquivalenceClassSizeLowerBound int64 `protobuf:"varint,1,opt,name=equivalence_class_size_lower_bound,json=equivalenceClassSizeLowerBound,proto3" json:"equivalence_class_size_lower_bound,omitempty"`
 	// Upper bound on the size of the equivalence classes in this bucket.
-	EquivalenceClassSizeUpperBound int64 `protobuf:"varint,2,opt,name=equivalence_class_size_upper_bound,json=equivalenceClassSizeUpperBound" json:"equivalence_class_size_upper_bound,omitempty"`
+	EquivalenceClassSizeUpperBound int64 `protobuf:"varint,2,opt,name=equivalence_class_size_upper_bound,json=equivalenceClassSizeUpperBound,proto3" json:"equivalence_class_size_upper_bound,omitempty"`
 	// Total number of equivalence classes in this bucket.
-	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
+	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
 	// Sample of equivalence classes in this bucket. The total number of
 	// classes returned per bucket is capped at 20.
-	BucketValues []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues" json:"bucket_values,omitempty"`
+	BucketValues []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
 	// Total number of distinct equivalence classes in this bucket.
-	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount" json:"bucket_value_count,omitempty"`
+	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4471,7 +4471,7 @@ func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket
 // Result of the l-diversity computation.
 type AnalyzeDataSourceRiskDetails_LDiversityResult struct {
 	// Histogram of l-diversity equivalence class sensitive value frequencies.
-	SensitiveValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket `protobuf:"bytes,5,rep,name=sensitive_value_frequency_histogram_buckets,json=sensitiveValueFrequencyHistogramBuckets" json:"sensitive_value_frequency_histogram_buckets,omitempty"`
+	SensitiveValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket `protobuf:"bytes,5,rep,name=sensitive_value_frequency_histogram_buckets,json=sensitiveValueFrequencyHistogramBuckets,proto3" json:"sensitive_value_frequency_histogram_buckets,omitempty"`
 	XXX_NoUnkeyedLiteral                    struct{}                                                                   `json:"-"`
 	XXX_unrecognized                        []byte                                                                     `json:"-"`
 	XXX_sizecache                           int32                                                                      `json:"-"`
@@ -4516,13 +4516,13 @@ func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) GetSensitiveValueFrequen
 type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass struct {
 	// Quasi-identifier values defining the k-anonymity equivalence
 	// class. The order is always the same as the original request.
-	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues" json:"quasi_ids_values,omitempty"`
+	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
 	// Size of the k-anonymity equivalence class.
-	EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize" json:"equivalence_class_size,omitempty"`
+	EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"`
 	// Number of distinct sensitive values in this equivalence class.
-	NumDistinctSensitiveValues int64 `protobuf:"varint,3,opt,name=num_distinct_sensitive_values,json=numDistinctSensitiveValues" json:"num_distinct_sensitive_values,omitempty"`
+	NumDistinctSensitiveValues int64 `protobuf:"varint,3,opt,name=num_distinct_sensitive_values,json=numDistinctSensitiveValues,proto3" json:"num_distinct_sensitive_values,omitempty"`
 	// Estimated frequencies of top sensitive values.
-	TopSensitiveValues   []*ValueFrequency `protobuf:"bytes,4,rep,name=top_sensitive_values,json=topSensitiveValues" json:"top_sensitive_values,omitempty"`
+	TopSensitiveValues   []*ValueFrequency `protobuf:"bytes,4,rep,name=top_sensitive_values,json=topSensitiveValues,proto3" json:"top_sensitive_values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -4587,17 +4587,17 @@ func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClas
 type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket struct {
 	// Lower bound on the sensitive value frequencies of the equivalence
 	// classes in this bucket.
-	SensitiveValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=sensitive_value_frequency_lower_bound,json=sensitiveValueFrequencyLowerBound" json:"sensitive_value_frequency_lower_bound,omitempty"`
+	SensitiveValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=sensitive_value_frequency_lower_bound,json=sensitiveValueFrequencyLowerBound,proto3" json:"sensitive_value_frequency_lower_bound,omitempty"`
 	// Upper bound on the sensitive value frequencies of the equivalence
 	// classes in this bucket.
-	SensitiveValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=sensitive_value_frequency_upper_bound,json=sensitiveValueFrequencyUpperBound" json:"sensitive_value_frequency_upper_bound,omitempty"`
+	SensitiveValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=sensitive_value_frequency_upper_bound,json=sensitiveValueFrequencyUpperBound,proto3" json:"sensitive_value_frequency_upper_bound,omitempty"`
 	// Total number of equivalence classes in this bucket.
-	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
+	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
 	// Sample of equivalence classes in this bucket. The total number of
 	// classes returned per bucket is capped at 20.
-	BucketValues []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues" json:"bucket_values,omitempty"`
+	BucketValues []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
 	// Total number of distinct equivalence classes in this bucket.
-	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount" json:"bucket_value_count,omitempty"`
+	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4677,7 +4677,7 @@ type AnalyzeDataSourceRiskDetails_KMapEstimationResult struct {
 	//   {min_anonymity: 5, max_anonymity: 10, frequency: 99}
 	// mean that there are no record with an estimated anonymity of 4, 5, or
 	// larger than 10.
-	KMapEstimationHistogram []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket `protobuf:"bytes,1,rep,name=k_map_estimation_histogram,json=kMapEstimationHistogram" json:"k_map_estimation_histogram,omitempty"`
+	KMapEstimationHistogram []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket `protobuf:"bytes,1,rep,name=k_map_estimation_histogram,json=kMapEstimationHistogram,proto3" json:"k_map_estimation_histogram,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}                                                                           `json:"-"`
 	XXX_unrecognized        []byte                                                                             `json:"-"`
 	XXX_sizecache           int32                                                                              `json:"-"`
@@ -4721,9 +4721,9 @@ func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) GetKMapEstimationHis
 // A tuple of values for the quasi-identifier columns.
 type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues struct {
 	// The quasi-identifier values.
-	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues" json:"quasi_ids_values,omitempty"`
+	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
 	// The estimated anonymity for these quasi-identifier values.
-	EstimatedAnonymity   int64    `protobuf:"varint,2,opt,name=estimated_anonymity,json=estimatedAnonymity" json:"estimated_anonymity,omitempty"`
+	EstimatedAnonymity   int64    `protobuf:"varint,2,opt,name=estimated_anonymity,json=estimatedAnonymity,proto3" json:"estimated_anonymity,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4781,16 +4781,16 @@ func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiId
 // corresponds to the number of uniquely identifiable records.
 type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket struct {
 	// Always positive.
-	MinAnonymity int64 `protobuf:"varint,1,opt,name=min_anonymity,json=minAnonymity" json:"min_anonymity,omitempty"`
+	MinAnonymity int64 `protobuf:"varint,1,opt,name=min_anonymity,json=minAnonymity,proto3" json:"min_anonymity,omitempty"`
 	// Always greater than or equal to min_anonymity.
-	MaxAnonymity int64 `protobuf:"varint,2,opt,name=max_anonymity,json=maxAnonymity" json:"max_anonymity,omitempty"`
+	MaxAnonymity int64 `protobuf:"varint,2,opt,name=max_anonymity,json=maxAnonymity,proto3" json:"max_anonymity,omitempty"`
 	// Number of records within these anonymity bounds.
-	BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
+	BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
 	// Sample of quasi-identifier tuple values in this bucket. The total
 	// number of classes returned per bucket is capped at 20.
-	BucketValues []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues" json:"bucket_values,omitempty"`
+	BucketValues []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
 	// Total number of distinct quasi-identifier tuple values in this bucket.
-	BucketValueCount     int64    `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount" json:"bucket_value_count,omitempty"`
+	BucketValueCount     int64    `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4863,9 +4863,9 @@ func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogr
 // A value of a field, including its frequency.
 type ValueFrequency struct {
 	// A value contained in the field in question.
-	Value *Value `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
+	Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
 	// How many times the value is contained in the field.
-	Count                int64    `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
+	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -4960,28 +4960,28 @@ type isValue_Type interface {
 }
 
 type Value_IntegerValue struct {
-	IntegerValue int64 `protobuf:"varint,1,opt,name=integer_value,json=integerValue,oneof"`
+	IntegerValue int64 `protobuf:"varint,1,opt,name=integer_value,json=integerValue,proto3,oneof"`
 }
 type Value_FloatValue struct {
-	FloatValue float64 `protobuf:"fixed64,2,opt,name=float_value,json=floatValue,oneof"`
+	FloatValue float64 `protobuf:"fixed64,2,opt,name=float_value,json=floatValue,proto3,oneof"`
 }
 type Value_StringValue struct {
-	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,oneof"`
+	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
 }
 type Value_BooleanValue struct {
-	BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,oneof"`
+	BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
 }
 type Value_TimestampValue struct {
-	TimestampValue *timestamp.Timestamp `protobuf:"bytes,5,opt,name=timestamp_value,json=timestampValue,oneof"`
+	TimestampValue *timestamp.Timestamp `protobuf:"bytes,5,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
 }
 type Value_TimeValue struct {
-	TimeValue *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=time_value,json=timeValue,oneof"`
+	TimeValue *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=time_value,json=timeValue,proto3,oneof"`
 }
 type Value_DateValue struct {
-	DateValue *date.Date `protobuf:"bytes,7,opt,name=date_value,json=dateValue,oneof"`
+	DateValue *date.Date `protobuf:"bytes,7,opt,name=date_value,json=dateValue,proto3,oneof"`
 }
 type Value_DayOfWeekValue struct {
-	DayOfWeekValue dayofweek.DayOfWeek `protobuf:"varint,8,opt,name=day_of_week_value,json=dayOfWeekValue,enum=google.type.DayOfWeek,oneof"`
+	DayOfWeekValue dayofweek.DayOfWeek `protobuf:"varint,8,opt,name=day_of_week_value,json=dayOfWeekValue,proto3,enum=google.type.DayOfWeek,oneof"`
 }
 
 func (*Value_IntegerValue) isValue_Type()   {}
@@ -5265,7 +5265,7 @@ type isQuoteInfo_ParsedQuote interface {
 }
 
 type QuoteInfo_DateTime struct {
-	DateTime *DateTime `protobuf:"bytes,2,opt,name=date_time,json=dateTime,oneof"`
+	DateTime *DateTime `protobuf:"bytes,2,opt,name=date_time,json=dateTime,proto3,oneof"`
 }
 
 func (*QuoteInfo_DateTime) isQuoteInfo_ParsedQuote() {}
@@ -5343,10 +5343,10 @@ func _QuoteInfo_OneofSizer(msg proto.Message) (n int) {
 type DateTime struct {
 	// One or more of the following must be set. All fields are optional, but
 	// when set must be valid date or time values.
-	Date                 *date.Date           `protobuf:"bytes,1,opt,name=date" json:"date,omitempty"`
-	DayOfWeek            dayofweek.DayOfWeek  `protobuf:"varint,2,opt,name=day_of_week,json=dayOfWeek,enum=google.type.DayOfWeek" json:"day_of_week,omitempty"`
-	Time                 *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=time" json:"time,omitempty"`
-	TimeZone             *DateTime_TimeZone   `protobuf:"bytes,4,opt,name=time_zone,json=timeZone" json:"time_zone,omitempty"`
+	Date                 *date.Date           `protobuf:"bytes,1,opt,name=date,proto3" json:"date,omitempty"`
+	DayOfWeek            dayofweek.DayOfWeek  `protobuf:"varint,2,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.type.DayOfWeek" json:"day_of_week,omitempty"`
+	Time                 *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
+	TimeZone             *DateTime_TimeZone   `protobuf:"bytes,4,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -5407,7 +5407,7 @@ func (m *DateTime) GetTimeZone() *DateTime_TimeZone {
 type DateTime_TimeZone struct {
 	// Set only if the offset can be determined. Positive for time ahead of UTC.
 	// E.g. For "UTC-9", this value is -540.
-	OffsetMinutes        int32    `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes" json:"offset_minutes,omitempty"`
+	OffsetMinutes        int32    `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes,proto3" json:"offset_minutes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -5484,10 +5484,10 @@ type isDeidentifyConfig_Transformation interface {
 }
 
 type DeidentifyConfig_InfoTypeTransformations struct {
-	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,1,opt,name=info_type_transformations,json=infoTypeTransformations,oneof"`
+	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,1,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"`
 }
 type DeidentifyConfig_RecordTransformations struct {
-	RecordTransformations *RecordTransformations `protobuf:"bytes,2,opt,name=record_transformations,json=recordTransformations,oneof"`
+	RecordTransformations *RecordTransformations `protobuf:"bytes,2,opt,name=record_transformations,json=recordTransformations,proto3,oneof"`
 }
 
 func (*DeidentifyConfig_InfoTypeTransformations) isDeidentifyConfig_Transformation() {}
@@ -5636,34 +5636,34 @@ type isPrimitiveTransformation_Transformation interface {
 }
 
 type PrimitiveTransformation_ReplaceConfig struct {
-	ReplaceConfig *ReplaceValueConfig `protobuf:"bytes,1,opt,name=replace_config,json=replaceConfig,oneof"`
+	ReplaceConfig *ReplaceValueConfig `protobuf:"bytes,1,opt,name=replace_config,json=replaceConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_RedactConfig struct {
-	RedactConfig *RedactConfig `protobuf:"bytes,2,opt,name=redact_config,json=redactConfig,oneof"`
+	RedactConfig *RedactConfig `protobuf:"bytes,2,opt,name=redact_config,json=redactConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_CharacterMaskConfig struct {
-	CharacterMaskConfig *CharacterMaskConfig `protobuf:"bytes,3,opt,name=character_mask_config,json=characterMaskConfig,oneof"`
+	CharacterMaskConfig *CharacterMaskConfig `protobuf:"bytes,3,opt,name=character_mask_config,json=characterMaskConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_CryptoReplaceFfxFpeConfig struct {
-	CryptoReplaceFfxFpeConfig *CryptoReplaceFfxFpeConfig `protobuf:"bytes,4,opt,name=crypto_replace_ffx_fpe_config,json=cryptoReplaceFfxFpeConfig,oneof"`
+	CryptoReplaceFfxFpeConfig *CryptoReplaceFfxFpeConfig `protobuf:"bytes,4,opt,name=crypto_replace_ffx_fpe_config,json=cryptoReplaceFfxFpeConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_FixedSizeBucketingConfig struct {
-	FixedSizeBucketingConfig *FixedSizeBucketingConfig `protobuf:"bytes,5,opt,name=fixed_size_bucketing_config,json=fixedSizeBucketingConfig,oneof"`
+	FixedSizeBucketingConfig *FixedSizeBucketingConfig `protobuf:"bytes,5,opt,name=fixed_size_bucketing_config,json=fixedSizeBucketingConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_BucketingConfig struct {
-	BucketingConfig *BucketingConfig `protobuf:"bytes,6,opt,name=bucketing_config,json=bucketingConfig,oneof"`
+	BucketingConfig *BucketingConfig `protobuf:"bytes,6,opt,name=bucketing_config,json=bucketingConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_ReplaceWithInfoTypeConfig struct {
-	ReplaceWithInfoTypeConfig *ReplaceWithInfoTypeConfig `protobuf:"bytes,7,opt,name=replace_with_info_type_config,json=replaceWithInfoTypeConfig,oneof"`
+	ReplaceWithInfoTypeConfig *ReplaceWithInfoTypeConfig `protobuf:"bytes,7,opt,name=replace_with_info_type_config,json=replaceWithInfoTypeConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_TimePartConfig struct {
-	TimePartConfig *TimePartConfig `protobuf:"bytes,8,opt,name=time_part_config,json=timePartConfig,oneof"`
+	TimePartConfig *TimePartConfig `protobuf:"bytes,8,opt,name=time_part_config,json=timePartConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_CryptoHashConfig struct {
-	CryptoHashConfig *CryptoHashConfig `protobuf:"bytes,9,opt,name=crypto_hash_config,json=cryptoHashConfig,oneof"`
+	CryptoHashConfig *CryptoHashConfig `protobuf:"bytes,9,opt,name=crypto_hash_config,json=cryptoHashConfig,proto3,oneof"`
 }
 type PrimitiveTransformation_DateShiftConfig struct {
-	DateShiftConfig *DateShiftConfig `protobuf:"bytes,11,opt,name=date_shift_config,json=dateShiftConfig,oneof"`
+	DateShiftConfig *DateShiftConfig `protobuf:"bytes,11,opt,name=date_shift_config,json=dateShiftConfig,proto3,oneof"`
 }
 
 func (*PrimitiveTransformation_ReplaceConfig) isPrimitiveTransformation_Transformation()             {}
@@ -5983,7 +5983,7 @@ func _PrimitiveTransformation_OneofSizer(msg proto.Message) (n int) {
 // For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a
 // portion of the value.
 type TimePartConfig struct {
-	PartToExtract        TimePartConfig_TimePart `protobuf:"varint,1,opt,name=part_to_extract,json=partToExtract,enum=google.privacy.dlp.v2.TimePartConfig_TimePart" json:"part_to_extract,omitempty"`
+	PartToExtract        TimePartConfig_TimePart `protobuf:"varint,1,opt,name=part_to_extract,json=partToExtract,proto3,enum=google.privacy.dlp.v2.TimePartConfig_TimePart" json:"part_to_extract,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
 	XXX_unrecognized     []byte                  `json:"-"`
 	XXX_sizecache        int32                   `json:"-"`
@@ -6028,7 +6028,7 @@ func (m *TimePartConfig) GetPartToExtract() TimePartConfig_TimePart {
 // Currently, only string and integer values can be hashed.
 type CryptoHashConfig struct {
 	// The key used by the hash function.
-	CryptoKey            *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey" json:"crypto_key,omitempty"`
+	CryptoKey            *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -6068,7 +6068,7 @@ func (m *CryptoHashConfig) GetCryptoKey() *CryptoKey {
 // Replace each input value with a given `Value`.
 type ReplaceValueConfig struct {
 	// Value to replace it with.
-	NewValue             *Value   `protobuf:"bytes,1,opt,name=new_value,json=newValue" json:"new_value,omitempty"`
+	NewValue             *Value   `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -6210,10 +6210,10 @@ type isCharsToIgnore_Characters interface {
 }
 
 type CharsToIgnore_CharactersToSkip struct {
-	CharactersToSkip string `protobuf:"bytes,1,opt,name=characters_to_skip,json=charactersToSkip,oneof"`
+	CharactersToSkip string `protobuf:"bytes,1,opt,name=characters_to_skip,json=charactersToSkip,proto3,oneof"`
 }
 type CharsToIgnore_CommonCharactersToIgnore struct {
-	CommonCharactersToIgnore CharsToIgnore_CommonCharsToIgnore `protobuf:"varint,2,opt,name=common_characters_to_ignore,json=commonCharactersToIgnore,enum=google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore,oneof"`
+	CommonCharactersToIgnore CharsToIgnore_CommonCharsToIgnore `protobuf:"varint,2,opt,name=common_characters_to_ignore,json=commonCharactersToIgnore,proto3,enum=google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore,oneof"`
 }
 
 func (*CharsToIgnore_CharactersToSkip) isCharsToIgnore_Characters()         {}
@@ -6316,20 +6316,20 @@ type CharacterMaskConfig struct {
 	// alphabetic string such as name, or "0" for a numeric string such as ZIP
 	// code or credit card number. String must have length 1. If not supplied, we
 	// will default to "*" for strings, 0 for digits.
-	MaskingCharacter string `protobuf:"bytes,1,opt,name=masking_character,json=maskingCharacter" json:"masking_character,omitempty"`
+	MaskingCharacter string `protobuf:"bytes,1,opt,name=masking_character,json=maskingCharacter,proto3" json:"masking_character,omitempty"`
 	// Number of characters to mask. If not set, all matching chars will be
 	// masked. Skipped characters do not count towards this tally.
-	NumberToMask int32 `protobuf:"varint,2,opt,name=number_to_mask,json=numberToMask" json:"number_to_mask,omitempty"`
+	NumberToMask int32 `protobuf:"varint,2,opt,name=number_to_mask,json=numberToMask,proto3" json:"number_to_mask,omitempty"`
 	// Mask characters in reverse order. For example, if `masking_character` is
 	// '0', number_to_mask is 14, and `reverse_order` is false, then
 	// 1234-5678-9012-3456 -> 00000000000000-3456
 	// If `masking_character` is '*', `number_to_mask` is 3, and `reverse_order`
 	// is true, then 12345 -> 12***
-	ReverseOrder bool `protobuf:"varint,3,opt,name=reverse_order,json=reverseOrder" json:"reverse_order,omitempty"`
+	ReverseOrder bool `protobuf:"varint,3,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"`
 	// When masking a string, items in this list will be skipped when replacing.
 	// For example, if your string is 555-555-5555 and you ask us to skip `-` and
 	// mask 5 chars with * we would produce ***-*55-5555.
-	CharactersToIgnore   []*CharsToIgnore `protobuf:"bytes,4,rep,name=characters_to_ignore,json=charactersToIgnore" json:"characters_to_ignore,omitempty"`
+	CharactersToIgnore   []*CharsToIgnore `protobuf:"bytes,4,rep,name=characters_to_ignore,json=charactersToIgnore,proto3" json:"characters_to_ignore,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -6405,17 +6405,17 @@ type FixedSizeBucketingConfig struct {
 	// Lower bound value of buckets. All values less than `lower_bound` are
 	// grouped together into a single bucket; for example if `lower_bound` = 10,
 	// then all values less than 10 are replaced with the value “-10”. [Required].
-	LowerBound *Value `protobuf:"bytes,1,opt,name=lower_bound,json=lowerBound" json:"lower_bound,omitempty"`
+	LowerBound *Value `protobuf:"bytes,1,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"`
 	// Upper bound value of buckets. All values greater than upper_bound are
 	// grouped together into a single bucket; for example if `upper_bound` = 89,
 	// then all values greater than 89 are replaced with the value “89+”.
 	// [Required].
-	UpperBound *Value `protobuf:"bytes,2,opt,name=upper_bound,json=upperBound" json:"upper_bound,omitempty"`
+	UpperBound *Value `protobuf:"bytes,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"`
 	// Size of each bucket (except for minimum and maximum buckets). So if
 	// `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
 	// following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
 	// 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. [Required].
-	BucketSize           float64  `protobuf:"fixed64,3,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
+	BucketSize           float64  `protobuf:"fixed64,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -6476,7 +6476,7 @@ func (m *FixedSizeBucketingConfig) GetBucketSize() float64 {
 // the type of the bound before comparing.
 type BucketingConfig struct {
 	// Set of buckets. Ranges must be non-overlapping.
-	Buckets              []*BucketingConfig_Bucket `protobuf:"bytes,1,rep,name=buckets" json:"buckets,omitempty"`
+	Buckets              []*BucketingConfig_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -6517,12 +6517,12 @@ func (m *BucketingConfig) GetBuckets() []*BucketingConfig_Bucket {
 type BucketingConfig_Bucket struct {
 	// Lower bound of the range, inclusive. Type should be the same as max if
 	// used.
-	Min *Value `protobuf:"bytes,1,opt,name=min" json:"min,omitempty"`
+	Min *Value `protobuf:"bytes,1,opt,name=min,proto3" json:"min,omitempty"`
 	// Upper bound of the range, exclusive; type must match min.
-	Max *Value `protobuf:"bytes,2,opt,name=max" json:"max,omitempty"`
+	Max *Value `protobuf:"bytes,2,opt,name=max,proto3" json:"max,omitempty"`
 	// Replacement value for this bucket. If not provided
 	// the default behavior will be to hyphenate the min-max range.
-	ReplacementValue     *Value   `protobuf:"bytes,3,opt,name=replacement_value,json=replacementValue" json:"replacement_value,omitempty"`
+	ReplacementValue     *Value   `protobuf:"bytes,3,opt,name=replacement_value,json=replacementValue,proto3" json:"replacement_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -6585,7 +6585,7 @@ func (m *BucketingConfig_Bucket) GetReplacementValue() *Value {
 // See [Pseudonymization](/dlp/docs/pseudonymization) for example usage.
 type CryptoReplaceFfxFpeConfig struct {
 	// The key used by the encryption algorithm. [required]
-	CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey" json:"crypto_key,omitempty"`
+	CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"`
 	// The 'tweak', a context may be used for higher security since the same
 	// identifier in two different contexts won't be given the same surrogate. If
 	// the context is not set, a default tweak will be used.
@@ -6606,7 +6606,7 @@ type CryptoReplaceFfxFpeConfig struct {
 	//
 	// - a 64 bit integer is encoded followed by a single byte of value 1
 	// - a string is encoded in UTF-8 format followed by a single byte of value 2
-	Context *FieldId `protobuf:"bytes,2,opt,name=context" json:"context,omitempty"`
+	Context *FieldId `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"`
 	// Types that are valid to be assigned to Alphabet:
 	//	*CryptoReplaceFfxFpeConfig_CommonAlphabet
 	//	*CryptoReplaceFfxFpeConfig_CustomAlphabet
@@ -6637,7 +6637,7 @@ type CryptoReplaceFfxFpeConfig struct {
 	// For example, assuming your data is entered from a regular ASCII keyboard,
 	// the symbol with the hex code point 29DD might be used like so:
 	// ⧝MY_TOKEN_TYPE
-	SurrogateInfoType    *InfoType `protobuf:"bytes,8,opt,name=surrogate_info_type,json=surrogateInfoType" json:"surrogate_info_type,omitempty"`
+	SurrogateInfoType    *InfoType `protobuf:"bytes,8,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -6672,13 +6672,13 @@ type isCryptoReplaceFfxFpeConfig_Alphabet interface {
 }
 
 type CryptoReplaceFfxFpeConfig_CommonAlphabet struct {
-	CommonAlphabet CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet `protobuf:"varint,4,opt,name=common_alphabet,json=commonAlphabet,enum=google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet,oneof"`
+	CommonAlphabet CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet `protobuf:"varint,4,opt,name=common_alphabet,json=commonAlphabet,proto3,enum=google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet,oneof"`
 }
 type CryptoReplaceFfxFpeConfig_CustomAlphabet struct {
-	CustomAlphabet string `protobuf:"bytes,5,opt,name=custom_alphabet,json=customAlphabet,oneof"`
+	CustomAlphabet string `protobuf:"bytes,5,opt,name=custom_alphabet,json=customAlphabet,proto3,oneof"`
 }
 type CryptoReplaceFfxFpeConfig_Radix struct {
-	Radix int32 `protobuf:"varint,6,opt,name=radix,oneof"`
+	Radix int32 `protobuf:"varint,6,opt,name=radix,proto3,oneof"`
 }
 
 func (*CryptoReplaceFfxFpeConfig_CommonAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {}
@@ -6858,13 +6858,13 @@ type isCryptoKey_Source interface {
 }
 
 type CryptoKey_Transient struct {
-	Transient *TransientCryptoKey `protobuf:"bytes,1,opt,name=transient,oneof"`
+	Transient *TransientCryptoKey `protobuf:"bytes,1,opt,name=transient,proto3,oneof"`
 }
 type CryptoKey_Unwrapped struct {
-	Unwrapped *UnwrappedCryptoKey `protobuf:"bytes,2,opt,name=unwrapped,oneof"`
+	Unwrapped *UnwrappedCryptoKey `protobuf:"bytes,2,opt,name=unwrapped,proto3,oneof"`
 }
 type CryptoKey_KmsWrapped struct {
-	KmsWrapped *KmsWrappedCryptoKey `protobuf:"bytes,3,opt,name=kms_wrapped,json=kmsWrapped,oneof"`
+	KmsWrapped *KmsWrappedCryptoKey `protobuf:"bytes,3,opt,name=kms_wrapped,json=kmsWrapped,proto3,oneof"`
 }
 
 func (*CryptoKey_Transient) isCryptoKey_Source()  {}
@@ -7001,7 +7001,7 @@ type TransientCryptoKey struct {
 	// protos share the same generated key if their names are the same.
 	// When the data crypto key is generated, this name is not used in any way
 	// (repeating the api call will result in a different key being generated).
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -7087,7 +7087,7 @@ type KmsWrappedCryptoKey struct {
 	// The wrapped data crypto key. [required]
 	WrappedKey []byte `protobuf:"bytes,1,opt,name=wrapped_key,json=wrappedKey,proto3" json:"wrapped_key,omitempty"`
 	// The resource name of the KMS CryptoKey to use for unwrapping. [required]
-	CryptoKeyName        string   `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName" json:"crypto_key_name,omitempty"`
+	CryptoKeyName        string   `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName,proto3" json:"crypto_key_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -7140,14 +7140,14 @@ type DateShiftConfig struct {
 	//
 	// For example, 3 means shift date to at most 3 days into the future.
 	// [Required]
-	UpperBoundDays int32 `protobuf:"varint,1,opt,name=upper_bound_days,json=upperBoundDays" json:"upper_bound_days,omitempty"`
+	UpperBoundDays int32 `protobuf:"varint,1,opt,name=upper_bound_days,json=upperBoundDays,proto3" json:"upper_bound_days,omitempty"`
 	// For example, -5 means shift date to at most 5 days back in the past.
 	// [Required]
-	LowerBoundDays int32 `protobuf:"varint,2,opt,name=lower_bound_days,json=lowerBoundDays" json:"lower_bound_days,omitempty"`
+	LowerBoundDays int32 `protobuf:"varint,2,opt,name=lower_bound_days,json=lowerBoundDays,proto3" json:"lower_bound_days,omitempty"`
 	// Points to the field that contains the context, for example, an entity id.
 	// If set, must also set method. If set, shift will be consistent for the
 	// given context.
-	Context *FieldId `protobuf:"bytes,3,opt,name=context" json:"context,omitempty"`
+	Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"`
 	// Method for calculating shift that takes context into consideration. If
 	// set, must also set context. Can only be applied to table items.
 	//
@@ -7188,7 +7188,7 @@ type isDateShiftConfig_Method interface {
 }
 
 type DateShiftConfig_CryptoKey struct {
-	CryptoKey *CryptoKey `protobuf:"bytes,4,opt,name=crypto_key,json=cryptoKey,oneof"`
+	CryptoKey *CryptoKey `protobuf:"bytes,4,opt,name=crypto_key,json=cryptoKey,proto3,oneof"`
 }
 
 func (*DateShiftConfig_CryptoKey) isDateShiftConfig_Method() {}
@@ -7290,7 +7290,7 @@ func _DateShiftConfig_OneofSizer(msg proto.Message) (n int) {
 type InfoTypeTransformations struct {
 	// Transformation for each infoType. Cannot specify more than one
 	// for a given infoType. [required]
-	Transformations      []*InfoTypeTransformations_InfoTypeTransformation `protobuf:"bytes,1,rep,name=transformations" json:"transformations,omitempty"`
+	Transformations      []*InfoTypeTransformations_InfoTypeTransformation `protobuf:"bytes,1,rep,name=transformations,proto3" json:"transformations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                          `json:"-"`
 	XXX_unrecognized     []byte                                            `json:"-"`
 	XXX_sizecache        int32                                             `json:"-"`
@@ -7332,9 +7332,9 @@ func (m *InfoTypeTransformations) GetTransformations() []*InfoTypeTransformation
 type InfoTypeTransformations_InfoTypeTransformation struct {
 	// InfoTypes to apply the transformation to. Empty list will match all
 	// available infoTypes for this transformation.
-	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes" json:"info_types,omitempty"`
+	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
 	// Primitive transformation to apply to the infoType. [required]
-	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,2,opt,name=primitive_transformation,json=primitiveTransformation" json:"primitive_transformation,omitempty"`
+	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,2,opt,name=primitive_transformation,json=primitiveTransformation,proto3" json:"primitive_transformation,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}                 `json:"-"`
 	XXX_unrecognized        []byte                   `json:"-"`
 	XXX_sizecache           int32                    `json:"-"`
@@ -7385,7 +7385,7 @@ func (m *InfoTypeTransformations_InfoTypeTransformation) GetPrimitiveTransformat
 // The transformation to apply to the field.
 type FieldTransformation struct {
 	// Input field(s) to apply the transformation to. [required]
-	Fields []*FieldId `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty"`
+	Fields []*FieldId `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
 	// Only apply the transformation if the condition evaluates to true for the
 	// given `RecordCondition`. The conditions are allowed to reference fields
 	// that are not used in the actual transformation. [optional]
@@ -7395,7 +7395,7 @@ type FieldTransformation struct {
 	// - Apply a different bucket transformation to an age column if the zip code
 	// column for the same record is within a specific range.
 	// - Redact a field if the date of birth field is greater than 85.
-	Condition *RecordCondition `protobuf:"bytes,3,opt,name=condition" json:"condition,omitempty"`
+	Condition *RecordCondition `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
 	// Transformation to apply. [required]
 	//
 	// Types that are valid to be assigned to Transformation:
@@ -7436,10 +7436,10 @@ type isFieldTransformation_Transformation interface {
 }
 
 type FieldTransformation_PrimitiveTransformation struct {
-	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,4,opt,name=primitive_transformation,json=primitiveTransformation,oneof"`
+	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,4,opt,name=primitive_transformation,json=primitiveTransformation,proto3,oneof"`
 }
 type FieldTransformation_InfoTypeTransformations struct {
-	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,5,opt,name=info_type_transformations,json=infoTypeTransformations,oneof"`
+	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,5,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"`
 }
 
 func (*FieldTransformation_PrimitiveTransformation) isFieldTransformation_Transformation() {}
@@ -7558,10 +7558,10 @@ func _FieldTransformation_OneofSizer(msg proto.Message) (n int) {
 // table.
 type RecordTransformations struct {
 	// Transform the record by applying various field transformations.
-	FieldTransformations []*FieldTransformation `protobuf:"bytes,1,rep,name=field_transformations,json=fieldTransformations" json:"field_transformations,omitempty"`
+	FieldTransformations []*FieldTransformation `protobuf:"bytes,1,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"`
 	// Configuration defining which records get suppressed entirely. Records that
 	// match any suppression rule are omitted from the output [optional].
-	RecordSuppressions   []*RecordSuppression `protobuf:"bytes,2,rep,name=record_suppressions,json=recordSuppressions" json:"record_suppressions,omitempty"`
+	RecordSuppressions   []*RecordSuppression `protobuf:"bytes,2,rep,name=record_suppressions,json=recordSuppressions,proto3" json:"record_suppressions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -7610,7 +7610,7 @@ func (m *RecordTransformations) GetRecordSuppressions() []*RecordSuppression {
 type RecordSuppression struct {
 	// A condition that when it evaluates to true will result in the record being
 	// evaluated to be suppressed from the transformed content.
-	Condition            *RecordCondition `protobuf:"bytes,1,opt,name=condition" json:"condition,omitempty"`
+	Condition            *RecordCondition `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -7651,7 +7651,7 @@ func (m *RecordSuppression) GetCondition() *RecordCondition {
 // a field.
 type RecordCondition struct {
 	// An expression.
-	Expressions          *RecordCondition_Expressions `protobuf:"bytes,3,opt,name=expressions" json:"expressions,omitempty"`
+	Expressions          *RecordCondition_Expressions `protobuf:"bytes,3,opt,name=expressions,proto3" json:"expressions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -7708,11 +7708,11 @@ func (m *RecordCondition) GetExpressions() *RecordCondition_Expressions {
 // the condition will evaluate to false.
 type RecordCondition_Condition struct {
 	// Field within the record this condition is evaluated against. [required]
-	Field *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	// Operator used to compare the field or infoType to the value. [required]
-	Operator RelationalOperator `protobuf:"varint,3,opt,name=operator,enum=google.privacy.dlp.v2.RelationalOperator" json:"operator,omitempty"`
+	Operator RelationalOperator `protobuf:"varint,3,opt,name=operator,proto3,enum=google.privacy.dlp.v2.RelationalOperator" json:"operator,omitempty"`
 	// Value to compare against. [Required, except for `EXISTS` tests.]
-	Value                *Value   `protobuf:"bytes,4,opt,name=value" json:"value,omitempty"`
+	Value                *Value   `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -7765,7 +7765,7 @@ func (m *RecordCondition_Condition) GetValue() *Value {
 
 // A collection of conditions.
 type RecordCondition_Conditions struct {
-	Conditions           []*RecordCondition_Condition `protobuf:"bytes,1,rep,name=conditions" json:"conditions,omitempty"`
+	Conditions           []*RecordCondition_Condition `protobuf:"bytes,1,rep,name=conditions,proto3" json:"conditions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -7806,7 +7806,7 @@ func (m *RecordCondition_Conditions) GetConditions() []*RecordCondition_Conditio
 type RecordCondition_Expressions struct {
 	// The operator to apply to the result of conditions. Default and currently
 	// only supported value is `AND`.
-	LogicalOperator RecordCondition_Expressions_LogicalOperator `protobuf:"varint,1,opt,name=logical_operator,json=logicalOperator,enum=google.privacy.dlp.v2.RecordCondition_Expressions_LogicalOperator" json:"logical_operator,omitempty"`
+	LogicalOperator RecordCondition_Expressions_LogicalOperator `protobuf:"varint,1,opt,name=logical_operator,json=logicalOperator,proto3,enum=google.privacy.dlp.v2.RecordCondition_Expressions_LogicalOperator" json:"logical_operator,omitempty"`
 	// Types that are valid to be assigned to Type:
 	//	*RecordCondition_Expressions_Conditions
 	Type                 isRecordCondition_Expressions_Type `protobuf_oneof:"type"`
@@ -7844,7 +7844,7 @@ type isRecordCondition_Expressions_Type interface {
 }
 
 type RecordCondition_Expressions_Conditions struct {
-	Conditions *RecordCondition_Conditions `protobuf:"bytes,3,opt,name=conditions,oneof"`
+	Conditions *RecordCondition_Conditions `protobuf:"bytes,3,opt,name=conditions,proto3,oneof"`
 }
 
 func (*RecordCondition_Expressions_Conditions) isRecordCondition_Expressions_Type() {}
@@ -7928,9 +7928,9 @@ func _RecordCondition_Expressions_OneofSizer(msg proto.Message) (n int) {
 // Overview of the modifications that occurred.
 type TransformationOverview struct {
 	// Total size in bytes that were transformed in some way.
-	TransformedBytes int64 `protobuf:"varint,2,opt,name=transformed_bytes,json=transformedBytes" json:"transformed_bytes,omitempty"`
+	TransformedBytes int64 `protobuf:"varint,2,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"`
 	// Transformations applied to the dataset.
-	TransformationSummaries []*TransformationSummary `protobuf:"bytes,3,rep,name=transformation_summaries,json=transformationSummaries" json:"transformation_summaries,omitempty"`
+	TransformationSummaries []*TransformationSummary `protobuf:"bytes,3,rep,name=transformation_summaries,json=transformationSummaries,proto3" json:"transformation_summaries,omitempty"`
 	XXX_NoUnkeyedLiteral    struct{}                 `json:"-"`
 	XXX_unrecognized        []byte                   `json:"-"`
 	XXX_sizecache           int32                    `json:"-"`
@@ -7979,20 +7979,20 @@ func (m *TransformationOverview) GetTransformationSummaries() []*TransformationS
 // will be set.
 type TransformationSummary struct {
 	// Set if the transformation was limited to a specific info_type.
-	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
+	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
 	// Set if the transformation was limited to a specific FieldId.
-	Field *FieldId `protobuf:"bytes,2,opt,name=field" json:"field,omitempty"`
+	Field *FieldId `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
 	// The specific transformation these stats apply to.
-	Transformation *PrimitiveTransformation `protobuf:"bytes,3,opt,name=transformation" json:"transformation,omitempty"`
+	Transformation *PrimitiveTransformation `protobuf:"bytes,3,opt,name=transformation,proto3" json:"transformation,omitempty"`
 	// The field transformation that was applied.
 	// If multiple field transformations are requested for a single field,
 	// this list will contain all of them; otherwise, only one is supplied.
-	FieldTransformations []*FieldTransformation `protobuf:"bytes,5,rep,name=field_transformations,json=fieldTransformations" json:"field_transformations,omitempty"`
+	FieldTransformations []*FieldTransformation `protobuf:"bytes,5,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"`
 	// The specific suppression option these stats apply to.
-	RecordSuppress *RecordSuppression                     `protobuf:"bytes,6,opt,name=record_suppress,json=recordSuppress" json:"record_suppress,omitempty"`
-	Results        []*TransformationSummary_SummaryResult `protobuf:"bytes,4,rep,name=results" json:"results,omitempty"`
+	RecordSuppress *RecordSuppression                     `protobuf:"bytes,6,opt,name=record_suppress,json=recordSuppress,proto3" json:"record_suppress,omitempty"`
+	Results        []*TransformationSummary_SummaryResult `protobuf:"bytes,4,rep,name=results,proto3" json:"results,omitempty"`
 	// Total size in bytes that were transformed in some way.
-	TransformedBytes     int64    `protobuf:"varint,7,opt,name=transformed_bytes,json=transformedBytes" json:"transformed_bytes,omitempty"`
+	TransformedBytes     int64    `protobuf:"varint,7,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -8074,11 +8074,11 @@ func (m *TransformationSummary) GetTransformedBytes() int64 {
 // A collection that informs the user the number of times a particular
 // `TransformationResultCode` and error details occurred.
 type TransformationSummary_SummaryResult struct {
-	Count int64                                          `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
-	Code  TransformationSummary_TransformationResultCode `protobuf:"varint,2,opt,name=code,enum=google.privacy.dlp.v2.TransformationSummary_TransformationResultCode" json:"code,omitempty"`
+	Count int64                                          `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
+	Code  TransformationSummary_TransformationResultCode `protobuf:"varint,2,opt,name=code,proto3,enum=google.privacy.dlp.v2.TransformationSummary_TransformationResultCode" json:"code,omitempty"`
 	// A place for warnings or errors to show up if a transformation didn't
 	// work as expected.
-	Details              string   `protobuf:"bytes,3,opt,name=details" json:"details,omitempty"`
+	Details              string   `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -8168,7 +8168,7 @@ type isSchedule_Option interface {
 }
 
 type Schedule_RecurrencePeriodDuration struct {
-	RecurrencePeriodDuration *duration.Duration `protobuf:"bytes,1,opt,name=recurrence_period_duration,json=recurrencePeriodDuration,oneof"`
+	RecurrencePeriodDuration *duration.Duration `protobuf:"bytes,1,opt,name=recurrence_period_duration,json=recurrencePeriodDuration,proto3,oneof"`
 }
 
 func (*Schedule_RecurrencePeriodDuration) isSchedule_Option() {}
@@ -8251,17 +8251,17 @@ type InspectTemplate struct {
 	// The template will have one of the following formats:
 	// `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR
 	// `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Display name (max 256 chars).
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Short description (max 256 chars).
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The creation timestamp of a inspectTemplate, output only field.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The last update timestamp of a inspectTemplate, output only field.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// The core content of the template. Configuration of the scanning process.
-	InspectConfig        *InspectConfig `protobuf:"bytes,6,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig        *InspectConfig `protobuf:"bytes,6,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -8340,17 +8340,17 @@ type DeidentifyTemplate struct {
 	// The template will have one of the following formats:
 	// `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR
 	// `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Display name (max 256 chars).
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Short description (max 256 chars).
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The creation timestamp of a inspectTemplate, output only field.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The last update timestamp of a inspectTemplate, output only field.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// ///////////// // The core content of the template  // ///////////////
-	DeidentifyConfig     *DeidentifyConfig `protobuf:"bytes,6,opt,name=deidentify_config,json=deidentifyConfig" json:"deidentify_config,omitempty"`
+	DeidentifyConfig     *DeidentifyConfig `protobuf:"bytes,6,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -8426,9 +8426,9 @@ func (m *DeidentifyTemplate) GetDeidentifyConfig() *DeidentifyConfig {
 // the results of an unsuccessful activation of the JobTrigger.
 // Output only field.
 type Error struct {
-	Details *status.Status `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
+	Details *status.Status `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"`
 	// The times the error occurred.
-	Timestamps           []*timestamp.Timestamp `protobuf:"bytes,2,rep,name=timestamps" json:"timestamps,omitempty"`
+	Timestamps           []*timestamp.Timestamp `protobuf:"bytes,2,rep,name=timestamps,proto3" json:"timestamps,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -8477,11 +8477,11 @@ type JobTrigger struct {
 	// Unique resource name for the triggeredJob, assigned by the service when the
 	// triggeredJob is created, for example
 	// `projects/dlp-test-project/triggeredJobs/53234423`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Display name (max 100 chars)
-	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// User provided description (max 256 chars)
-	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// The configuration details for the specific type of job to run.
 	//
 	// Types that are valid to be assigned to Job:
@@ -8490,20 +8490,20 @@ type JobTrigger struct {
 	// A list of triggers which will be OR'ed together. Only one in the list
 	// needs to trigger for a job to be started. The list may contain only
 	// a single Schedule trigger and must have at least one object.
-	Triggers []*JobTrigger_Trigger `protobuf:"bytes,5,rep,name=triggers" json:"triggers,omitempty"`
+	Triggers []*JobTrigger_Trigger `protobuf:"bytes,5,rep,name=triggers,proto3" json:"triggers,omitempty"`
 	// A stream of errors encountered when the trigger was activated. Repeated
 	// errors may result in the JobTrigger automaticaly being paused.
 	// Will return the last 100 errors. Whenever the JobTrigger is modified
 	// this list will be cleared. Output only field.
-	Errors []*Error `protobuf:"bytes,6,rep,name=errors" json:"errors,omitempty"`
+	Errors []*Error `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"`
 	// The creation timestamp of a triggeredJob, output only field.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// The last update timestamp of a triggeredJob, output only field.
-	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
 	// The timestamp of the last time this trigger executed, output only field.
-	LastRunTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=last_run_time,json=lastRunTime" json:"last_run_time,omitempty"`
+	LastRunTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=last_run_time,json=lastRunTime,proto3" json:"last_run_time,omitempty"`
 	// A status for this trigger. [required]
-	Status               JobTrigger_Status `protobuf:"varint,10,opt,name=status,enum=google.privacy.dlp.v2.JobTrigger_Status" json:"status,omitempty"`
+	Status               JobTrigger_Status `protobuf:"varint,10,opt,name=status,proto3,enum=google.privacy.dlp.v2.JobTrigger_Status" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -8538,7 +8538,7 @@ type isJobTrigger_Job interface {
 }
 
 type JobTrigger_InspectJob struct {
-	InspectJob *InspectJobConfig `protobuf:"bytes,4,opt,name=inspect_job,json=inspectJob,oneof"`
+	InspectJob *InspectJobConfig `protobuf:"bytes,4,opt,name=inspect_job,json=inspectJob,proto3,oneof"`
 }
 
 func (*JobTrigger_InspectJob) isJobTrigger_Job() {}
@@ -8714,7 +8714,7 @@ type isJobTrigger_Trigger_Trigger interface {
 }
 
 type JobTrigger_Trigger_Schedule struct {
-	Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,oneof"`
+	Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3,oneof"`
 }
 
 func (*JobTrigger_Trigger_Schedule) isJobTrigger_Trigger_Trigger() {}
@@ -8829,13 +8829,13 @@ type isAction_Action interface {
 }
 
 type Action_SaveFindings_ struct {
-	SaveFindings *Action_SaveFindings `protobuf:"bytes,1,opt,name=save_findings,json=saveFindings,oneof"`
+	SaveFindings *Action_SaveFindings `protobuf:"bytes,1,opt,name=save_findings,json=saveFindings,proto3,oneof"`
 }
 type Action_PubSub struct {
-	PubSub *Action_PublishToPubSub `protobuf:"bytes,2,opt,name=pub_sub,json=pubSub,oneof"`
+	PubSub *Action_PublishToPubSub `protobuf:"bytes,2,opt,name=pub_sub,json=pubSub,proto3,oneof"`
 }
 type Action_PublishSummaryToCscc_ struct {
-	PublishSummaryToCscc *Action_PublishSummaryToCscc `protobuf:"bytes,3,opt,name=publish_summary_to_cscc,json=publishSummaryToCscc,oneof"`
+	PublishSummaryToCscc *Action_PublishSummaryToCscc `protobuf:"bytes,3,opt,name=publish_summary_to_cscc,json=publishSummaryToCscc,proto3,oneof"`
 }
 
 func (*Action_SaveFindings_) isAction_Action()         {}
@@ -8968,7 +8968,7 @@ func _Action_OneofSizer(msg proto.Message) (n int) {
 // specified.
 // Compatible with: Inspect
 type Action_SaveFindings struct {
-	OutputConfig         *OutputStorageConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
+	OutputConfig         *OutputStorageConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -9012,7 +9012,7 @@ type Action_PublishToPubSub struct {
 	// publishing access rights to the DLP API service account executing
 	// the long running DlpJob sending the notifications.
 	// Format is projects/{project}/topics/{topic}.
-	Topic                string   `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9093,14 +9093,14 @@ var xxx_messageInfo_Action_PublishSummaryToCscc proto.InternalMessageInfo
 type CreateInspectTemplateRequest struct {
 	// The parent resource name, for example projects/my-project-id or
 	// organizations/my-org-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The InspectTemplate to create.
-	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate" json:"inspect_template,omitempty"`
+	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"`
 	// The template id can contain uppercase and lowercase letters,
 	// numbers, and hyphens; that is, it must match the regular
 	// expression: `[a-zA-Z\\d-]+`. The maximum length is 100
 	// characters. Can be empty to allow the system to generate one.
-	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId" json:"template_id,omitempty"`
+	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9156,11 +9156,11 @@ type UpdateInspectTemplateRequest struct {
 	// Resource name of organization and inspectTemplate to be updated, for
 	// example `organizations/433245324/inspectTemplates/432452342` or
 	// projects/project-id/inspectTemplates/432452342.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// New InspectTemplate value.
-	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate" json:"inspect_template,omitempty"`
+	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"`
 	// Mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -9216,7 +9216,7 @@ type GetInspectTemplateRequest struct {
 	// Resource name of the organization and inspectTemplate to be read, for
 	// example `organizations/433245324/inspectTemplates/432452342` or
 	// projects/project-id/inspectTemplates/432452342.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9257,13 +9257,13 @@ func (m *GetInspectTemplateRequest) GetName() string {
 type ListInspectTemplatesRequest struct {
 	// The parent resource name, for example projects/my-project-id or
 	// organizations/my-org-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional page token to continue retrieval. Comes from previous call
 	// to `ListInspectTemplates`.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional size of the page, can be limited by server. If zero server returns
 	// a page of max size 100.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9317,10 +9317,10 @@ func (m *ListInspectTemplatesRequest) GetPageSize() int32 {
 // Response message for ListInspectTemplates.
 type ListInspectTemplatesResponse struct {
 	// List of inspectTemplates, up to page_size in ListInspectTemplatesRequest.
-	InspectTemplates []*InspectTemplate `protobuf:"bytes,1,rep,name=inspect_templates,json=inspectTemplates" json:"inspect_templates,omitempty"`
+	InspectTemplates []*InspectTemplate `protobuf:"bytes,1,rep,name=inspect_templates,json=inspectTemplates,proto3" json:"inspect_templates,omitempty"`
 	// If the next page is available then the next page token to be used
 	// in following ListInspectTemplates request.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9369,7 +9369,7 @@ type DeleteInspectTemplateRequest struct {
 	// Resource name of the organization and inspectTemplate to be deleted, for
 	// example `organizations/433245324/inspectTemplates/432452342` or
 	// projects/project-id/inspectTemplates/432452342.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9409,14 +9409,14 @@ func (m *DeleteInspectTemplateRequest) GetName() string {
 // Request message for CreateJobTrigger.
 type CreateJobTriggerRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The JobTrigger to create.
-	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger" json:"job_trigger,omitempty"`
+	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"`
 	// The trigger id can contain uppercase and lowercase letters,
 	// numbers, and hyphens; that is, it must match the regular
 	// expression: `[a-zA-Z\\d-]+`. The maximum length is 100
 	// characters. Can be empty to allow the system to generate one.
-	TriggerId            string   `protobuf:"bytes,3,opt,name=trigger_id,json=triggerId" json:"trigger_id,omitempty"`
+	TriggerId            string   `protobuf:"bytes,3,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9471,11 +9471,11 @@ func (m *CreateJobTriggerRequest) GetTriggerId() string {
 type UpdateJobTriggerRequest struct {
 	// Resource name of the project and the triggeredJob, for example
 	// `projects/dlp-test-project/jobTriggers/53234423`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// New JobTrigger value.
-	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger" json:"job_trigger,omitempty"`
+	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"`
 	// Mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -9530,7 +9530,7 @@ func (m *UpdateJobTriggerRequest) GetUpdateMask() *field_mask.FieldMask {
 type GetJobTriggerRequest struct {
 	// Resource name of the project and the triggeredJob, for example
 	// `projects/dlp-test-project/jobTriggers/53234423`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9572,7 +9572,7 @@ func (m *GetJobTriggerRequest) GetName() string {
 // Storage.
 type CreateDlpJobRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The configuration details for the specific type of job to run.
 	//
 	// Types that are valid to be assigned to Job:
@@ -9583,7 +9583,7 @@ type CreateDlpJobRequest struct {
 	// numbers, and hyphens; that is, it must match the regular
 	// expression: `[a-zA-Z\\d-]+`. The maximum length is 100
 	// characters. Can be empty to allow the system to generate one.
-	JobId                string   `protobuf:"bytes,4,opt,name=job_id,json=jobId" json:"job_id,omitempty"`
+	JobId                string   `protobuf:"bytes,4,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9618,10 +9618,10 @@ type isCreateDlpJobRequest_Job interface {
 }
 
 type CreateDlpJobRequest_InspectJob struct {
-	InspectJob *InspectJobConfig `protobuf:"bytes,2,opt,name=inspect_job,json=inspectJob,oneof"`
+	InspectJob *InspectJobConfig `protobuf:"bytes,2,opt,name=inspect_job,json=inspectJob,proto3,oneof"`
 }
 type CreateDlpJobRequest_RiskJob struct {
-	RiskJob *RiskAnalysisJobConfig `protobuf:"bytes,3,opt,name=risk_job,json=riskJob,oneof"`
+	RiskJob *RiskAnalysisJobConfig `protobuf:"bytes,3,opt,name=risk_job,json=riskJob,proto3,oneof"`
 }
 
 func (*CreateDlpJobRequest_InspectJob) isCreateDlpJobRequest_Job() {}
@@ -9739,13 +9739,13 @@ func _CreateDlpJobRequest_OneofSizer(msg proto.Message) (n int) {
 // Request message for ListJobTriggers.
 type ListJobTriggersRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional page token to continue retrieval. Comes from previous call
 	// to ListJobTriggers. `order_by` and `filter` should not change for
 	// subsequent calls, but can be omitted if token is specified.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional size of the page, can be limited by a server.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// Optional comma separated list of triggeredJob fields to order by,
 	// followed by 'asc/desc' postfix, i.e.
 	// `"create_time asc,name desc,schedule_mode asc"`. This list is
@@ -9759,7 +9759,7 @@ type ListJobTriggersRequest struct {
 	// - `update_time`: corresponds to time the triggeredJob was last updated.
 	// - `name`: corresponds to JobTrigger's display name.
 	// - `status`: corresponds to the triggeredJob status.
-	OrderBy              string   `protobuf:"bytes,4,opt,name=order_by,json=orderBy" json:"order_by,omitempty"`
+	OrderBy              string   `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9820,10 +9820,10 @@ func (m *ListJobTriggersRequest) GetOrderBy() string {
 // Response message for ListJobTriggers.
 type ListJobTriggersResponse struct {
 	// List of triggeredJobs, up to page_size in ListJobTriggersRequest.
-	JobTriggers []*JobTrigger `protobuf:"bytes,1,rep,name=job_triggers,json=jobTriggers" json:"job_triggers,omitempty"`
+	JobTriggers []*JobTrigger `protobuf:"bytes,1,rep,name=job_triggers,json=jobTriggers,proto3" json:"job_triggers,omitempty"`
 	// If the next page is available then the next page token to be used
 	// in following ListJobTriggers request.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9871,7 +9871,7 @@ func (m *ListJobTriggersResponse) GetNextPageToken() string {
 type DeleteJobTriggerRequest struct {
 	// Resource name of the project and the triggeredJob, for example
 	// `projects/dlp-test-project/jobTriggers/53234423`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -9910,16 +9910,16 @@ func (m *DeleteJobTriggerRequest) GetName() string {
 
 type InspectJobConfig struct {
 	// The data to scan.
-	StorageConfig *StorageConfig `protobuf:"bytes,1,opt,name=storage_config,json=storageConfig" json:"storage_config,omitempty"`
+	StorageConfig *StorageConfig `protobuf:"bytes,1,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
 	// How and what to scan for.
-	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
+	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
 	// If provided, will be used as the default for all values in InspectConfig.
 	// `inspect_config` will be merged into the values persisted as part of the
 	// template.
-	InspectTemplateName string `protobuf:"bytes,3,opt,name=inspect_template_name,json=inspectTemplateName" json:"inspect_template_name,omitempty"`
+	InspectTemplateName string `protobuf:"bytes,3,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
 	// Actions to execute at the completion of the job. Are executed in the order
 	// provided.
-	Actions              []*Action `protobuf:"bytes,4,rep,name=actions" json:"actions,omitempty"`
+	Actions              []*Action `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -9980,26 +9980,26 @@ func (m *InspectJobConfig) GetActions() []*Action {
 // Combines all of the information about a DLP job.
 type DlpJob struct {
 	// The server-assigned name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The type of job.
-	Type DlpJobType `protobuf:"varint,2,opt,name=type,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
+	Type DlpJobType `protobuf:"varint,2,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
 	// State of a job.
-	State DlpJob_JobState `protobuf:"varint,3,opt,name=state,enum=google.privacy.dlp.v2.DlpJob_JobState" json:"state,omitempty"`
+	State DlpJob_JobState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.DlpJob_JobState" json:"state,omitempty"`
 	// Types that are valid to be assigned to Details:
 	//	*DlpJob_RiskDetails
 	//	*DlpJob_InspectDetails
 	Details isDlpJob_Details `protobuf_oneof:"details"`
 	// Time when the job was created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Time when the job started.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Time when the job finished.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// If created by a job trigger, the resource name of the trigger that
 	// instantiated the job.
-	JobTriggerName string `protobuf:"bytes,10,opt,name=job_trigger_name,json=jobTriggerName" json:"job_trigger_name,omitempty"`
+	JobTriggerName string `protobuf:"bytes,10,opt,name=job_trigger_name,json=jobTriggerName,proto3" json:"job_trigger_name,omitempty"`
 	// A stream of errors encountered running the job.
-	Errors               []*Error `protobuf:"bytes,11,rep,name=errors" json:"errors,omitempty"`
+	Errors               []*Error `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10034,10 +10034,10 @@ type isDlpJob_Details interface {
 }
 
 type DlpJob_RiskDetails struct {
-	RiskDetails *AnalyzeDataSourceRiskDetails `protobuf:"bytes,4,opt,name=risk_details,json=riskDetails,oneof"`
+	RiskDetails *AnalyzeDataSourceRiskDetails `protobuf:"bytes,4,opt,name=risk_details,json=riskDetails,proto3,oneof"`
 }
 type DlpJob_InspectDetails struct {
-	InspectDetails *InspectDataSourceDetails `protobuf:"bytes,5,opt,name=inspect_details,json=inspectDetails,oneof"`
+	InspectDetails *InspectDataSourceDetails `protobuf:"bytes,5,opt,name=inspect_details,json=inspectDetails,proto3,oneof"`
 }
 
 func (*DlpJob_RiskDetails) isDlpJob_Details()    {}
@@ -10197,7 +10197,7 @@ func _DlpJob_OneofSizer(msg proto.Message) (n int) {
 // The request message for [DlpJobs.GetDlpJob][].
 type GetDlpJobRequest struct {
 	// The name of the DlpJob resource.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10237,7 +10237,7 @@ func (m *GetDlpJobRequest) GetName() string {
 // The request message for listing DLP jobs.
 type ListDlpJobsRequest struct {
 	// The parent resource name, for example projects/my-project-id.
-	Parent string `protobuf:"bytes,4,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional. Allows filtering.
 	//
 	// Supported syntax:
@@ -10261,13 +10261,13 @@ type ListDlpJobsRequest struct {
 	// * inspected_storage = cloud_storage AND (state = done OR state = canceled)
 	//
 	// The length of this field should be no more than 500 characters.
-	Filter string `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The standard list page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The standard list page token.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The type of job. Defaults to `DlpJobType.INSPECT`
-	Type                 DlpJobType `protobuf:"varint,5,opt,name=type,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
+	Type                 DlpJobType `protobuf:"varint,5,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -10335,9 +10335,9 @@ func (m *ListDlpJobsRequest) GetType() DlpJobType {
 // The response message for listing DLP jobs.
 type ListDlpJobsResponse struct {
 	// A list of DlpJobs that matches the specified filter in the request.
-	Jobs []*DlpJob `protobuf:"bytes,1,rep,name=jobs" json:"jobs,omitempty"`
+	Jobs []*DlpJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
 	// The standard List next-page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10384,7 +10384,7 @@ func (m *ListDlpJobsResponse) GetNextPageToken() string {
 // The request message for canceling a DLP job.
 type CancelDlpJobRequest struct {
 	// The name of the DlpJob resource to be cancelled.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10424,7 +10424,7 @@ func (m *CancelDlpJobRequest) GetName() string {
 // The request message for deleting a DLP job.
 type DeleteDlpJobRequest struct {
 	// The name of the DlpJob resource to be deleted.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10465,14 +10465,14 @@ func (m *DeleteDlpJobRequest) GetName() string {
 type CreateDeidentifyTemplateRequest struct {
 	// The parent resource name, for example projects/my-project-id or
 	// organizations/my-org-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// The DeidentifyTemplate to create.
-	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate" json:"deidentify_template,omitempty"`
+	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"`
 	// The template id can contain uppercase and lowercase letters,
 	// numbers, and hyphens; that is, it must match the regular
 	// expression: `[a-zA-Z\\d-]+`. The maximum length is 100
 	// characters. Can be empty to allow the system to generate one.
-	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId" json:"template_id,omitempty"`
+	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10528,11 +10528,11 @@ type UpdateDeidentifyTemplateRequest struct {
 	// Resource name of organization and deidentify template to be updated, for
 	// example `organizations/433245324/deidentifyTemplates/432452342` or
 	// projects/project-id/deidentifyTemplates/432452342.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// New DeidentifyTemplate value.
-	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate" json:"deidentify_template,omitempty"`
+	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"`
 	// Mask to control which fields get updated.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -10588,7 +10588,7 @@ type GetDeidentifyTemplateRequest struct {
 	// Resource name of the organization and deidentify template to be read, for
 	// example `organizations/433245324/deidentifyTemplates/432452342` or
 	// projects/project-id/deidentifyTemplates/432452342.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10629,13 +10629,13 @@ func (m *GetDeidentifyTemplateRequest) GetName() string {
 type ListDeidentifyTemplatesRequest struct {
 	// The parent resource name, for example projects/my-project-id or
 	// organizations/my-org-id.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Optional page token to continue retrieval. Comes from previous call
 	// to `ListDeidentifyTemplates`.
-	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// Optional size of the page, can be limited by server. If zero server returns
 	// a page of max size 100.
-	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10690,10 +10690,10 @@ func (m *ListDeidentifyTemplatesRequest) GetPageSize() int32 {
 type ListDeidentifyTemplatesResponse struct {
 	// List of deidentify templates, up to page_size in
 	// ListDeidentifyTemplatesRequest.
-	DeidentifyTemplates []*DeidentifyTemplate `protobuf:"bytes,1,rep,name=deidentify_templates,json=deidentifyTemplates" json:"deidentify_templates,omitempty"`
+	DeidentifyTemplates []*DeidentifyTemplate `protobuf:"bytes,1,rep,name=deidentify_templates,json=deidentifyTemplates,proto3" json:"deidentify_templates,omitempty"`
 	// If the next page is available then the next page token to be used
 	// in following ListDeidentifyTemplates request.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -10742,7 +10742,7 @@ type DeleteDeidentifyTemplateRequest struct {
 	// Resource name of the organization and deidentify template to be deleted,
 	// for example `organizations/433245324/deidentifyTemplates/432452342` or
 	// projects/project-id/deidentifyTemplates/432452342.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -11238,8 +11238,7 @@ func (c *dlpServiceClient) CancelDlpJob(ctx context.Context, in *CancelDlpJobReq
 	return out, nil
 }
 
-// Server API for DlpService service
-
+// DlpServiceServer is the server API for DlpService service.
 type DlpServiceServer interface {
 	// Finds potentially sensitive info in content.
 	// This method has limits on input size, processing time, and output size.
diff --git a/googleapis/privacy/dlp/v2/storage.pb.go b/googleapis/privacy/dlp/v2/storage.pb.go
index ade4661a3300fb3e64a516c98250a87e07468653..c0ec028ab87835b3a90a7a5be56997e2f7be72cd 100644
--- a/googleapis/privacy/dlp/v2/storage.pb.go
+++ b/googleapis/privacy/dlp/v2/storage.pb.go
@@ -162,7 +162,7 @@ func (BigQueryOptions_SampleMethod) EnumDescriptor() ([]byte, []int) {
 // Type of information detected by the API.
 type InfoType struct {
 	// Name of the information type.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -204,11 +204,11 @@ func (m *InfoType) GetName() string {
 type CustomInfoType struct {
 	// Info type configuration. All custom info types must have configurations
 	// that do not conflict with built-in info types or other custom info types.
-	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
+	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
 	// Likelihood to return for this custom info type. This base value can be
 	// altered by a detection rule if the finding meets the criteria specified by
 	// the rule. Defaults to `VERY_LIKELY` if not specified.
-	Likelihood Likelihood `protobuf:"varint,6,opt,name=likelihood,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"`
+	Likelihood Likelihood `protobuf:"varint,6,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"`
 	// Types that are valid to be assigned to Type:
 	//	*CustomInfoType_Dictionary_
 	//	*CustomInfoType_Regex_
@@ -217,7 +217,7 @@ type CustomInfoType struct {
 	// Set of detection rules to apply to all findings of this custom info type.
 	// Rules are applied in order that they are specified. Not supported for the
 	// `surrogate_type` custom info type.
-	DetectionRules       []*CustomInfoType_DetectionRule `protobuf:"bytes,7,rep,name=detection_rules,json=detectionRules" json:"detection_rules,omitempty"`
+	DetectionRules       []*CustomInfoType_DetectionRule `protobuf:"bytes,7,rep,name=detection_rules,json=detectionRules,proto3" json:"detection_rules,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
 	XXX_unrecognized     []byte                          `json:"-"`
 	XXX_sizecache        int32                           `json:"-"`
@@ -252,13 +252,13 @@ type isCustomInfoType_Type interface {
 }
 
 type CustomInfoType_Dictionary_ struct {
-	Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,2,opt,name=dictionary,oneof"`
+	Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,2,opt,name=dictionary,proto3,oneof"`
 }
 type CustomInfoType_Regex_ struct {
-	Regex *CustomInfoType_Regex `protobuf:"bytes,3,opt,name=regex,oneof"`
+	Regex *CustomInfoType_Regex `protobuf:"bytes,3,opt,name=regex,proto3,oneof"`
 }
 type CustomInfoType_SurrogateType_ struct {
-	SurrogateType *CustomInfoType_SurrogateType `protobuf:"bytes,4,opt,name=surrogate_type,json=surrogateType,oneof"`
+	SurrogateType *CustomInfoType_SurrogateType `protobuf:"bytes,4,opt,name=surrogate_type,json=surrogateType,proto3,oneof"`
 }
 
 func (*CustomInfoType_Dictionary_) isCustomInfoType_Type()    {}
@@ -465,10 +465,10 @@ type isCustomInfoType_Dictionary_Source interface {
 }
 
 type CustomInfoType_Dictionary_WordList_ struct {
-	WordList *CustomInfoType_Dictionary_WordList `protobuf:"bytes,1,opt,name=word_list,json=wordList,oneof"`
+	WordList *CustomInfoType_Dictionary_WordList `protobuf:"bytes,1,opt,name=word_list,json=wordList,proto3,oneof"`
 }
 type CustomInfoType_Dictionary_CloudStoragePath struct {
-	CloudStoragePath *CloudStoragePath `protobuf:"bytes,3,opt,name=cloud_storage_path,json=cloudStoragePath,oneof"`
+	CloudStoragePath *CloudStoragePath `protobuf:"bytes,3,opt,name=cloud_storage_path,json=cloudStoragePath,proto3,oneof"`
 }
 
 func (*CustomInfoType_Dictionary_WordList_) isCustomInfoType_Dictionary_Source()        {}
@@ -574,7 +574,7 @@ type CustomInfoType_Dictionary_WordList struct {
 	// Words or phrases defining the dictionary. The dictionary must contain
 	// at least one phrase and every phrase must contain at least 2 characters
 	// that are letters or digits. [required]
-	Words                []string `protobuf:"bytes,1,rep,name=words" json:"words,omitempty"`
+	Words                []string `protobuf:"bytes,1,rep,name=words,proto3" json:"words,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -614,7 +614,7 @@ func (m *CustomInfoType_Dictionary_WordList) GetWords() []string {
 // Message defining a custom regular expression.
 type CustomInfoType_Regex struct {
 	// Pattern defining the regular expression.
-	Pattern              string   `protobuf:"bytes,1,opt,name=pattern" json:"pattern,omitempty"`
+	Pattern              string   `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -730,7 +730,7 @@ type isCustomInfoType_DetectionRule_Type interface {
 }
 
 type CustomInfoType_DetectionRule_HotwordRule_ struct {
-	HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,oneof"`
+	HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,proto3,oneof"`
 }
 
 func (*CustomInfoType_DetectionRule_HotwordRule_) isCustomInfoType_DetectionRule_Type() {}
@@ -808,9 +808,9 @@ func _CustomInfoType_DetectionRule_OneofSizer(msg proto.Message) (n int) {
 // rule.
 type CustomInfoType_DetectionRule_Proximity struct {
 	// Number of characters before the finding to consider.
-	WindowBefore int32 `protobuf:"varint,1,opt,name=window_before,json=windowBefore" json:"window_before,omitempty"`
+	WindowBefore int32 `protobuf:"varint,1,opt,name=window_before,json=windowBefore,proto3" json:"window_before,omitempty"`
 	// Number of characters after the finding to consider.
-	WindowAfter          int32    `protobuf:"varint,2,opt,name=window_after,json=windowAfter" json:"window_after,omitempty"`
+	WindowAfter          int32    `protobuf:"varint,2,opt,name=window_after,json=windowAfter,proto3" json:"window_after,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -901,10 +901,10 @@ type isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment interface {
 }
 
 type CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood struct {
-	FixedLikelihood Likelihood `protobuf:"varint,1,opt,name=fixed_likelihood,json=fixedLikelihood,enum=google.privacy.dlp.v2.Likelihood,oneof"`
+	FixedLikelihood Likelihood `protobuf:"varint,1,opt,name=fixed_likelihood,json=fixedLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood,oneof"`
 }
 type CustomInfoType_DetectionRule_LikelihoodAdjustment_RelativeLikelihood struct {
-	RelativeLikelihood int32 `protobuf:"varint,2,opt,name=relative_likelihood,json=relativeLikelihood,oneof"`
+	RelativeLikelihood int32 `protobuf:"varint,2,opt,name=relative_likelihood,json=relativeLikelihood,proto3,oneof"`
 }
 
 func (*CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood) isCustomInfoType_DetectionRule_LikelihoodAdjustment_Adjustment() {
@@ -1001,7 +1001,7 @@ func _CustomInfoType_DetectionRule_LikelihoodAdjustment_OneofSizer(msg proto.Mes
 // proximity of hotwords.
 type CustomInfoType_DetectionRule_HotwordRule struct {
 	// Regex pattern defining what qualifies as a hotword.
-	HotwordRegex *CustomInfoType_Regex `protobuf:"bytes,1,opt,name=hotword_regex,json=hotwordRegex" json:"hotword_regex,omitempty"`
+	HotwordRegex *CustomInfoType_Regex `protobuf:"bytes,1,opt,name=hotword_regex,json=hotwordRegex,proto3" json:"hotword_regex,omitempty"`
 	// Proximity of the finding within which the entire hotword must reside.
 	// The total length of the window cannot exceed 1000 characters. Note that
 	// the finding itself will be included in the window, so that hotwords may
@@ -1010,9 +1010,9 @@ type CustomInfoType_DetectionRule_HotwordRule struct {
 	// adjusted upwards if the area code is known to be the local area code of
 	// a company office using the hotword regex "\(xxx\)", where "xxx"
 	// is the area code in question.
-	Proximity *CustomInfoType_DetectionRule_Proximity `protobuf:"bytes,2,opt,name=proximity" json:"proximity,omitempty"`
+	Proximity *CustomInfoType_DetectionRule_Proximity `protobuf:"bytes,2,opt,name=proximity,proto3" json:"proximity,omitempty"`
 	// Likelihood adjustment to apply to all matching findings.
-	LikelihoodAdjustment *CustomInfoType_DetectionRule_LikelihoodAdjustment `protobuf:"bytes,3,opt,name=likelihood_adjustment,json=likelihoodAdjustment" json:"likelihood_adjustment,omitempty"`
+	LikelihoodAdjustment *CustomInfoType_DetectionRule_LikelihoodAdjustment `protobuf:"bytes,3,opt,name=likelihood_adjustment,json=likelihoodAdjustment,proto3" json:"likelihood_adjustment,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                                           `json:"-"`
 	XXX_unrecognized     []byte                                             `json:"-"`
 	XXX_sizecache        int32                                              `json:"-"`
@@ -1068,7 +1068,7 @@ func (m *CustomInfoType_DetectionRule_HotwordRule) GetLikelihoodAdjustment() *Cu
 // General identifier of a data field in a storage service.
 type FieldId struct {
 	// Name describing the field.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1113,9 +1113,9 @@ func (m *FieldId) GetName() string {
 // project ID and namespace ID.
 type PartitionId struct {
 	// The ID of the project to which the entities belong.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// If not empty, the ID of the namespace to which the entities belong.
-	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId" json:"namespace_id,omitempty"`
+	NamespaceId          string   `protobuf:"bytes,4,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1162,7 +1162,7 @@ func (m *PartitionId) GetNamespaceId() string {
 // A representation of a Datastore kind.
 type KindExpression struct {
 	// The name of the kind.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1203,9 +1203,9 @@ func (m *KindExpression) GetName() string {
 type DatastoreOptions struct {
 	// A partition ID identifies a grouping of entities. The grouping is always
 	// by project and namespace, however the namespace ID may be empty.
-	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// The kind to process.
-	Kind                 *KindExpression `protobuf:"bytes,2,opt,name=kind" json:"kind,omitempty"`
+	Kind                 *KindExpression `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -1252,19 +1252,19 @@ func (m *DatastoreOptions) GetKind() *KindExpression {
 // Options defining a file or a set of files (path ending with *) within
 // a Google Cloud Storage bucket.
 type CloudStorageOptions struct {
-	FileSet *CloudStorageOptions_FileSet `protobuf:"bytes,1,opt,name=file_set,json=fileSet" json:"file_set,omitempty"`
+	FileSet *CloudStorageOptions_FileSet `protobuf:"bytes,1,opt,name=file_set,json=fileSet,proto3" json:"file_set,omitempty"`
 	// Max number of bytes to scan from a file. If a scanned file's size is bigger
 	// than this value then the rest of the bytes are omitted.
-	BytesLimitPerFile int64 `protobuf:"varint,4,opt,name=bytes_limit_per_file,json=bytesLimitPerFile" json:"bytes_limit_per_file,omitempty"`
+	BytesLimitPerFile int64 `protobuf:"varint,4,opt,name=bytes_limit_per_file,json=bytesLimitPerFile,proto3" json:"bytes_limit_per_file,omitempty"`
 	// List of file type groups to include in the scan.
 	// If empty, all files are scanned and available data format processors
 	// are applied.
-	FileTypes    []FileType                       `protobuf:"varint,5,rep,packed,name=file_types,json=fileTypes,enum=google.privacy.dlp.v2.FileType" json:"file_types,omitempty"`
-	SampleMethod CloudStorageOptions_SampleMethod `protobuf:"varint,6,opt,name=sample_method,json=sampleMethod,enum=google.privacy.dlp.v2.CloudStorageOptions_SampleMethod" json:"sample_method,omitempty"`
+	FileTypes    []FileType                       `protobuf:"varint,5,rep,packed,name=file_types,json=fileTypes,proto3,enum=google.privacy.dlp.v2.FileType" json:"file_types,omitempty"`
+	SampleMethod CloudStorageOptions_SampleMethod `protobuf:"varint,6,opt,name=sample_method,json=sampleMethod,proto3,enum=google.privacy.dlp.v2.CloudStorageOptions_SampleMethod" json:"sample_method,omitempty"`
 	// Limits the number of files to scan to this percentage of the input FileSet.
 	// Number of files scanned is rounded down. Must be between 0 and 100,
 	// inclusively. Both 0 and 100 means no limit. Defaults to 0.
-	FilesLimitPercent    int32    `protobuf:"varint,7,opt,name=files_limit_percent,json=filesLimitPercent" json:"files_limit_percent,omitempty"`
+	FilesLimitPercent    int32    `protobuf:"varint,7,opt,name=files_limit_percent,json=filesLimitPercent,proto3" json:"files_limit_percent,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1333,7 +1333,7 @@ func (m *CloudStorageOptions) GetFilesLimitPercent() int32 {
 type CloudStorageOptions_FileSet struct {
 	// The url, in the format `gs://<bucket>/<path>`. Trailing wildcard in the
 	// path is allowed.
-	Url                  string   `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url                  string   `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1374,7 +1374,7 @@ func (m *CloudStorageOptions_FileSet) GetUrl() string {
 type CloudStoragePath struct {
 	// A url representing a file or path (no wildcards) in Cloud Storage.
 	// Example: gs://[BUCKET_NAME]/dictionary.txt
-	Path                 string   `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
+	Path                 string   `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1414,15 +1414,15 @@ func (m *CloudStoragePath) GetPath() string {
 // Options defining BigQuery table and row identifiers.
 type BigQueryOptions struct {
 	// Complete BigQuery table reference.
-	TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference" json:"table_reference,omitempty"`
+	TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference,proto3" json:"table_reference,omitempty"`
 	// References to fields uniquely identifying rows within the table.
 	// Nested fields in the format, like `person.birthdate.year`, are allowed.
-	IdentifyingFields []*FieldId `protobuf:"bytes,2,rep,name=identifying_fields,json=identifyingFields" json:"identifying_fields,omitempty"`
+	IdentifyingFields []*FieldId `protobuf:"bytes,2,rep,name=identifying_fields,json=identifyingFields,proto3" json:"identifying_fields,omitempty"`
 	// Max number of rows to scan. If the table has more rows than this value, the
 	// rest of the rows are omitted. If not set, or if set to 0, all rows will be
 	// scanned. Cannot be used in conjunction with TimespanConfig.
-	RowsLimit            int64                        `protobuf:"varint,3,opt,name=rows_limit,json=rowsLimit" json:"rows_limit,omitempty"`
-	SampleMethod         BigQueryOptions_SampleMethod `protobuf:"varint,4,opt,name=sample_method,json=sampleMethod,enum=google.privacy.dlp.v2.BigQueryOptions_SampleMethod" json:"sample_method,omitempty"`
+	RowsLimit            int64                        `protobuf:"varint,3,opt,name=rows_limit,json=rowsLimit,proto3" json:"rows_limit,omitempty"`
+	SampleMethod         BigQueryOptions_SampleMethod `protobuf:"varint,4,opt,name=sample_method,json=sampleMethod,proto3,enum=google.privacy.dlp.v2.BigQueryOptions_SampleMethod" json:"sample_method,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -1487,7 +1487,7 @@ type StorageConfig struct {
 	//	*StorageConfig_CloudStorageOptions
 	//	*StorageConfig_BigQueryOptions
 	Type                 isStorageConfig_Type          `protobuf_oneof:"type"`
-	TimespanConfig       *StorageConfig_TimespanConfig `protobuf:"bytes,6,opt,name=timespan_config,json=timespanConfig" json:"timespan_config,omitempty"`
+	TimespanConfig       *StorageConfig_TimespanConfig `protobuf:"bytes,6,opt,name=timespan_config,json=timespanConfig,proto3" json:"timespan_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
 	XXX_unrecognized     []byte                        `json:"-"`
 	XXX_sizecache        int32                         `json:"-"`
@@ -1522,13 +1522,13 @@ type isStorageConfig_Type interface {
 }
 
 type StorageConfig_DatastoreOptions struct {
-	DatastoreOptions *DatastoreOptions `protobuf:"bytes,2,opt,name=datastore_options,json=datastoreOptions,oneof"`
+	DatastoreOptions *DatastoreOptions `protobuf:"bytes,2,opt,name=datastore_options,json=datastoreOptions,proto3,oneof"`
 }
 type StorageConfig_CloudStorageOptions struct {
-	CloudStorageOptions *CloudStorageOptions `protobuf:"bytes,3,opt,name=cloud_storage_options,json=cloudStorageOptions,oneof"`
+	CloudStorageOptions *CloudStorageOptions `protobuf:"bytes,3,opt,name=cloud_storage_options,json=cloudStorageOptions,proto3,oneof"`
 }
 type StorageConfig_BigQueryOptions struct {
-	BigQueryOptions *BigQueryOptions `protobuf:"bytes,4,opt,name=big_query_options,json=bigQueryOptions,oneof"`
+	BigQueryOptions *BigQueryOptions `protobuf:"bytes,4,opt,name=big_query_options,json=bigQueryOptions,proto3,oneof"`
 }
 
 func (*StorageConfig_DatastoreOptions) isStorageConfig_Type()    {}
@@ -1667,10 +1667,10 @@ func _StorageConfig_OneofSizer(msg proto.Message) (n int) {
 // Currently only supported when inspecting Google Cloud Storage and BigQuery.
 type StorageConfig_TimespanConfig struct {
 	// Exclude files older than this value.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// Exclude files newer than this value.
 	// If set to zero, no upper time limit is applied.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Specification of the field containing the timestamp of scanned items.
 	// Required for data sources like Datastore or BigQuery.
 	// The valid data types of the timestamp field are:
@@ -1678,12 +1678,12 @@ type StorageConfig_TimespanConfig struct {
 	// for Datastore - timestamp.
 	// Datastore entity will be scanned if the timestamp property does not exist
 	// or its value is empty or invalid.
-	TimestampField *FieldId `protobuf:"bytes,3,opt,name=timestamp_field,json=timestampField" json:"timestamp_field,omitempty"`
+	TimestampField *FieldId `protobuf:"bytes,3,opt,name=timestamp_field,json=timestampField,proto3" json:"timestamp_field,omitempty"`
 	// When the job is started by a JobTrigger we will automatically figure out
 	// a valid start_time to avoid scanning files that have not been modified
 	// since the last time the JobTrigger executed. This will be based on the
 	// time of the execution of the last run of the JobTrigger.
-	EnableAutoPopulationOfTimespanConfig bool     `protobuf:"varint,4,opt,name=enable_auto_population_of_timespan_config,json=enableAutoPopulationOfTimespanConfig" json:"enable_auto_population_of_timespan_config,omitempty"`
+	EnableAutoPopulationOfTimespanConfig bool     `protobuf:"varint,4,opt,name=enable_auto_population_of_timespan_config,json=enableAutoPopulationOfTimespanConfig,proto3" json:"enable_auto_population_of_timespan_config,omitempty"`
 	XXX_NoUnkeyedLiteral                 struct{} `json:"-"`
 	XXX_unrecognized                     []byte   `json:"-"`
 	XXX_sizecache                        int32    `json:"-"`
@@ -1744,10 +1744,10 @@ func (m *StorageConfig_TimespanConfig) GetEnableAutoPopulationOfTimespanConfig()
 // Row key for identifying a record in BigQuery table.
 type BigQueryKey struct {
 	// Complete BigQuery table reference.
-	TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference" json:"table_reference,omitempty"`
+	TableReference *BigQueryTable `protobuf:"bytes,1,opt,name=table_reference,json=tableReference,proto3" json:"table_reference,omitempty"`
 	// Absolute number of the row from the beginning of the table at the time
 	// of scanning.
-	RowNumber            int64    `protobuf:"varint,2,opt,name=row_number,json=rowNumber" json:"row_number,omitempty"`
+	RowNumber            int64    `protobuf:"varint,2,opt,name=row_number,json=rowNumber,proto3" json:"row_number,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1794,7 +1794,7 @@ func (m *BigQueryKey) GetRowNumber() int64 {
 // Record key for a finding in Cloud Datastore.
 type DatastoreKey struct {
 	// Datastore entity key.
-	EntityKey            *Key     `protobuf:"bytes,1,opt,name=entity_key,json=entityKey" json:"entity_key,omitempty"`
+	EntityKey            *Key     `protobuf:"bytes,1,opt,name=entity_key,json=entityKey,proto3" json:"entity_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1839,7 +1839,7 @@ type Key struct {
 	// Entities are partitioned into subsets, currently identified by a project
 	// ID and namespace ID.
 	// Queries are scoped to a single partition.
-	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId" json:"partition_id,omitempty"`
+	PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
 	// 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
@@ -1849,7 +1849,7 @@ type Key struct {
 	// the path are called the element's _ancestors_.
 	//
 	// A path can never be empty, and a path can have at most 100 elements.
-	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path" json:"path,omitempty"`
+	Path                 []*Key_PathElement `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1902,7 +1902,7 @@ type Key_PathElement struct {
 	// A kind matching regex `__.*__` is reserved/read-only.
 	// A kind must not contain more than 1500 bytes when UTF-8 encoded.
 	// Cannot be `""`.
-	Kind string `protobuf:"bytes,1,opt,name=kind" json:"kind,omitempty"`
+	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
 	// The type of ID.
 	//
 	// Types that are valid to be assigned to IdType:
@@ -1943,10 +1943,10 @@ type isKey_PathElement_IdType interface {
 }
 
 type Key_PathElement_Id struct {
-	Id int64 `protobuf:"varint,2,opt,name=id,oneof"`
+	Id int64 `protobuf:"varint,2,opt,name=id,proto3,oneof"`
 }
 type Key_PathElement_Name struct {
-	Name string `protobuf:"bytes,3,opt,name=name,oneof"`
+	Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"`
 }
 
 func (*Key_PathElement_Id) isKey_PathElement_IdType()   {}
@@ -2085,10 +2085,10 @@ type isRecordKey_Type interface {
 }
 
 type RecordKey_DatastoreKey struct {
-	DatastoreKey *DatastoreKey `protobuf:"bytes,2,opt,name=datastore_key,json=datastoreKey,oneof"`
+	DatastoreKey *DatastoreKey `protobuf:"bytes,2,opt,name=datastore_key,json=datastoreKey,proto3,oneof"`
 }
 type RecordKey_BigQueryKey struct {
-	BigQueryKey *BigQueryKey `protobuf:"bytes,3,opt,name=big_query_key,json=bigQueryKey,oneof"`
+	BigQueryKey *BigQueryKey `protobuf:"bytes,3,opt,name=big_query_key,json=bigQueryKey,proto3,oneof"`
 }
 
 func (*RecordKey_DatastoreKey) isRecordKey_Type() {}
@@ -2197,11 +2197,11 @@ func _RecordKey_OneofSizer(msg proto.Message) (n int) {
 type BigQueryTable struct {
 	// The Google Cloud Platform project ID of the project containing the table.
 	// If omitted, project ID is inferred from the API call.
-	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Dataset ID of the table.
-	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId" json:"dataset_id,omitempty"`
+	DatasetId string `protobuf:"bytes,2,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
 	// Name of the table.
-	TableId              string   `protobuf:"bytes,3,opt,name=table_id,json=tableId" json:"table_id,omitempty"`
+	TableId              string   `protobuf:"bytes,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2259,7 +2259,7 @@ func (m *BigQueryTable) GetTableId() string {
 // into account that multiple rows correspond to the same entity.
 type EntityId struct {
 	// Composite key indicating which field contains the entity identifier.
-	Field                *FieldId `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/pubsub/v1/pubsub.pb.go b/googleapis/pubsub/v1/pubsub.pb.go
index 96690c7f4171b69fc2f0cdf892237d7b3b58a820..cd6ada11509f049faf0a23bee02ad3b8c52dccc5 100644
--- a/googleapis/pubsub/v1/pubsub.pb.go
+++ b/googleapis/pubsub/v1/pubsub.pb.go
@@ -36,9 +36,9 @@ type Topic struct {
 	// underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent
 	// signs (`%`). It must be between 3 and 255 characters in length, and it
 	// must not start with `"goog"`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// User labels.
-	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -88,16 +88,16 @@ type PubsubMessage struct {
 	// The message payload.
 	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
 	// Optional attributes for this message.
-	Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// ID of this message, assigned by the server when the message is published.
 	// Guaranteed to be unique within the topic. This value may be read by a
 	// subscriber that receives a `PubsubMessage` via a `Pull` call or a push
 	// delivery. It must not be populated by the publisher in a `Publish` call.
-	MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId" json:"message_id,omitempty"`
+	MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
 	// The time at which the message was published, populated by the server when
 	// it receives the `Publish` call. It must not be populated by the
 	// publisher in a `Publish` call.
-	PublishTime          *timestamp.Timestamp `protobuf:"bytes,4,opt,name=publish_time,json=publishTime" json:"publish_time,omitempty"`
+	PublishTime          *timestamp.Timestamp `protobuf:"bytes,4,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -159,7 +159,7 @@ func (m *PubsubMessage) GetPublishTime() *timestamp.Timestamp {
 type GetTopicRequest struct {
 	// The name of the topic to get.
 	// Format is `projects/{project}/topics/{topic}`.
-	Topic                string   `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -199,10 +199,10 @@ func (m *GetTopicRequest) GetTopic() string {
 // Request for the UpdateTopic method.
 type UpdateTopicRequest struct {
 	// The topic to update.
-	Topic *Topic `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic *Topic `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	// Indicates which fields in the provided topic to update.
 	// Must be specified and non-empty.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -250,9 +250,9 @@ func (m *UpdateTopicRequest) GetUpdateMask() *field_mask.FieldMask {
 type PublishRequest struct {
 	// The messages in the request will be published on this topic.
 	// Format is `projects/{project}/topics/{topic}`.
-	Topic string `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	// The messages to publish.
-	Messages             []*PubsubMessage `protobuf:"bytes,2,rep,name=messages" json:"messages,omitempty"`
+	Messages             []*PubsubMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -301,7 +301,7 @@ type PublishResponse struct {
 	// The server-assigned ID of each published message, in the same order as
 	// the messages in the request. IDs are guaranteed to be unique within
 	// the topic.
-	MessageIds           []string `protobuf:"bytes,1,rep,name=message_ids,json=messageIds" json:"message_ids,omitempty"`
+	MessageIds           []string `protobuf:"bytes,1,rep,name=message_ids,json=messageIds,proto3" json:"message_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -342,13 +342,13 @@ func (m *PublishResponse) GetMessageIds() []string {
 type ListTopicsRequest struct {
 	// The name of the cloud project that topics belong to.
 	// Format is `projects/{project}`.
-	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
 	// Maximum number of topics to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListTopicsResponse`; indicates that this is
 	// a continuation of a prior `ListTopics` call, and that the system should
 	// return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -402,10 +402,10 @@ func (m *ListTopicsRequest) GetPageToken() string {
 // Response for the `ListTopics` method.
 type ListTopicsResponse struct {
 	// The resulting topics.
-	Topics []*Topic `protobuf:"bytes,1,rep,name=topics" json:"topics,omitempty"`
+	Topics []*Topic `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
 	// If not empty, indicates that there may be more topics that match the
 	// request; this value should be passed in a new `ListTopicsRequest`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -453,13 +453,13 @@ func (m *ListTopicsResponse) GetNextPageToken() string {
 type ListTopicSubscriptionsRequest struct {
 	// The name of the topic that subscriptions are attached to.
 	// Format is `projects/{project}/topics/{topic}`.
-	Topic string `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	// Maximum number of subscription names to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListTopicSubscriptionsResponse`; indicates
 	// that this is a continuation of a prior `ListTopicSubscriptions` call, and
 	// that the system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -513,11 +513,11 @@ func (m *ListTopicSubscriptionsRequest) GetPageToken() string {
 // Response for the `ListTopicSubscriptions` method.
 type ListTopicSubscriptionsResponse struct {
 	// The names of the subscriptions that match the request.
-	Subscriptions []string `protobuf:"bytes,1,rep,name=subscriptions" json:"subscriptions,omitempty"`
+	Subscriptions []string `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
 	// If not empty, indicates that there may be more subscriptions that match
 	// the request; this value should be passed in a new
 	// `ListTopicSubscriptionsRequest` to get more subscriptions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -565,7 +565,7 @@ func (m *ListTopicSubscriptionsResponse) GetNextPageToken() string {
 type DeleteTopicRequest struct {
 	// Name of the topic to delete.
 	// Format is `projects/{project}/topics/{topic}`.
-	Topic                string   `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -610,16 +610,16 @@ type Subscription struct {
 	// (`[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"`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
 	// 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.
-	PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig" json:"push_config,omitempty"`
+	PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"`
 	// 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
@@ -639,21 +639,21 @@ type Subscription struct {
 	//
 	// If the subscriber never acknowledges the message, the Pub/Sub
 	// system will eventually redeliver the message.
-	AckDeadlineSeconds int32 `protobuf:"varint,5,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds" json:"ack_deadline_seconds,omitempty"`
+	AckDeadlineSeconds int32 `protobuf:"varint,5,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"`
 	// Indicates whether to retain acknowledged messages. If true, then
 	// messages are not expunged from the subscription's backlog, even if they are
 	// acknowledged, until they fall out of the `message_retention_duration`
 	// window.
-	RetainAckedMessages bool `protobuf:"varint,7,opt,name=retain_acked_messages,json=retainAckedMessages" json:"retain_acked_messages,omitempty"`
+	RetainAckedMessages bool `protobuf:"varint,7,opt,name=retain_acked_messages,json=retainAckedMessages,proto3" json:"retain_acked_messages,omitempty"`
 	// How long to retain unacknowledged messages in the subscription's backlog,
 	// from the moment a message is published.
 	// If `retain_acked_messages` is true, then this also configures the retention
 	// of acknowledged messages, and thus configures how far back in time a `Seek`
 	// can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
 	// minutes.
-	MessageRetentionDuration *duration.Duration `protobuf:"bytes,8,opt,name=message_retention_duration,json=messageRetentionDuration" json:"message_retention_duration,omitempty"`
+	MessageRetentionDuration *duration.Duration `protobuf:"bytes,8,opt,name=message_retention_duration,json=messageRetentionDuration,proto3" json:"message_retention_duration,omitempty"`
 	// User labels.
-	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -736,7 +736,7 @@ func (m *Subscription) GetLabels() map[string]string {
 type PushConfig struct {
 	// A URL locating the endpoint to which messages should be pushed.
 	// For example, a Webhook endpoint might use "https://example.com/push".
-	PushEndpoint string `protobuf:"bytes,1,opt,name=push_endpoint,json=pushEndpoint" json:"push_endpoint,omitempty"`
+	PushEndpoint string `protobuf:"bytes,1,opt,name=push_endpoint,json=pushEndpoint,proto3" json:"push_endpoint,omitempty"`
 	// Endpoint configuration attributes.
 	//
 	// Every endpoint has a set of API supported attributes that can be used to
@@ -758,7 +758,7 @@ type PushConfig struct {
 	//
 	// * `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.
-	Attributes           map[string]string `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Attributes           map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -805,9 +805,9 @@ func (m *PushConfig) GetAttributes() map[string]string {
 // A message and its corresponding acknowledgment ID.
 type ReceivedMessage struct {
 	// This ID can be used to acknowledge the received message.
-	AckId string `protobuf:"bytes,1,opt,name=ack_id,json=ackId" json:"ack_id,omitempty"`
+	AckId string `protobuf:"bytes,1,opt,name=ack_id,json=ackId,proto3" json:"ack_id,omitempty"`
 	// The message.
-	Message              *PubsubMessage `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+	Message              *PubsubMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -855,7 +855,7 @@ func (m *ReceivedMessage) GetMessage() *PubsubMessage {
 type GetSubscriptionRequest struct {
 	// The name of the subscription to get.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription         string   `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription         string   `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -895,10 +895,10 @@ func (m *GetSubscriptionRequest) GetSubscription() string {
 // Request for the UpdateSubscription method.
 type UpdateSubscriptionRequest struct {
 	// The updated subscription object.
-	Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// Indicates which fields in the provided subscription to update.
 	// Must be specified and non-empty.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -946,13 +946,13 @@ func (m *UpdateSubscriptionRequest) GetUpdateMask() *field_mask.FieldMask {
 type ListSubscriptionsRequest struct {
 	// The name of the cloud project that subscriptions belong to.
 	// Format is `projects/{project}`.
-	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
 	// Maximum number of subscriptions to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListSubscriptionsResponse`; indicates that
 	// this is a continuation of a prior `ListSubscriptions` call, and that the
 	// system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1006,11 +1006,11 @@ func (m *ListSubscriptionsRequest) GetPageToken() string {
 // Response for the `ListSubscriptions` method.
 type ListSubscriptionsResponse struct {
 	// The subscriptions that match the request.
-	Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions" json:"subscriptions,omitempty"`
+	Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
 	// If not empty, indicates that there may be more subscriptions that match
 	// the request; this value should be passed in a new
 	// `ListSubscriptionsRequest` to get more subscriptions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1058,7 +1058,7 @@ func (m *ListSubscriptionsResponse) GetNextPageToken() string {
 type DeleteSubscriptionRequest struct {
 	// The subscription to delete.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription         string   `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription         string   `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1099,14 +1099,14 @@ func (m *DeleteSubscriptionRequest) GetSubscription() string {
 type ModifyPushConfigRequest struct {
 	// The name of the subscription.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// The push configuration for future deliveries.
 	//
 	// An empty `pushConfig` indicates that the Pub/Sub system should
 	// stop pushing messages from the given subscription and allow
 	// messages to be pulled and acknowledged - effectively pausing
 	// the subscription if `Pull` is not called.
-	PushConfig           *PushConfig `protobuf:"bytes,2,opt,name=push_config,json=pushConfig" json:"push_config,omitempty"`
+	PushConfig           *PushConfig `protobuf:"bytes,2,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1154,17 +1154,17 @@ func (m *ModifyPushConfigRequest) GetPushConfig() *PushConfig {
 type PullRequest struct {
 	// The subscription from which messages should be pulled.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// If this field set to true, the system will respond immediately even if
 	// it there are no messages available to return in the `Pull` response.
 	// Otherwise, the system may wait (for a bounded amount of time) until at
 	// least one message is available, rather than returning no messages. The
 	// client may cancel the request if it does not wish to wait any longer for
 	// the response.
-	ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately" json:"return_immediately,omitempty"`
+	ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately,proto3" json:"return_immediately,omitempty"`
 	// The maximum number of messages returned for this request. The Pub/Sub
 	// system may return fewer than the number specified.
-	MaxMessages          int32    `protobuf:"varint,3,opt,name=max_messages,json=maxMessages" json:"max_messages,omitempty"`
+	MaxMessages          int32    `protobuf:"varint,3,opt,name=max_messages,json=maxMessages,proto3" json:"max_messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1221,7 +1221,7 @@ type PullResponse struct {
 	// there are no more available in the backlog. The Pub/Sub system may return
 	// fewer than the `maxMessages` requested even if there are more messages
 	// available in the backlog.
-	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages" json:"received_messages,omitempty"`
+	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages,proto3" json:"received_messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1262,9 +1262,9 @@ func (m *PullResponse) GetReceivedMessages() []*ReceivedMessage {
 type ModifyAckDeadlineRequest struct {
 	// The name of the subscription.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// List of acknowledgment IDs.
-	AckIds []string `protobuf:"bytes,4,rep,name=ack_ids,json=ackIds" json:"ack_ids,omitempty"`
+	AckIds []string `protobuf:"bytes,4,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"`
 	// The new ack deadline with respect to the time this request was sent to
 	// the Pub/Sub system. For example, if the value is 10, the new
 	// ack deadline will expire 10 seconds after the `ModifyAckDeadline` call
@@ -1272,7 +1272,7 @@ type ModifyAckDeadlineRequest struct {
 	// another pull request.
 	// The minimum deadline you can specify is 0 seconds.
 	// The maximum deadline you can specify is 600 seconds (10 minutes).
-	AckDeadlineSeconds   int32    `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds" json:"ack_deadline_seconds,omitempty"`
+	AckDeadlineSeconds   int32    `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1327,10 +1327,10 @@ func (m *ModifyAckDeadlineRequest) GetAckDeadlineSeconds() int32 {
 type AcknowledgeRequest struct {
 	// The subscription whose message is being acknowledged.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// The acknowledgment ID for the messages being acknowledged that was returned
 	// by the Pub/Sub system in the `Pull` response. Must not be empty.
-	AckIds               []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds" json:"ack_ids,omitempty"`
+	AckIds               []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1382,13 +1382,13 @@ type StreamingPullRequest struct {
 	// provided in the first request on the stream, and must not be set in
 	// subsequent requests from client to server.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// List of acknowledgement IDs for acknowledging previously received messages
 	// (received on this stream or a different stream). If an ack ID has expired,
 	// the corresponding message may be redelivered later. Acknowledging a message
 	// more than once will not result in an error. If the acknowledgement ID is
 	// malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
-	AckIds []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds" json:"ack_ids,omitempty"`
+	AckIds []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"`
 	// The list of new ack deadlines for the IDs listed in
 	// `modify_deadline_ack_ids`. The size of this list must be the same as the
 	// size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
@@ -1400,18 +1400,18 @@ type StreamingPullRequest struct {
 	// the message is immediately made available for another streaming or
 	// non-streaming pull request. If the value is < 0 (an error), the stream will
 	// be aborted with status `INVALID_ARGUMENT`.
-	ModifyDeadlineSeconds []int32 `protobuf:"varint,3,rep,packed,name=modify_deadline_seconds,json=modifyDeadlineSeconds" json:"modify_deadline_seconds,omitempty"`
+	ModifyDeadlineSeconds []int32 `protobuf:"varint,3,rep,packed,name=modify_deadline_seconds,json=modifyDeadlineSeconds,proto3" json:"modify_deadline_seconds,omitempty"`
 	// List of acknowledgement IDs whose deadline will be modified based on the
 	// corresponding element in `modify_deadline_seconds`. This field can be used
 	// to indicate that more time is needed to process a message by the
 	// subscriber, or to make the message available for redelivery if the
 	// processing was interrupted.
-	ModifyDeadlineAckIds []string `protobuf:"bytes,4,rep,name=modify_deadline_ack_ids,json=modifyDeadlineAckIds" json:"modify_deadline_ack_ids,omitempty"`
+	ModifyDeadlineAckIds []string `protobuf:"bytes,4,rep,name=modify_deadline_ack_ids,json=modifyDeadlineAckIds,proto3" json:"modify_deadline_ack_ids,omitempty"`
 	// The ack deadline to use for the stream. This must be provided in the
 	// first request on the stream, but it can also be updated on subsequent
 	// requests from client to server. The minimum deadline you can specify is 10
 	// seconds. The maximum deadline you can specify is 600 seconds (10 minutes).
-	StreamAckDeadlineSeconds int32    `protobuf:"varint,5,opt,name=stream_ack_deadline_seconds,json=streamAckDeadlineSeconds" json:"stream_ack_deadline_seconds,omitempty"`
+	StreamAckDeadlineSeconds int32    `protobuf:"varint,5,opt,name=stream_ack_deadline_seconds,json=streamAckDeadlineSeconds,proto3" json:"stream_ack_deadline_seconds,omitempty"`
 	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
 	XXX_unrecognized         []byte   `json:"-"`
 	XXX_sizecache            int32    `json:"-"`
@@ -1480,7 +1480,7 @@ func (m *StreamingPullRequest) GetStreamAckDeadlineSeconds() int32 {
 // messages from the server to the client.
 type StreamingPullResponse struct {
 	// Received Pub/Sub messages. This will not be empty.
-	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages" json:"received_messages,omitempty"`
+	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages,proto3" json:"received_messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1524,7 +1524,7 @@ type CreateSnapshotRequest struct {
 	// name for this snapshot on the same project as the subscription.
 	// Note that for REST API requests, you must specify a name.
 	// Format is `projects/{project}/snapshots/{snap}`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The subscription whose backlog the snapshot retains.
 	// Specifically, the created snapshot is guaranteed to retain:
 	//  (a) The existing backlog on the subscription. More precisely, this is
@@ -1534,7 +1534,7 @@ type CreateSnapshotRequest struct {
 	//  (b) Any messages published to the subscription's topic following the
 	//      successful completion of the CreateSnapshot request.
 	// Format is `projects/{project}/subscriptions/{sub}`.
-	Subscription         string   `protobuf:"bytes,2,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription         string   `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1581,10 +1581,10 @@ func (m *CreateSnapshotRequest) GetSubscription() string {
 // Request for the UpdateSnapshot method.
 type UpdateSnapshotRequest struct {
 	// The updated snpashot object.
-	Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot" json:"snapshot,omitempty"`
+	Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
 	// Indicates which fields in the provided snapshot to update.
 	// Must be specified and non-empty.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -1631,9 +1631,9 @@ func (m *UpdateSnapshotRequest) GetUpdateMask() *field_mask.FieldMask {
 // A snapshot resource.
 type Snapshot struct {
 	// The name of the snapshot.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the topic from which this snapshot is retaining messages.
-	Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
 	// The snapshot is guaranteed to exist up until this time.
 	// A newly-created snapshot expires no later than 7 days from the time of its
 	// creation. Its exact lifetime is determined at creation by the existing
@@ -1643,9 +1643,9 @@ type Snapshot struct {
 	// old. If a snapshot is created from this subscription, the snapshot -- which
 	// will always capture this 3-day-old backlog as long as the snapshot
 	// exists -- will expire in 4 days.
-	ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
+	ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
 	// User labels.
-	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -1707,13 +1707,13 @@ func (m *Snapshot) GetLabels() map[string]string {
 type ListSnapshotsRequest struct {
 	// The name of the cloud project that snapshots belong to.
 	// Format is `projects/{project}`.
-	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
 	// Maximum number of snapshots to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last `ListSnapshotsResponse`; indicates that this
 	// is a continuation of a prior `ListSnapshots` call, and that the system
 	// should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1767,10 +1767,10 @@ func (m *ListSnapshotsRequest) GetPageToken() string {
 // Response for the `ListSnapshots` method.
 type ListSnapshotsResponse struct {
 	// The resulting snapshots.
-	Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots" json:"snapshots,omitempty"`
+	Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
 	// If not empty, indicates that there may be more snapshot that match the
 	// request; this value should be passed in a new `ListSnapshotsRequest`.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1818,7 +1818,7 @@ func (m *ListSnapshotsResponse) GetNextPageToken() string {
 type DeleteSnapshotRequest struct {
 	// The name of the snapshot to delete.
 	// Format is `projects/{project}/snapshots/{snap}`.
-	Snapshot             string   `protobuf:"bytes,1,opt,name=snapshot" json:"snapshot,omitempty"`
+	Snapshot             string   `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1858,7 +1858,7 @@ func (m *DeleteSnapshotRequest) GetSnapshot() string {
 // Request for the `Seek` method.
 type SeekRequest struct {
 	// The subscription to affect.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// Types that are valid to be assigned to Target:
 	//	*SeekRequest_Time
 	//	*SeekRequest_Snapshot
@@ -1897,10 +1897,10 @@ type isSeekRequest_Target interface {
 }
 
 type SeekRequest_Time struct {
-	Time *timestamp.Timestamp `protobuf:"bytes,2,opt,name=time,oneof"`
+	Time *timestamp.Timestamp `protobuf:"bytes,2,opt,name=time,proto3,oneof"`
 }
 type SeekRequest_Snapshot struct {
-	Snapshot string `protobuf:"bytes,3,opt,name=snapshot,oneof"`
+	Snapshot string `protobuf:"bytes,3,opt,name=snapshot,proto3,oneof"`
 }
 
 func (*SeekRequest_Time) isSeekRequest_Target()     {}
@@ -2350,8 +2350,7 @@ func (c *subscriberClient) Seek(ctx context.Context, in *SeekRequest, opts ...gr
 	return out, nil
 }
 
-// Server API for Subscriber service
-
+// SubscriberServer is the server API for Subscriber service.
 type SubscriberServer interface {
 	// Creates a subscription to a given topic.
 	// If the subscription already exists, returns `ALREADY_EXISTS`.
@@ -2906,8 +2905,7 @@ func (c *publisherClient) DeleteTopic(ctx context.Context, in *DeleteTopicReques
 	return out, nil
 }
 
-// Server API for Publisher service
-
+// PublisherServer is the server API for Publisher service.
 type PublisherServer interface {
 	// Creates the given topic with the given name.
 	CreateTopic(context.Context, *Topic) (*Topic, error)
diff --git a/googleapis/pubsub/v1beta2/pubsub.pb.go b/googleapis/pubsub/v1beta2/pubsub.pb.go
index 7e020490d2b2af1f6b646413ec18947833a6aa91..d68a598b939f5a799a3d12d81bb0bb2d828a9f86 100644
--- a/googleapis/pubsub/v1beta2/pubsub.pb.go
+++ b/googleapis/pubsub/v1beta2/pubsub.pb.go
@@ -27,7 +27,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // A topic resource.
 type Topic struct {
 	// Name of the topic.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -70,12 +70,12 @@ type PubsubMessage struct {
 	// base64-encoded.
 	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
 	// Optional attributes for this message.
-	Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// ID of this message assigned by the server at publication time. Guaranteed
 	// to be unique within the topic. This value may be read by a subscriber
 	// that receives a PubsubMessage via a Pull call or a push delivery. It must
 	// not be populated by a publisher in a Publish call.
-	MessageId            string   `protobuf:"bytes,3,opt,name=message_id,json=messageId" json:"message_id,omitempty"`
+	MessageId            string   `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -129,7 +129,7 @@ func (m *PubsubMessage) GetMessageId() string {
 // Request for the GetTopic method.
 type GetTopicRequest struct {
 	// The name of the topic to get.
-	Topic                string   `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -169,9 +169,9 @@ func (m *GetTopicRequest) GetTopic() string {
 // Request for the Publish method.
 type PublishRequest struct {
 	// The messages in the request will be published on this topic.
-	Topic string `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	// The messages to publish.
-	Messages             []*PubsubMessage `protobuf:"bytes,2,rep,name=messages" json:"messages,omitempty"`
+	Messages             []*PubsubMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -220,7 +220,7 @@ type PublishResponse struct {
 	// The server-assigned ID of each published message, in the same order as
 	// the messages in the request. IDs are guaranteed to be unique within
 	// the topic.
-	MessageIds           []string `protobuf:"bytes,1,rep,name=message_ids,json=messageIds" json:"message_ids,omitempty"`
+	MessageIds           []string `protobuf:"bytes,1,rep,name=message_ids,json=messageIds,proto3" json:"message_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -260,13 +260,13 @@ func (m *PublishResponse) GetMessageIds() []string {
 // Request for the ListTopics method.
 type ListTopicsRequest struct {
 	// The name of the cloud project that topics belong to.
-	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
 	// Maximum number of topics to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last ListTopicsResponse; indicates that this is
 	// a continuation of a prior ListTopics call, and that the system should
 	// return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -320,10 +320,10 @@ func (m *ListTopicsRequest) GetPageToken() string {
 // Response for the ListTopics method.
 type ListTopicsResponse struct {
 	// The resulting topics.
-	Topics []*Topic `protobuf:"bytes,1,rep,name=topics" json:"topics,omitempty"`
+	Topics []*Topic `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
 	// If not empty, indicates that there may be more topics that match the
 	// request; this value should be passed in a new ListTopicsRequest.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -370,13 +370,13 @@ func (m *ListTopicsResponse) GetNextPageToken() string {
 // Request for the ListTopicSubscriptions method.
 type ListTopicSubscriptionsRequest struct {
 	// The name of the topic that subscriptions are attached to.
-	Topic string `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	// Maximum number of subscription names to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last ListTopicSubscriptionsResponse; indicates
 	// that this is a continuation of a prior ListTopicSubscriptions call, and
 	// that the system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -430,11 +430,11 @@ func (m *ListTopicSubscriptionsRequest) GetPageToken() string {
 // Response for the ListTopicSubscriptions method.
 type ListTopicSubscriptionsResponse struct {
 	// The names of the subscriptions that match the request.
-	Subscriptions []string `protobuf:"bytes,1,rep,name=subscriptions" json:"subscriptions,omitempty"`
+	Subscriptions []string `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
 	// If not empty, indicates that there may be more subscriptions that match
 	// the request; this value should be passed in a new
 	// ListTopicSubscriptionsRequest to get more subscriptions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -481,7 +481,7 @@ func (m *ListTopicSubscriptionsResponse) GetNextPageToken() string {
 // Request for the DeleteTopic method.
 type DeleteTopicRequest struct {
 	// Name of the topic to delete.
-	Topic                string   `protobuf:"bytes,1,opt,name=topic" json:"topic,omitempty"`
+	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -521,15 +521,15 @@ func (m *DeleteTopicRequest) GetTopic() string {
 // A subscription resource.
 type Subscription struct {
 	// Name of the subscription.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of the topic from which this subscription is receiving messages.
 	// This will be present if and only if the subscription has not been detached
 	// from its topic.
-	Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
+	Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
 	// 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.
-	PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig" json:"push_config,omitempty"`
+	PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"`
 	// 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
@@ -545,7 +545,7 @@ type Subscription struct {
 	//
 	// If the subscriber never acknowledges the message, the Pub/Sub
 	// system will eventually redeliver the message.
-	AckDeadlineSeconds   int32    `protobuf:"varint,5,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds" json:"ack_deadline_seconds,omitempty"`
+	AckDeadlineSeconds   int32    `protobuf:"varint,5,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -607,7 +607,7 @@ func (m *Subscription) GetAckDeadlineSeconds() int32 {
 type PushConfig struct {
 	// A URL locating the endpoint to which messages should be pushed.
 	// For example, a Webhook endpoint might use "https://example.com/push".
-	PushEndpoint string `protobuf:"bytes,1,opt,name=push_endpoint,json=pushEndpoint" json:"push_endpoint,omitempty"`
+	PushEndpoint string `protobuf:"bytes,1,opt,name=push_endpoint,json=pushEndpoint,proto3" json:"push_endpoint,omitempty"`
 	// Endpoint configuration attributes.
 	//
 	// Every endpoint has a set of API supported attributes that can be used to
@@ -631,7 +631,7 @@ type PushConfig struct {
 	// * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
 	// * `v1beta2`: uses the push format defined in the v1beta2 Pub/Sub API.
 	//
-	Attributes           map[string]string `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Attributes           map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -678,9 +678,9 @@ func (m *PushConfig) GetAttributes() map[string]string {
 // A message and its corresponding acknowledgment ID.
 type ReceivedMessage struct {
 	// This ID can be used to acknowledge the received message.
-	AckId string `protobuf:"bytes,1,opt,name=ack_id,json=ackId" json:"ack_id,omitempty"`
+	AckId string `protobuf:"bytes,1,opt,name=ack_id,json=ackId,proto3" json:"ack_id,omitempty"`
 	// The message.
-	Message              *PubsubMessage `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+	Message              *PubsubMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -727,7 +727,7 @@ func (m *ReceivedMessage) GetMessage() *PubsubMessage {
 // Request for the GetSubscription method.
 type GetSubscriptionRequest struct {
 	// The name of the subscription to get.
-	Subscription         string   `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription         string   `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -767,13 +767,13 @@ func (m *GetSubscriptionRequest) GetSubscription() string {
 // Request for the ListSubscriptions method.
 type ListSubscriptionsRequest struct {
 	// The name of the cloud project that subscriptions belong to.
-	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
+	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
 	// Maximum number of subscriptions to return.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The value returned by the last ListSubscriptionsResponse; indicates that
 	// this is a continuation of a prior ListSubscriptions call, and that the
 	// system should return the next page of data.
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -827,11 +827,11 @@ func (m *ListSubscriptionsRequest) GetPageToken() string {
 // Response for the ListSubscriptions method.
 type ListSubscriptionsResponse struct {
 	// The subscriptions that match the request.
-	Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions" json:"subscriptions,omitempty"`
+	Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
 	// If not empty, indicates that there may be more subscriptions that match
 	// the request; this value should be passed in a new ListSubscriptionsRequest
 	// to get more subscriptions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -878,7 +878,7 @@ func (m *ListSubscriptionsResponse) GetNextPageToken() string {
 // Request for the DeleteSubscription method.
 type DeleteSubscriptionRequest struct {
 	// The subscription to delete.
-	Subscription         string   `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription         string   `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -918,14 +918,14 @@ func (m *DeleteSubscriptionRequest) GetSubscription() string {
 // Request for the ModifyPushConfig method.
 type ModifyPushConfigRequest struct {
 	// The name of the subscription.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// The push configuration for future deliveries.
 	//
 	// An empty pushConfig indicates that the Pub/Sub system should
 	// stop pushing messages from the given subscription and allow
 	// messages to be pulled and acknowledged - effectively pausing
 	// the subscription if Pull is not called.
-	PushConfig           *PushConfig `protobuf:"bytes,2,opt,name=push_config,json=pushConfig" json:"push_config,omitempty"`
+	PushConfig           *PushConfig `protobuf:"bytes,2,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -972,16 +972,16 @@ func (m *ModifyPushConfigRequest) GetPushConfig() *PushConfig {
 // Request for the Pull method.
 type PullRequest struct {
 	// The subscription from which messages should be pulled.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// If this is specified as true the system will respond immediately even if
 	// it is not able to return a message in the Pull response. Otherwise the
 	// system is allowed to wait until at least one message is available rather
 	// than returning no messages. The client may cancel the request if it does
 	// not wish to wait any longer for the response.
-	ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately" json:"return_immediately,omitempty"`
+	ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately,proto3" json:"return_immediately,omitempty"`
 	// The maximum number of messages returned for this request. The Pub/Sub
 	// system may return fewer than the number specified.
-	MaxMessages          int32    `protobuf:"varint,3,opt,name=max_messages,json=maxMessages" json:"max_messages,omitempty"`
+	MaxMessages          int32    `protobuf:"varint,3,opt,name=max_messages,json=maxMessages,proto3" json:"max_messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1038,7 +1038,7 @@ type PullResponse struct {
 	// there are no more available in the backlog. The Pub/Sub system may return
 	// fewer than the maxMessages requested even if there are more messages
 	// available in the backlog.
-	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages" json:"received_messages,omitempty"`
+	ReceivedMessages     []*ReceivedMessage `protobuf:"bytes,1,rep,name=received_messages,json=receivedMessages,proto3" json:"received_messages,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -1078,15 +1078,15 @@ func (m *PullResponse) GetReceivedMessages() []*ReceivedMessage {
 // Request for the ModifyAckDeadline method.
 type ModifyAckDeadlineRequest struct {
 	// The name of the subscription.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// The acknowledgment ID.
-	AckId string `protobuf:"bytes,2,opt,name=ack_id,json=ackId" json:"ack_id,omitempty"`
+	AckId string `protobuf:"bytes,2,opt,name=ack_id,json=ackId,proto3" json:"ack_id,omitempty"`
 	// The new ack deadline with respect to the time this request was sent to the
 	// Pub/Sub system. Must be >= 0. For example, if the value is 10, the new ack
 	// deadline will expire 10 seconds after the ModifyAckDeadline call was made.
 	// Specifying zero may immediately make the message available for another pull
 	// request.
-	AckDeadlineSeconds   int32    `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds" json:"ack_deadline_seconds,omitempty"`
+	AckDeadlineSeconds   int32    `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1140,10 +1140,10 @@ func (m *ModifyAckDeadlineRequest) GetAckDeadlineSeconds() int32 {
 // Request for the Acknowledge method.
 type AcknowledgeRequest struct {
 	// The subscription whose message is being acknowledged.
-	Subscription string `protobuf:"bytes,1,opt,name=subscription" json:"subscription,omitempty"`
+	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
 	// The acknowledgment ID for the messages being acknowledged that was returned
 	// by the Pub/Sub system in the Pull response. Must not be empty.
-	AckIds               []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds" json:"ack_ids,omitempty"`
+	AckIds               []string `protobuf:"bytes,2,rep,name=ack_ids,json=ackIds,proto3" json:"ack_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1351,8 +1351,7 @@ func (c *subscriberClient) ModifyPushConfig(ctx context.Context, in *ModifyPushC
 	return out, nil
 }
 
-// Server API for Subscriber service
-
+// SubscriberServer is the server API for Subscriber service.
 type SubscriberServer interface {
 	// Creates a subscription to a given topic for a given subscriber.
 	// If the subscription already exists, returns ALREADY_EXISTS.
@@ -1673,8 +1672,7 @@ func (c *publisherClient) DeleteTopic(ctx context.Context, in *DeleteTopicReques
 	return out, nil
 }
 
-// Server API for Publisher service
-
+// PublisherServer is the server API for Publisher service.
 type PublisherServer interface {
 	// Creates the given topic with the given name.
 	CreateTopic(context.Context, *Topic) (*Topic, error)
diff --git a/googleapis/rpc/errdetails/error_details.pb.go b/googleapis/rpc/errdetails/error_details.pb.go
index 00a8c6d1278cf392c1442247b1de0ec413f56709..c65f8b40f697a705450219e5a519c7f5c337b437 100644
--- a/googleapis/rpc/errdetails/error_details.pb.go
+++ b/googleapis/rpc/errdetails/error_details.pb.go
@@ -34,7 +34,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // reached.
 type RetryInfo struct {
 	// Clients should wait at least this long between retrying the same request.
-	RetryDelay           *duration.Duration `protobuf:"bytes,1,opt,name=retry_delay,json=retryDelay" json:"retry_delay,omitempty"`
+	RetryDelay           *duration.Duration `protobuf:"bytes,1,opt,name=retry_delay,json=retryDelay,proto3" json:"retry_delay,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
 	XXX_unrecognized     []byte             `json:"-"`
 	XXX_sizecache        int32              `json:"-"`
@@ -74,9 +74,9 @@ func (m *RetryInfo) GetRetryDelay() *duration.Duration {
 // Describes additional debugging info.
 type DebugInfo struct {
 	// The stack trace entries indicating where the error occurred.
-	StackEntries []string `protobuf:"bytes,1,rep,name=stack_entries,json=stackEntries" json:"stack_entries,omitempty"`
+	StackEntries []string `protobuf:"bytes,1,rep,name=stack_entries,json=stackEntries,proto3" json:"stack_entries,omitempty"`
 	// Additional debugging information provided by the server.
-	Detail               string   `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"`
+	Detail               string   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -133,7 +133,7 @@ func (m *DebugInfo) GetDetail() string {
 // quota failure.
 type QuotaFailure struct {
 	// Describes all quota violations.
-	Violations           []*QuotaFailure_Violation `protobuf:"bytes,1,rep,name=violations" json:"violations,omitempty"`
+	Violations           []*QuotaFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
 	XXX_unrecognized     []byte                    `json:"-"`
 	XXX_sizecache        int32                     `json:"-"`
@@ -176,7 +176,7 @@ type QuotaFailure_Violation struct {
 	// The subject on which the quota check failed.
 	// For example, "clientip:<ip address of client>" or "project:<Google
 	// developer project id>".
-	Subject string `protobuf:"bytes,1,opt,name=subject" json:"subject,omitempty"`
+	Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"`
 	// A description of how the quota check failed. Clients can use this
 	// description to find more about the quota configuration in the service's
 	// public documentation, or find the relevant quota limit to adjust through
@@ -184,7 +184,7 @@ type QuotaFailure_Violation struct {
 	//
 	// For example: "Service disabled" or "Daily Limit for read operations
 	// exceeded".
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -235,7 +235,7 @@ func (m *QuotaFailure_Violation) GetDescription() string {
 // PreconditionFailure message.
 type PreconditionFailure struct {
 	// Describes all precondition violations.
-	Violations           []*PreconditionFailure_Violation `protobuf:"bytes,1,rep,name=violations" json:"violations,omitempty"`
+	Violations           []*PreconditionFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
 	XXX_unrecognized     []byte                           `json:"-"`
 	XXX_sizecache        int32                            `json:"-"`
@@ -277,16 +277,16 @@ type PreconditionFailure_Violation struct {
 	// The type of PreconditionFailure. We recommend using a service-specific
 	// enum type to define the supported precondition violation types. For
 	// example, "TOS" for "Terms of Service violation".
-	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// The subject, relative to the type, that failed.
 	// For example, "google.com/cloud" relative to the "TOS" type would
 	// indicate which terms of service is being referenced.
-	Subject string `protobuf:"bytes,2,opt,name=subject" json:"subject,omitempty"`
+	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
 	// A description of how the precondition failed. Developers can use this
 	// description to understand how to fix the failure.
 	//
 	// For example: "Terms of service not accepted".
-	Description          string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -341,7 +341,7 @@ func (m *PreconditionFailure_Violation) GetDescription() string {
 // syntactic aspects of the request.
 type BadRequest struct {
 	// Describes all violations in a client request.
-	FieldViolations      []*BadRequest_FieldViolation `protobuf:"bytes,1,rep,name=field_violations,json=fieldViolations" json:"field_violations,omitempty"`
+	FieldViolations      []*BadRequest_FieldViolation `protobuf:"bytes,1,rep,name=field_violations,json=fieldViolations,proto3" json:"field_violations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
 	XXX_unrecognized     []byte                       `json:"-"`
 	XXX_sizecache        int32                        `json:"-"`
@@ -383,9 +383,9 @@ type BadRequest_FieldViolation struct {
 	// A path leading to a field in the request body. The value will be a
 	// sequence of dot-separated identifiers that identify a protocol buffer
 	// field. E.g., "field_violations.field" would identify this field.
-	Field string `protobuf:"bytes,1,opt,name=field" json:"field,omitempty"`
+	Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 	// A description of why the request element is bad.
-	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -434,10 +434,10 @@ func (m *BadRequest_FieldViolation) GetDescription() string {
 type RequestInfo struct {
 	// An opaque string that should only be interpreted by the service generating
 	// it. For example, it can be used to identify requests in the service's logs.
-	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
+	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 	// Any data that was used to serve this request. For example, an encrypted
 	// stack trace that can be sent back to the service provider for debugging.
-	ServingData          string   `protobuf:"bytes,2,opt,name=serving_data,json=servingData" json:"serving_data,omitempty"`
+	ServingData          string   `protobuf:"bytes,2,opt,name=serving_data,json=servingData,proto3" json:"serving_data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -486,19 +486,19 @@ type ResourceInfo struct {
 	// A name for the type of resource being accessed, e.g. "sql table",
 	// "cloud storage bucket", "file", "Google calendar"; or the type URL
 	// of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic".
-	ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType" json:"resource_type,omitempty"`
+	ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
 	// The name of the resource being accessed.  For example, a shared calendar
 	// name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
 	// error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
-	ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName" json:"resource_name,omitempty"`
+	ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	// The owner of the resource (optional).
 	// For example, "user:<owner email>" or "project:<Google developer project
 	// id>".
-	Owner string `protobuf:"bytes,3,opt,name=owner" json:"owner,omitempty"`
+	Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"`
 	// Describes what error is encountered when accessing this resource.
 	// For example, updating a cloud project may require the `writer` permission
 	// on the developer console project.
-	Description          string   `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	Description          string   `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -563,7 +563,7 @@ func (m *ResourceInfo) GetDescription() string {
 // directly to the right place in the developer console to flip the bit.
 type Help struct {
 	// URL(s) pointing to additional information on handling the current error.
-	Links                []*Help_Link `protobuf:"bytes,1,rep,name=links" json:"links,omitempty"`
+	Links                []*Help_Link `protobuf:"bytes,1,rep,name=links,proto3" json:"links,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -603,9 +603,9 @@ func (m *Help) GetLinks() []*Help_Link {
 // Describes a URL link.
 type Help_Link struct {
 	// Describes what the link offers.
-	Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
 	// The URL of the link.
-	Url                  string   `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
+	Url                  string   `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -655,9 +655,9 @@ type LocalizedMessage struct {
 	// The locale used following the specification defined at
 	// http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
 	// Examples are: "en-US", "fr-CH", "es-MX"
-	Locale string `protobuf:"bytes,1,opt,name=locale" json:"locale,omitempty"`
+	Locale string `protobuf:"bytes,1,opt,name=locale,proto3" json:"locale,omitempty"`
 	// The localized error message in the above locale.
-	Message              string   `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+	Message              string   `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/rpc/status/status.pb.go b/googleapis/rpc/status/status.pb.go
index fb104e6dfb8c9f0e4e8990d7ab9e71c613e4c1c5..3b07a25b7daae843ec5078f31a2477b4f586860e 100644
--- a/googleapis/rpc/status/status.pb.go
+++ b/googleapis/rpc/status/status.pb.go
@@ -73,14 +73,14 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 //     be used directly after any stripping needed for security/privacy reasons.
 type Status struct {
 	// The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
-	Code int32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"`
+	Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
 	// 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.
-	Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	// A list of messages that carry the error details.  There is a common set of
 	// message types for APIs to use.
-	Details              []*any.Any `protobuf:"bytes,3,rep,name=details" json:"details,omitempty"`
+	Details              []*any.Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
diff --git a/googleapis/spanner/admin/database/v1/spanner_database_admin.pb.go b/googleapis/spanner/admin/database/v1/spanner_database_admin.pb.go
index eb867e79cceb1a3f43541b44480a313ad6709a32..f381072fcaded778a000c5bbe2f5fd0e5c0358a4 100644
--- a/googleapis/spanner/admin/database/v1/spanner_database_admin.pb.go
+++ b/googleapis/spanner/admin/database/v1/spanner_database_admin.pb.go
@@ -66,9 +66,9 @@ type Database struct {
 	// where `<database>` is as specified in the `CREATE DATABASE`
 	// statement. This name can be passed to other API methods to
 	// identify the database.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Output only. The current database state.
-	State                Database_State `protobuf:"varint,2,opt,name=state,enum=google.spanner.admin.database.v1.Database_State" json:"state,omitempty"`
+	State                Database_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.spanner.admin.database.v1.Database_State" json:"state,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
 	XXX_sizecache        int32          `json:"-"`
@@ -116,14 +116,14 @@ func (m *Database) GetState() Database_State {
 type ListDatabasesRequest struct {
 	// Required. The instance whose databases should be listed.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Number of databases to be returned in the response. If 0 or less,
 	// defaults to the server's maximum allowed page size.
-	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` should contain a
 	// [next_page_token][google.spanner.admin.database.v1.ListDatabasesResponse.next_page_token] from a
 	// previous [ListDatabasesResponse][google.spanner.admin.database.v1.ListDatabasesResponse].
-	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -177,11 +177,11 @@ func (m *ListDatabasesRequest) GetPageToken() string {
 // The response for [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].
 type ListDatabasesResponse struct {
 	// Databases that matched the request.
-	Databases []*Database `protobuf:"bytes,1,rep,name=databases" json:"databases,omitempty"`
+	Databases []*Database `protobuf:"bytes,1,rep,name=databases,proto3" json:"databases,omitempty"`
 	// `next_page_token` can be sent in a subsequent
 	// [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases] call to fetch more
 	// of the matching databases.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -229,18 +229,18 @@ func (m *ListDatabasesResponse) GetNextPageToken() string {
 type CreateDatabaseRequest struct {
 	// Required. The name of the instance that will serve the new database.
 	// Values are of the form `projects/<project>/instances/<instance>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// 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_\-]*[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 (`` ` ``).
-	CreateStatement string `protobuf:"bytes,2,opt,name=create_statement,json=createStatement" json:"create_statement,omitempty"`
+	CreateStatement string `protobuf:"bytes,2,opt,name=create_statement,json=createStatement,proto3" json:"create_statement,omitempty"`
 	// An optional list of DDL statements to run inside the newly created
 	// database. Statements can create tables, indexes, etc. These
 	// statements execute atomically with the creation of the database:
 	// if there is an error in any statement, the database is not created.
-	ExtraStatements      []string `protobuf:"bytes,3,rep,name=extra_statements,json=extraStatements" json:"extra_statements,omitempty"`
+	ExtraStatements      []string `protobuf:"bytes,3,rep,name=extra_statements,json=extraStatements,proto3" json:"extra_statements,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -295,7 +295,7 @@ func (m *CreateDatabaseRequest) GetExtraStatements() []string {
 // [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase].
 type CreateDatabaseMetadata struct {
 	// The database being created.
-	Database             string   `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database             string   `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -336,7 +336,7 @@ func (m *CreateDatabaseMetadata) GetDatabase() string {
 type GetDatabaseRequest struct {
 	// Required. The name of the requested database. Values are of the form
 	// `projects/<project>/instances/<instance>/databases/<database>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -391,9 +391,9 @@ func (m *GetDatabaseRequest) GetName() string {
 // details.
 type UpdateDatabaseDdlRequest struct {
 	// Required. The database to update.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// DDL statements to be applied to the database.
-	Statements []string `protobuf:"bytes,2,rep,name=statements" json:"statements,omitempty"`
+	Statements []string `protobuf:"bytes,2,rep,name=statements,proto3" json:"statements,omitempty"`
 	// If empty, the new update request is assigned an
 	// automatically-generated operation ID. Otherwise, `operation_id`
 	// is used to construct the name of the resulting
@@ -413,7 +413,7 @@ type UpdateDatabaseDdlRequest struct {
 	// underscore. If the named operation already exists,
 	// [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] returns
 	// `ALREADY_EXISTS`.
-	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
+	OperationId          string   `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -468,14 +468,14 @@ func (m *UpdateDatabaseDdlRequest) GetOperationId() string {
 // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].
 type UpdateDatabaseDdlMetadata struct {
 	// The database being modified.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// For an update this list contains all the statements. For an
 	// individual statement, this list contains only that statement.
-	Statements []string `protobuf:"bytes,2,rep,name=statements" json:"statements,omitempty"`
+	Statements []string `protobuf:"bytes,2,rep,name=statements,proto3" json:"statements,omitempty"`
 	// Reports the commit timestamps of all statements that have
 	// succeeded so far, where `commit_timestamps[i]` is the commit
 	// timestamp for the statement `statements[i]`.
-	CommitTimestamps     []*timestamp.Timestamp `protobuf:"bytes,3,rep,name=commit_timestamps,json=commitTimestamps" json:"commit_timestamps,omitempty"`
+	CommitTimestamps     []*timestamp.Timestamp `protobuf:"bytes,3,rep,name=commit_timestamps,json=commitTimestamps,proto3" json:"commit_timestamps,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
 	XXX_unrecognized     []byte                 `json:"-"`
 	XXX_sizecache        int32                  `json:"-"`
@@ -529,7 +529,7 @@ func (m *UpdateDatabaseDdlMetadata) GetCommitTimestamps() []*timestamp.Timestamp
 // The request for [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase].
 type DropDatabaseRequest struct {
 	// Required. The database to be dropped.
-	Database             string   `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database             string   `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -569,7 +569,7 @@ func (m *DropDatabaseRequest) GetDatabase() string {
 // The request for [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl].
 type GetDatabaseDdlRequest struct {
 	// Required. The database whose schema we wish to get.
-	Database             string   `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database             string   `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -610,7 +610,7 @@ func (m *GetDatabaseDdlRequest) GetDatabase() string {
 type GetDatabaseDdlResponse struct {
 	// A list of formatted DDL statements defining the schema of the database
 	// specified in the request.
-	Statements           []string `protobuf:"bytes,1,rep,name=statements" json:"statements,omitempty"`
+	Statements           []string `protobuf:"bytes,1,rep,name=statements,proto3" json:"statements,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -811,8 +811,7 @@ func (c *databaseAdminClient) TestIamPermissions(ctx context.Context, in *v1.Tes
 	return out, nil
 }
 
-// Server API for DatabaseAdmin service
-
+// DatabaseAdminServer is the server API for DatabaseAdmin service.
 type DatabaseAdminServer interface {
 	// Lists Cloud Spanner databases.
 	ListDatabases(context.Context, *ListDatabasesRequest) (*ListDatabasesResponse, error)
diff --git a/googleapis/spanner/admin/instance/v1/spanner_instance_admin.pb.go b/googleapis/spanner/admin/instance/v1/spanner_instance_admin.pb.go
index 1708a83653b1de88f343e816b4b26d046436f2ef..56dfcb240c29805fd96c6c6a1a2315a76d58d5b9 100644
--- a/googleapis/spanner/admin/instance/v1/spanner_instance_admin.pb.go
+++ b/googleapis/spanner/admin/instance/v1/spanner_instance_admin.pb.go
@@ -68,9 +68,9 @@ type InstanceConfig struct {
 	// A unique identifier for the instance configuration.  Values
 	// are of the form
 	// `projects/<project>/instanceConfigs/[a-z][-a-z0-9]*`
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The name of this instance configuration as it appears in UIs.
-	DisplayName          string   `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName          string   `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -120,27 +120,27 @@ type Instance struct {
 	// after the instance is created. Values are of the form
 	// `projects/<project>/instances/[a-z][-a-z0-9]*[a-z0-9]`. The final
 	// segment of the name must be between 6 and 30 characters in length.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Required. The name of the instance's configuration. Values are of the form
 	// `projects/<project>/instanceConfigs/<configuration>`. See
 	// also [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig] and
 	// [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs].
-	Config string `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
+	Config string `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
 	// Required. The descriptive name for this instance as it appears in UIs.
 	// Must be unique per project and between 4 and 30 characters in length.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// Required. The number of nodes allocated to this instance. This may be zero
 	// in API responses for instances that are not yet in state `READY`.
 	//
 	// See [the documentation](https://cloud.google.com/spanner/docs/instances#node_count)
 	// for more information about nodes.
-	NodeCount int32 `protobuf:"varint,5,opt,name=node_count,json=nodeCount" json:"node_count,omitempty"`
+	NodeCount int32 `protobuf:"varint,5,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
 	// Output only. The current instance state. For
 	// [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance], the state must be
 	// either omitted or set to `CREATING`. For
 	// [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance], the state must be
 	// either omitted or set to `READY`.
-	State Instance_State `protobuf:"varint,6,opt,name=state,enum=google.spanner.admin.instance.v1.Instance_State" json:"state,omitempty"`
+	State Instance_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.spanner.admin.instance.v1.Instance_State" json:"state,omitempty"`
 	// Cloud Labels are a flexible and lightweight mechanism for organizing cloud
 	// resources into groups that reflect a customer's organizational needs and
 	// deployment strategies. Cloud Labels can be used to filter collections of
@@ -162,7 +162,7 @@ type Instance struct {
 	// specific characters being disallowed.  For example, representing labels
 	// as the string:  name + "_" + value  would prove problematic if we were to
 	// allow "_" in a future release.
-	Labels               map[string]string `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels               map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -239,14 +239,14 @@ type ListInstanceConfigsRequest struct {
 	// Required. The name of the project for which a list of supported instance
 	// configurations is requested. Values are of the form
 	// `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Number of instance configurations to be returned in the response. If 0 or
 	// less, defaults to the server's maximum allowed page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` should contain a
 	// [next_page_token][google.spanner.admin.instance.v1.ListInstanceConfigsResponse.next_page_token]
 	// from a previous [ListInstanceConfigsResponse][google.spanner.admin.instance.v1.ListInstanceConfigsResponse].
-	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -300,11 +300,11 @@ func (m *ListInstanceConfigsRequest) GetPageToken() string {
 // The response for [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs].
 type ListInstanceConfigsResponse struct {
 	// The list of requested instance configurations.
-	InstanceConfigs []*InstanceConfig `protobuf:"bytes,1,rep,name=instance_configs,json=instanceConfigs" json:"instance_configs,omitempty"`
+	InstanceConfigs []*InstanceConfig `protobuf:"bytes,1,rep,name=instance_configs,json=instanceConfigs,proto3" json:"instance_configs,omitempty"`
 	// `next_page_token` can be sent in a subsequent
 	// [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs] call to
 	// fetch more of the matching instance configurations.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -353,7 +353,7 @@ func (m *ListInstanceConfigsResponse) GetNextPageToken() string {
 type GetInstanceConfigRequest struct {
 	// Required. The name of the requested instance configuration. Values are of
 	// the form `projects/<project>/instanceConfigs/<config>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -394,7 +394,7 @@ func (m *GetInstanceConfigRequest) GetName() string {
 type GetInstanceRequest struct {
 	// Required. The name of the requested instance. Values are of the form
 	// `projects/<project>/instances/<instance>`.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -435,14 +435,14 @@ func (m *GetInstanceRequest) GetName() string {
 type CreateInstanceRequest struct {
 	// Required. The name of the project in which to create the instance. Values
 	// are of the form `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Required. The ID of the instance to create.  Valid identifiers are of the
 	// form `[a-z][-a-z0-9]*[a-z0-9]` and must be between 6 and 30 characters in
 	// length.
-	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
+	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
 	// Required. The instance to create.  The name may be omitted, but if
 	// specified must be `<parent>/instances/<instance_id>`.
-	Instance             *Instance `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"`
+	Instance             *Instance `protobuf:"bytes,3,opt,name=instance,proto3" json:"instance,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -497,14 +497,14 @@ func (m *CreateInstanceRequest) GetInstance() *Instance {
 type ListInstancesRequest struct {
 	// Required. The name of the project for which a list of instances is
 	// requested. Values are of the form `projects/<project>`.
-	Parent string `protobuf:"bytes,1,opt,name=parent" json:"parent,omitempty"`
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
 	// Number of instances to be returned in the response. If 0 or less, defaults
 	// to the server's maximum allowed page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` should contain a
 	// [next_page_token][google.spanner.admin.instance.v1.ListInstancesResponse.next_page_token] from a
 	// previous [ListInstancesResponse][google.spanner.admin.instance.v1.ListInstancesResponse].
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// An expression for filtering the results of the request. Filter rules are
 	// case insensitive. The fields eligible for filtering are:
 	//
@@ -524,7 +524,7 @@ type ListInstancesRequest struct {
 	//   * `name:howl labels.env:dev` --> The instance's name contains "howl" and
 	//                                  it has the label "env" with its value
 	//                                  containing "dev".
-	Filter               string   `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -585,11 +585,11 @@ func (m *ListInstancesRequest) GetFilter() string {
 // The response for [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances].
 type ListInstancesResponse struct {
 	// The list of requested instances.
-	Instances []*Instance `protobuf:"bytes,1,rep,name=instances" json:"instances,omitempty"`
+	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
 	// `next_page_token` can be sent in a subsequent
 	// [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances] call to fetch more
 	// of the matching instances.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -637,12 +637,12 @@ func (m *ListInstancesResponse) GetNextPageToken() string {
 type UpdateInstanceRequest struct {
 	// Required. The instance to update, which must always include the instance
 	// name.  Otherwise, only fields mentioned in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included.
-	Instance *Instance `protobuf:"bytes,1,opt,name=instance" json:"instance,omitempty"`
+	Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
 	// Required. A mask specifying which fields in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be updated.
 	// The field mask must always be specified; this prevents any future fields in
 	// [][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know
 	// about them.
-	FieldMask            *field_mask.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask" json:"field_mask,omitempty"`
+	FieldMask            *field_mask.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -690,7 +690,7 @@ func (m *UpdateInstanceRequest) GetFieldMask() *field_mask.FieldMask {
 type DeleteInstanceRequest struct {
 	// Required. The name of the instance to be deleted. Values are of the form
 	// `projects/<project>/instances/<instance>`
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -731,17 +731,17 @@ func (m *DeleteInstanceRequest) GetName() string {
 // [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance].
 type CreateInstanceMetadata struct {
 	// The instance being created.
-	Instance *Instance `protobuf:"bytes,1,opt,name=instance" json:"instance,omitempty"`
+	Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
 	// The time at which the
 	// [CreateInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance] request was
 	// received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time at which this operation was cancelled. If set, this operation is
 	// in the process of undoing itself (which is guaranteed to succeed) and
 	// cannot be cancelled again.
-	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime" json:"cancel_time,omitempty"`
+	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime,proto3" json:"cancel_time,omitempty"`
 	// The time at which this operation failed or was completed successfully.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -803,16 +803,16 @@ func (m *CreateInstanceMetadata) GetEndTime() *timestamp.Timestamp {
 // [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance].
 type UpdateInstanceMetadata struct {
 	// The desired end state of the update.
-	Instance *Instance `protobuf:"bytes,1,opt,name=instance" json:"instance,omitempty"`
+	Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
 	// The time at which [UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance]
 	// request was received.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// The time at which this operation was cancelled. If set, this operation is
 	// in the process of undoing itself (which is guaranteed to succeed) and
 	// cannot be cancelled again.
-	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime" json:"cancel_time,omitempty"`
+	CancelTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=cancel_time,json=cancelTime,proto3" json:"cancel_time,omitempty"`
 	// The time at which this operation failed or was completed successfully.
-	EndTime              *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime              *timestamp.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1115,8 +1115,7 @@ func (c *instanceAdminClient) TestIamPermissions(ctx context.Context, in *v1.Tes
 	return out, nil
 }
 
-// Server API for InstanceAdmin service
-
+// InstanceAdminServer is the server API for InstanceAdmin service.
 type InstanceAdminServer interface {
 	// Lists the supported instance configurations for a given project.
 	ListInstanceConfigs(context.Context, *ListInstanceConfigsRequest) (*ListInstanceConfigsResponse, error)
diff --git a/googleapis/spanner/v1/keys.pb.go b/googleapis/spanner/v1/keys.pb.go
index a3e365db32e35b1fc2e648369e8cddef4315d933..c93e5898759d551c134a4da60130cf9a639a1066 100644
--- a/googleapis/spanner/v1/keys.pb.go
+++ b/googleapis/spanner/v1/keys.pb.go
@@ -157,16 +157,16 @@ type isKeyRange_EndKeyType interface {
 }
 
 type KeyRange_StartClosed struct {
-	StartClosed *_struct.ListValue `protobuf:"bytes,1,opt,name=start_closed,json=startClosed,oneof"`
+	StartClosed *_struct.ListValue `protobuf:"bytes,1,opt,name=start_closed,json=startClosed,proto3,oneof"`
 }
 type KeyRange_StartOpen struct {
-	StartOpen *_struct.ListValue `protobuf:"bytes,2,opt,name=start_open,json=startOpen,oneof"`
+	StartOpen *_struct.ListValue `protobuf:"bytes,2,opt,name=start_open,json=startOpen,proto3,oneof"`
 }
 type KeyRange_EndClosed struct {
-	EndClosed *_struct.ListValue `protobuf:"bytes,3,opt,name=end_closed,json=endClosed,oneof"`
+	EndClosed *_struct.ListValue `protobuf:"bytes,3,opt,name=end_closed,json=endClosed,proto3,oneof"`
 }
 type KeyRange_EndOpen struct {
-	EndOpen *_struct.ListValue `protobuf:"bytes,4,opt,name=end_open,json=endOpen,oneof"`
+	EndOpen *_struct.ListValue `protobuf:"bytes,4,opt,name=end_open,json=endOpen,proto3,oneof"`
 }
 
 func (*KeyRange_StartClosed) isKeyRange_StartKeyType() {}
@@ -351,14 +351,14 @@ type KeySet struct {
 	// 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][google.spanner.v1.TypeCode].
-	Keys []*_struct.ListValue `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+	Keys []*_struct.ListValue `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
 	// A list of key ranges. See [KeyRange][google.spanner.v1.KeyRange] for more information about
 	// key range specifications.
-	Ranges []*KeyRange `protobuf:"bytes,2,rep,name=ranges" json:"ranges,omitempty"`
+	Ranges []*KeyRange `protobuf:"bytes,2,rep,name=ranges,proto3" json:"ranges,omitempty"`
 	// 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.
-	All                  bool     `protobuf:"varint,3,opt,name=all" json:"all,omitempty"`
+	All                  bool     `protobuf:"varint,3,opt,name=all,proto3" json:"all,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/spanner/v1/mutation.pb.go b/googleapis/spanner/v1/mutation.pb.go
index fb3bdbb82b2d95b6eb33597d4ddf8c1a195707c3..e6564cf5da8b26b0c585950c484948c2d774860e 100644
--- a/googleapis/spanner/v1/mutation.pb.go
+++ b/googleapis/spanner/v1/mutation.pb.go
@@ -67,19 +67,19 @@ type isMutation_Operation interface {
 }
 
 type Mutation_Insert struct {
-	Insert *Mutation_Write `protobuf:"bytes,1,opt,name=insert,oneof"`
+	Insert *Mutation_Write `protobuf:"bytes,1,opt,name=insert,proto3,oneof"`
 }
 type Mutation_Update struct {
-	Update *Mutation_Write `protobuf:"bytes,2,opt,name=update,oneof"`
+	Update *Mutation_Write `protobuf:"bytes,2,opt,name=update,proto3,oneof"`
 }
 type Mutation_InsertOrUpdate struct {
-	InsertOrUpdate *Mutation_Write `protobuf:"bytes,3,opt,name=insert_or_update,json=insertOrUpdate,oneof"`
+	InsertOrUpdate *Mutation_Write `protobuf:"bytes,3,opt,name=insert_or_update,json=insertOrUpdate,proto3,oneof"`
 }
 type Mutation_Replace struct {
-	Replace *Mutation_Write `protobuf:"bytes,4,opt,name=replace,oneof"`
+	Replace *Mutation_Write `protobuf:"bytes,4,opt,name=replace,proto3,oneof"`
 }
 type Mutation_Delete_ struct {
-	Delete *Mutation_Delete `protobuf:"bytes,5,opt,name=delete,oneof"`
+	Delete *Mutation_Delete `protobuf:"bytes,5,opt,name=delete,proto3,oneof"`
 }
 
 func (*Mutation_Insert) isMutation_Operation()         {}
@@ -265,13 +265,13 @@ func _Mutation_OneofSizer(msg proto.Message) (n int) {
 // [replace][google.spanner.v1.Mutation.replace] operations.
 type Mutation_Write struct {
 	// Required. The table whose rows will be written.
-	Table string `protobuf:"bytes,1,opt,name=table" json:"table,omitempty"`
+	Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
 	// The names of the columns in [table][google.spanner.v1.Mutation.Write.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.
-	Columns []string `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"`
+	Columns []string `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
 	// 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
@@ -280,7 +280,7 @@ type Mutation_Write struct {
 	// `Mutation`s, each containing one `values` entry and repeating
 	// [table][google.spanner.v1.Mutation.Write.table] and [columns][google.spanner.v1.Mutation.Write.columns]. Individual values in each list are
 	// encoded as described [here][google.spanner.v1.TypeCode].
-	Values               []*_struct.ListValue `protobuf:"bytes,3,rep,name=values" json:"values,omitempty"`
+	Values               []*_struct.ListValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -334,11 +334,11 @@ func (m *Mutation_Write) GetValues() []*_struct.ListValue {
 // Arguments to [delete][google.spanner.v1.Mutation.delete] operations.
 type Mutation_Delete struct {
 	// Required. The table whose rows will be deleted.
-	Table string `protobuf:"bytes,1,opt,name=table" json:"table,omitempty"`
+	Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
 	// Required. The primary keys of the rows within [table][google.spanner.v1.Mutation.Delete.table] to delete.
 	// Delete is idempotent. The transaction will succeed even if some or all
 	// rows do not exist.
-	KeySet               *KeySet  `protobuf:"bytes,2,opt,name=key_set,json=keySet" json:"key_set,omitempty"`
+	KeySet               *KeySet  `protobuf:"bytes,2,opt,name=key_set,json=keySet,proto3" json:"key_set,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/spanner/v1/query_plan.pb.go b/googleapis/spanner/v1/query_plan.pb.go
index 063b270c7b056ba99acaf11d2a418f92f61089be..cc528a7d67d71c30a83a6154e5f8e64859b4a1ed 100644
--- a/googleapis/spanner/v1/query_plan.pb.go
+++ b/googleapis/spanner/v1/query_plan.pb.go
@@ -59,19 +59,19 @@ func (PlanNode_Kind) EnumDescriptor() ([]byte, []int) {
 // Node information for nodes appearing in a [QueryPlan.plan_nodes][google.spanner.v1.QueryPlan.plan_nodes].
 type PlanNode struct {
 	// The `PlanNode`'s index in [node list][google.spanner.v1.QueryPlan.plan_nodes].
-	Index int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
+	Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
 	// Used to determine the type of node. May be needed for visualizing
 	// different kinds of nodes differently. For example, If the node is a
 	// [SCALAR][google.spanner.v1.PlanNode.Kind.SCALAR] node, it will have a condensed representation
 	// which can be used to directly embed a description of the node in its
 	// parent.
-	Kind PlanNode_Kind `protobuf:"varint,2,opt,name=kind,enum=google.spanner.v1.PlanNode_Kind" json:"kind,omitempty"`
+	Kind PlanNode_Kind `protobuf:"varint,2,opt,name=kind,proto3,enum=google.spanner.v1.PlanNode_Kind" json:"kind,omitempty"`
 	// The display name for the node.
-	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
 	// List of child node `index`es and their relationship to this parent.
-	ChildLinks []*PlanNode_ChildLink `protobuf:"bytes,4,rep,name=child_links,json=childLinks" json:"child_links,omitempty"`
+	ChildLinks []*PlanNode_ChildLink `protobuf:"bytes,4,rep,name=child_links,json=childLinks,proto3" json:"child_links,omitempty"`
 	// Condensed representation for [SCALAR][google.spanner.v1.PlanNode.Kind.SCALAR] nodes.
-	ShortRepresentation *PlanNode_ShortRepresentation `protobuf:"bytes,5,opt,name=short_representation,json=shortRepresentation" json:"short_representation,omitempty"`
+	ShortRepresentation *PlanNode_ShortRepresentation `protobuf:"bytes,5,opt,name=short_representation,json=shortRepresentation,proto3" json:"short_representation,omitempty"`
 	// Attributes relevant to the node contained in a group of key-value pairs.
 	// For example, a Parameter Reference node could have the following
 	// information in its metadata:
@@ -80,12 +80,12 @@ type PlanNode struct {
 	//       "parameter_reference": "param1",
 	//       "parameter_type": "array"
 	//     }
-	Metadata *_struct.Struct `protobuf:"bytes,6,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata *_struct.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	// The execution statistics associated with the node, contained in a group of
 	// key-value pairs. Only present if the plan was returned as a result of a
 	// profile query. For example, number of executions, number of rows/time per
 	// execution etc.
-	ExecutionStats       *_struct.Struct `protobuf:"bytes,7,opt,name=execution_stats,json=executionStats" json:"execution_stats,omitempty"`
+	ExecutionStats       *_struct.Struct `protobuf:"bytes,7,opt,name=execution_stats,json=executionStats,proto3" json:"execution_stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -168,12 +168,12 @@ func (m *PlanNode) GetExecutionStats() *_struct.Struct {
 // [PlanNode][google.spanner.v1.PlanNode].
 type PlanNode_ChildLink struct {
 	// The node to which the link points.
-	ChildIndex int32 `protobuf:"varint,1,opt,name=child_index,json=childIndex" json:"child_index,omitempty"`
+	ChildIndex int32 `protobuf:"varint,1,opt,name=child_index,json=childIndex,proto3" json:"child_index,omitempty"`
 	// 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.
-	Type string `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
+	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
 	// Only present if the child node is [SCALAR][google.spanner.v1.PlanNode.Kind.SCALAR] and corresponds
 	// to an output variable of the parent node. The field carries the name of
 	// the output variable.
@@ -182,7 +182,7 @@ type PlanNode_ChildLink struct {
 	// 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.
-	Variable             string   `protobuf:"bytes,3,opt,name=variable" json:"variable,omitempty"`
+	Variable             string   `protobuf:"bytes,3,opt,name=variable,proto3" json:"variable,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -237,13 +237,13 @@ func (m *PlanNode_ChildLink) GetVariable() string {
 // `SCALAR` [PlanNode(s)][google.spanner.v1.PlanNode].
 type PlanNode_ShortRepresentation struct {
 	// A string representation of the expression subtree rooted at this node.
-	Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
 	// A mapping of (subquery variable name) -> (subquery node id) for cases
 	// where the `description` string of this node references a `SCALAR`
 	// subquery contained in the expression subtree rooted at this node. The
 	// referenced `SCALAR` subquery may not necessarily be a direct child of
 	// this node.
-	Subqueries           map[string]int32 `protobuf:"bytes,2,rep,name=subqueries" json:"subqueries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	Subqueries           map[string]int32 `protobuf:"bytes,2,rep,name=subqueries,proto3" json:"subqueries,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -292,7 +292,7 @@ type QueryPlan struct {
 	// The nodes in the query plan. Plan nodes are returned in pre-order starting
 	// with the plan root. Each [PlanNode][google.spanner.v1.PlanNode]'s `id` corresponds to its index in
 	// `plan_nodes`.
-	PlanNodes            []*PlanNode `protobuf:"bytes,1,rep,name=plan_nodes,json=planNodes" json:"plan_nodes,omitempty"`
+	PlanNodes            []*PlanNode `protobuf:"bytes,1,rep,name=plan_nodes,json=planNodes,proto3" json:"plan_nodes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
diff --git a/googleapis/spanner/v1/result_set.pb.go b/googleapis/spanner/v1/result_set.pb.go
index 64aed86cfe1ed3eaa21795fdae9abbc36085d01e..50f498fff089a8bdcc45f465edce40ae962df8e7 100644
--- a/googleapis/spanner/v1/result_set.pb.go
+++ b/googleapis/spanner/v1/result_set.pb.go
@@ -24,18 +24,18 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql].
 type ResultSet struct {
 	// Metadata about the result set, such as row type information.
-	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	// Each element in `rows` is a row whose format is defined by
 	// [metadata.row_type][google.spanner.v1.ResultSetMetadata.row_type]. The ith element
 	// in each row matches the ith field in
 	// [metadata.row_type][google.spanner.v1.ResultSetMetadata.row_type]. Elements are
 	// encoded based on type as described
 	// [here][google.spanner.v1.TypeCode].
-	Rows []*_struct.ListValue `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"`
+	Rows []*_struct.ListValue `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"`
 	// Query plan and execution statistics for the query that produced this
 	// result set. These can be requested by setting
 	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
-	Stats                *ResultSetStats `protobuf:"bytes,3,opt,name=stats" json:"stats,omitempty"`
+	Stats                *ResultSetStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -92,7 +92,7 @@ func (m *ResultSet) GetStats() *ResultSetStats {
 type PartialResultSet struct {
 	// Metadata about the result set, such as row type information.
 	// Only present in the first response.
-	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"`
+	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
 	// 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
@@ -166,11 +166,11 @@ type PartialResultSet struct {
 	// This sequence of `PartialResultSet`s encodes two rows, one
 	// containing the field value `"Hello"`, and a second containing the
 	// field value `"World" = "W" + "orl" + "d"`.
-	Values []*_struct.Value `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"`
+	Values []*_struct.Value `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 	// If true, then the final value in [values][google.spanner.v1.PartialResultSet.values] is chunked, and must
 	// be combined with more values from subsequent `PartialResultSet`s
 	// to obtain a complete field value.
-	ChunkedValue bool `protobuf:"varint,3,opt,name=chunked_value,json=chunkedValue" json:"chunked_value,omitempty"`
+	ChunkedValue bool `protobuf:"varint,3,opt,name=chunked_value,json=chunkedValue,proto3" json:"chunked_value,omitempty"`
 	// 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
@@ -181,7 +181,7 @@ type PartialResultSet struct {
 	// streaming result set. These can be requested by setting
 	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
 	// only once with the last response in the stream.
-	Stats                *ResultSetStats `protobuf:"bytes,5,opt,name=stats" json:"stats,omitempty"`
+	Stats                *ResultSetStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
@@ -256,10 +256,10 @@ type ResultSetMetadata struct {
 	//       { "name": "UserId", "type": { "code": "INT64" } },
 	//       { "name": "UserName", "type": { "code": "STRING" } },
 	//     ]
-	RowType *StructType `protobuf:"bytes,1,opt,name=row_type,json=rowType" json:"row_type,omitempty"`
+	RowType *StructType `protobuf:"bytes,1,opt,name=row_type,json=rowType,proto3" json:"row_type,omitempty"`
 	// If the read or SQL query began a transaction as a side-effect, the
 	// information about the new transaction is yielded here.
-	Transaction          *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction          *Transaction `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -306,7 +306,7 @@ func (m *ResultSetMetadata) GetTransaction() *Transaction {
 // Additional statistics about a [ResultSet][google.spanner.v1.ResultSet] or [PartialResultSet][google.spanner.v1.PartialResultSet].
 type ResultSetStats struct {
 	// [QueryPlan][google.spanner.v1.QueryPlan] for the query associated with this result.
-	QueryPlan *QueryPlan `protobuf:"bytes,1,opt,name=query_plan,json=queryPlan" json:"query_plan,omitempty"`
+	QueryPlan *QueryPlan `protobuf:"bytes,1,opt,name=query_plan,json=queryPlan,proto3" json:"query_plan,omitempty"`
 	// Aggregated statistics from the execution of the query. Only present when
 	// the query is profiled. For example, a query could return the statistics as
 	// follows:
@@ -316,7 +316,7 @@ type ResultSetStats struct {
 	//       "elapsed_time": "1.22 secs",
 	//       "cpu_time": "1.19 secs"
 	//     }
-	QueryStats           *_struct.Struct `protobuf:"bytes,2,opt,name=query_stats,json=queryStats" json:"query_stats,omitempty"`
+	QueryStats           *_struct.Struct `protobuf:"bytes,2,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
 	XXX_unrecognized     []byte          `json:"-"`
 	XXX_sizecache        int32           `json:"-"`
diff --git a/googleapis/spanner/v1/spanner.pb.go b/googleapis/spanner/v1/spanner.pb.go
index 74bf3f98ebfd2bc83db8ae958dbd55d586cf4cf7..59adfb7b41a9df02a4f48108e78e01c106f2eead 100644
--- a/googleapis/spanner/v1/spanner.pb.go
+++ b/googleapis/spanner/v1/spanner.pb.go
@@ -63,9 +63,9 @@ func (ExecuteSqlRequest_QueryMode) EnumDescriptor() ([]byte, []int) {
 // The request for [CreateSession][google.spanner.v1.Spanner.CreateSession].
 type CreateSessionRequest struct {
 	// Required. The database in which the new session is created.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// The session to create.
-	Session              *Session `protobuf:"bytes,2,opt,name=session" json:"session,omitempty"`
+	Session              *Session `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -113,7 +113,7 @@ func (m *CreateSessionRequest) GetSession() *Session {
 type Session struct {
 	// The name of the session. This is always system-assigned; values provided
 	// when creating a session are ignored.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The labels for the session.
 	//
 	//  * Label keys must be between 1 and 63 characters long and must conform to
@@ -123,12 +123,12 @@ type Session struct {
 	//  * No more than 64 labels can be associated with a given session.
 	//
 	// See https://goo.gl/xmQnxf for more information on and examples of labels.
-	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Output only. The timestamp when the session is created.
-	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
 	// Output only. The approximate timestamp when the session is last used. It is
 	// typically earlier than the actual last use time.
-	ApproximateLastUseTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=approximate_last_use_time,json=approximateLastUseTime" json:"approximate_last_use_time,omitempty"`
+	ApproximateLastUseTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=approximate_last_use_time,json=approximateLastUseTime,proto3" json:"approximate_last_use_time,omitempty"`
 	XXX_NoUnkeyedLiteral   struct{}             `json:"-"`
 	XXX_unrecognized       []byte               `json:"-"`
 	XXX_sizecache          int32                `json:"-"`
@@ -189,7 +189,7 @@ func (m *Session) GetApproximateLastUseTime() *timestamp.Timestamp {
 // The request for [GetSession][google.spanner.v1.Spanner.GetSession].
 type GetSessionRequest struct {
 	// Required. The name of the session to retrieve.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -229,14 +229,14 @@ func (m *GetSessionRequest) GetName() string {
 // The request for [ListSessions][google.spanner.v1.Spanner.ListSessions].
 type ListSessionsRequest struct {
 	// Required. The database in which to list sessions.
-	Database string `protobuf:"bytes,1,opt,name=database" json:"database,omitempty"`
+	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
 	// Number of sessions to be returned in the response. If 0 or less, defaults
 	// to the server's maximum allowed page size.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// If non-empty, `page_token` should contain a
 	// [next_page_token][google.spanner.v1.ListSessionsResponse.next_page_token] from a previous
 	// [ListSessionsResponse][google.spanner.v1.ListSessionsResponse].
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// An expression for filtering the results of the request. Filter rules are
 	// case insensitive. The fields eligible for filtering are:
 	//
@@ -247,7 +247,7 @@ type ListSessionsRequest struct {
 	//   * `labels.env:*` --> The session has the label "env".
 	//   * `labels.env:dev` --> The session has the label "env" and the value of
 	//                        the label contains the string "dev".
-	Filter               string   `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -308,11 +308,11 @@ func (m *ListSessionsRequest) GetFilter() string {
 // The response for [ListSessions][google.spanner.v1.Spanner.ListSessions].
 type ListSessionsResponse struct {
 	// The list of requested sessions.
-	Sessions []*Session `protobuf:"bytes,1,rep,name=sessions" json:"sessions,omitempty"`
+	Sessions []*Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
 	// `next_page_token` can be sent in a subsequent
 	// [ListSessions][google.spanner.v1.Spanner.ListSessions] call to fetch more of the matching
 	// sessions.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -359,7 +359,7 @@ func (m *ListSessionsResponse) GetNextPageToken() string {
 // The request for [DeleteSession][google.spanner.v1.Spanner.DeleteSession].
 type DeleteSessionRequest struct {
 	// Required. The name of the session to delete.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -400,12 +400,12 @@ func (m *DeleteSessionRequest) GetName() string {
 // [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql].
 type ExecuteSqlRequest struct {
 	// Required. The session in which the SQL query should be performed.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// The transaction to use. If none is provided, the default is a
 	// temporary read-only transaction with strong concurrency.
-	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	// Required. The SQL query string.
-	Sql string `protobuf:"bytes,3,opt,name=sql" json:"sql,omitempty"`
+	Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"`
 	// 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,
@@ -420,7 +420,7 @@ type ExecuteSqlRequest struct {
 	// Parameter values are specified using `params`, which is a JSON
 	// object whose keys are parameter names, and whose values are the
 	// corresponding parameter values.
-	Params *_struct.Struct `protobuf:"bytes,4,opt,name=params" json:"params,omitempty"`
+	Params *_struct.Struct `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
 	// It is not always possible for Cloud Spanner to infer the right SQL type
 	// from a JSON value.  For example, values of type `BYTES` and values
 	// of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
@@ -429,7 +429,7 @@ type ExecuteSqlRequest struct {
 	// SQL type for some or all of the SQL query parameters. See the
 	// definition of [Type][google.spanner.v1.Type] for more information
 	// about SQL types.
-	ParamTypes map[string]*Type `protobuf:"bytes,5,rep,name=param_types,json=paramTypes" json:"param_types,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ParamTypes map[string]*Type `protobuf:"bytes,5,rep,name=param_types,json=paramTypes,proto3" json:"param_types,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// If this request is resuming a previously interrupted SQL query
 	// execution, `resume_token` should be copied from the last
 	// [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
@@ -440,7 +440,7 @@ type ExecuteSqlRequest struct {
 	// Used to control the amount of debugging information returned in
 	// [ResultSetStats][google.spanner.v1.ResultSetStats]. If [partition_token][google.spanner.v1.ExecuteSqlRequest.partition_token] is set, [query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] can only
 	// be set to [QueryMode.NORMAL][google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL].
-	QueryMode ExecuteSqlRequest_QueryMode `protobuf:"varint,7,opt,name=query_mode,json=queryMode,enum=google.spanner.v1.ExecuteSqlRequest_QueryMode" json:"query_mode,omitempty"`
+	QueryMode ExecuteSqlRequest_QueryMode `protobuf:"varint,7,opt,name=query_mode,json=queryMode,proto3,enum=google.spanner.v1.ExecuteSqlRequest_QueryMode" json:"query_mode,omitempty"`
 	// If present, results will be restricted to the specified partition
 	// previously created using PartitionQuery().  There must be an exact
 	// match for the values of fields common to this message and the
@@ -540,7 +540,7 @@ type PartitionOptions struct {
 	// The desired data size for each partition generated.  The default for this
 	// option is currently 1 GiB.  This is only a hint. The actual size of each
 	// partition may be smaller or larger than this size request.
-	PartitionSizeBytes int64 `protobuf:"varint,1,opt,name=partition_size_bytes,json=partitionSizeBytes" json:"partition_size_bytes,omitempty"`
+	PartitionSizeBytes int64 `protobuf:"varint,1,opt,name=partition_size_bytes,json=partitionSizeBytes,proto3" json:"partition_size_bytes,omitempty"`
 	// **Note:** This hint is currently ignored by PartitionQuery and
 	// PartitionRead requests.
 	//
@@ -549,7 +549,7 @@ type PartitionOptions struct {
 	// is currently 10,000. The maximum value is currently 200,000.  This is only
 	// a hint.  The actual number of partitions returned may be smaller or larger
 	// than this maximum count request.
-	MaxPartitions        int64    `protobuf:"varint,2,opt,name=max_partitions,json=maxPartitions" json:"max_partitions,omitempty"`
+	MaxPartitions        int64    `protobuf:"varint,2,opt,name=max_partitions,json=maxPartitions,proto3" json:"max_partitions,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -596,17 +596,17 @@ func (m *PartitionOptions) GetMaxPartitions() int64 {
 // The request for [PartitionQuery][google.spanner.v1.Spanner.PartitionQuery]
 type PartitionQueryRequest struct {
 	// Required. The session used to create the partitions.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Read only snapshot transactions are supported, read/write and single use
 	// transactions are not.
-	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	// The query request to generate partitions for. The request will fail if
 	// the query is not root partitionable. The query plan of a root
 	// partitionable query has a single distributed union operator. A distributed
 	// union operator conceptually divides one or more tables into multiple
 	// splits, remotely evaluates a subquery independently on each split, and
 	// then unions all results.
-	Sql string `protobuf:"bytes,3,opt,name=sql" json:"sql,omitempty"`
+	Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"`
 	// 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,
@@ -621,7 +621,7 @@ type PartitionQueryRequest struct {
 	// Parameter values are specified using `params`, which is a JSON
 	// object whose keys are parameter names, and whose values are the
 	// corresponding parameter values.
-	Params *_struct.Struct `protobuf:"bytes,4,opt,name=params" json:"params,omitempty"`
+	Params *_struct.Struct `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
 	// It is not always possible for Cloud Spanner to infer the right SQL type
 	// from a JSON value.  For example, values of type `BYTES` and values
 	// of type `STRING` both appear in [params][google.spanner.v1.PartitionQueryRequest.params] as JSON strings.
@@ -630,9 +630,9 @@ type PartitionQueryRequest struct {
 	// SQL type for some or all of the SQL query parameters. See the
 	// definition of [Type][google.spanner.v1.Type] for more information
 	// about SQL types.
-	ParamTypes map[string]*Type `protobuf:"bytes,5,rep,name=param_types,json=paramTypes" json:"param_types,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	ParamTypes map[string]*Type `protobuf:"bytes,5,rep,name=param_types,json=paramTypes,proto3" json:"param_types,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Additional options that affect how many partitions are created.
-	PartitionOptions     *PartitionOptions `protobuf:"bytes,6,opt,name=partition_options,json=partitionOptions" json:"partition_options,omitempty"`
+	PartitionOptions     *PartitionOptions `protobuf:"bytes,6,opt,name=partition_options,json=partitionOptions,proto3" json:"partition_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -707,19 +707,19 @@ func (m *PartitionQueryRequest) GetPartitionOptions() *PartitionOptions {
 // The request for [PartitionRead][google.spanner.v1.Spanner.PartitionRead]
 type PartitionReadRequest struct {
 	// Required. The session used to create the partitions.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Read only snapshot transactions are supported, read/write and single use
 	// transactions are not.
-	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	// Required. The name of the table in the database to be read.
-	Table string `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
+	Table string `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
 	// If non-empty, the name of an index on [table][google.spanner.v1.PartitionReadRequest.table]. This index is
 	// used instead of the table primary key when interpreting [key_set][google.spanner.v1.PartitionReadRequest.key_set]
 	// and sorting result rows. See [key_set][google.spanner.v1.PartitionReadRequest.key_set] for further information.
-	Index string `protobuf:"bytes,4,opt,name=index" json:"index,omitempty"`
+	Index string `protobuf:"bytes,4,opt,name=index,proto3" json:"index,omitempty"`
 	// The columns of [table][google.spanner.v1.PartitionReadRequest.table] to be returned for each row matching
 	// this request.
-	Columns []string `protobuf:"bytes,5,rep,name=columns" json:"columns,omitempty"`
+	Columns []string `protobuf:"bytes,5,rep,name=columns,proto3" json:"columns,omitempty"`
 	// Required. `key_set` identifies the rows to be yielded. `key_set` names the
 	// primary keys of the rows in [table][google.spanner.v1.PartitionReadRequest.table] to be yielded, unless [index][google.spanner.v1.PartitionReadRequest.index]
 	// is present. If [index][google.spanner.v1.PartitionReadRequest.index] is present, then [key_set][google.spanner.v1.PartitionReadRequest.key_set] instead names
@@ -727,9 +727,9 @@ type PartitionReadRequest struct {
 	//
 	// It is not an error for the `key_set` to name rows that do not
 	// exist in the database. Read yields nothing for nonexistent rows.
-	KeySet *KeySet `protobuf:"bytes,6,opt,name=key_set,json=keySet" json:"key_set,omitempty"`
+	KeySet *KeySet `protobuf:"bytes,6,opt,name=key_set,json=keySet,proto3" json:"key_set,omitempty"`
 	// Additional options that affect how many partitions are created.
-	PartitionOptions     *PartitionOptions `protobuf:"bytes,9,opt,name=partition_options,json=partitionOptions" json:"partition_options,omitempty"`
+	PartitionOptions     *PartitionOptions `protobuf:"bytes,9,opt,name=partition_options,json=partitionOptions,proto3" json:"partition_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
 	XXX_unrecognized     []byte            `json:"-"`
 	XXX_sizecache        int32             `json:"-"`
@@ -855,9 +855,9 @@ func (m *Partition) GetPartitionToken() []byte {
 // or [PartitionRead][google.spanner.v1.Spanner.PartitionRead]
 type PartitionResponse struct {
 	// Partitions created by this request.
-	Partitions []*Partition `protobuf:"bytes,1,rep,name=partitions" json:"partitions,omitempty"`
+	Partitions []*Partition `protobuf:"bytes,1,rep,name=partitions,proto3" json:"partitions,omitempty"`
 	// Transaction created by this request.
-	Transaction          *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction          *Transaction `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -905,19 +905,19 @@ func (m *PartitionResponse) GetTransaction() *Transaction {
 // [StreamingRead][google.spanner.v1.Spanner.StreamingRead].
 type ReadRequest struct {
 	// Required. The session in which the read should be performed.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// The transaction to use. If none is provided, the default is a
 	// temporary read-only transaction with strong concurrency.
-	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+	Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
 	// Required. The name of the table in the database to be read.
-	Table string `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
+	Table string `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
 	// If non-empty, the name of an index on [table][google.spanner.v1.ReadRequest.table]. This index is
 	// used instead of the table primary key when interpreting [key_set][google.spanner.v1.ReadRequest.key_set]
 	// and sorting result rows. See [key_set][google.spanner.v1.ReadRequest.key_set] for further information.
-	Index string `protobuf:"bytes,4,opt,name=index" json:"index,omitempty"`
+	Index string `protobuf:"bytes,4,opt,name=index,proto3" json:"index,omitempty"`
 	// The columns of [table][google.spanner.v1.ReadRequest.table] to be returned for each row matching
 	// this request.
-	Columns []string `protobuf:"bytes,5,rep,name=columns" json:"columns,omitempty"`
+	Columns []string `protobuf:"bytes,5,rep,name=columns,proto3" json:"columns,omitempty"`
 	// Required. `key_set` identifies the rows to be yielded. `key_set` names the
 	// primary keys of the rows in [table][google.spanner.v1.ReadRequest.table] to be yielded, unless [index][google.spanner.v1.ReadRequest.index]
 	// is present. If [index][google.spanner.v1.ReadRequest.index] is present, then [key_set][google.spanner.v1.ReadRequest.key_set] instead names
@@ -930,11 +930,11 @@ type ReadRequest struct {
 	//
 	// It is not an error for the `key_set` to name rows that do not
 	// exist in the database. Read yields nothing for nonexistent rows.
-	KeySet *KeySet `protobuf:"bytes,6,opt,name=key_set,json=keySet" json:"key_set,omitempty"`
+	KeySet *KeySet `protobuf:"bytes,6,opt,name=key_set,json=keySet,proto3" json:"key_set,omitempty"`
 	// If greater than zero, only the first `limit` rows are yielded. If `limit`
 	// is zero, the default is no limit. A limit cannot be specified if
 	// `partition_token` is set.
-	Limit int64 `protobuf:"varint,8,opt,name=limit" json:"limit,omitempty"`
+	Limit int64 `protobuf:"varint,8,opt,name=limit,proto3" json:"limit,omitempty"`
 	// If this request is resuming a previously interrupted read,
 	// `resume_token` should be copied from the last
 	// [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
@@ -1042,9 +1042,9 @@ func (m *ReadRequest) GetPartitionToken() []byte {
 // The request for [BeginTransaction][google.spanner.v1.Spanner.BeginTransaction].
 type BeginTransactionRequest struct {
 	// Required. The session in which the transaction runs.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Required. Options for the new transaction.
-	Options              *TransactionOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"`
+	Options              *TransactionOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -1091,7 +1091,7 @@ func (m *BeginTransactionRequest) GetOptions() *TransactionOptions {
 // The request for [Commit][google.spanner.v1.Spanner.Commit].
 type CommitRequest struct {
 	// Required. The session in which the transaction to be committed is running.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Required. The transaction in which to commit.
 	//
 	// Types that are valid to be assigned to Transaction:
@@ -1101,7 +1101,7 @@ type CommitRequest struct {
 	// The mutations to be executed when this transaction commits. All
 	// mutations are applied atomically, in the order they appear in
 	// this list.
-	Mutations            []*Mutation `protobuf:"bytes,4,rep,name=mutations" json:"mutations,omitempty"`
+	Mutations            []*Mutation `protobuf:"bytes,4,rep,name=mutations,proto3" json:"mutations,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -1139,7 +1139,7 @@ type CommitRequest_TransactionId struct {
 	TransactionId []byte `protobuf:"bytes,2,opt,name=transaction_id,json=transactionId,proto3,oneof"`
 }
 type CommitRequest_SingleUseTransaction struct {
-	SingleUseTransaction *TransactionOptions `protobuf:"bytes,3,opt,name=single_use_transaction,json=singleUseTransaction,oneof"`
+	SingleUseTransaction *TransactionOptions `protobuf:"bytes,3,opt,name=single_use_transaction,json=singleUseTransaction,proto3,oneof"`
 }
 
 func (*CommitRequest_TransactionId) isCommitRequest_Transaction()        {}
@@ -1253,7 +1253,7 @@ func _CommitRequest_OneofSizer(msg proto.Message) (n int) {
 // The response for [Commit][google.spanner.v1.Spanner.Commit].
 type CommitResponse struct {
 	// The Cloud Spanner timestamp at which the transaction committed.
-	CommitTimestamp      *timestamp.Timestamp `protobuf:"bytes,1,opt,name=commit_timestamp,json=commitTimestamp" json:"commit_timestamp,omitempty"`
+	CommitTimestamp      *timestamp.Timestamp `protobuf:"bytes,1,opt,name=commit_timestamp,json=commitTimestamp,proto3" json:"commit_timestamp,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1293,7 +1293,7 @@ func (m *CommitResponse) GetCommitTimestamp() *timestamp.Timestamp {
 // The request for [Rollback][google.spanner.v1.Spanner.Rollback].
 type RollbackRequest struct {
 	// Required. The session in which the transaction to roll back is running.
-	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
+	Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
 	// Required. The transaction to roll back.
 	TransactionId        []byte   `protobuf:"bytes,2,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1655,8 +1655,7 @@ func (c *spannerClient) PartitionRead(ctx context.Context, in *PartitionReadRequ
 	return out, nil
 }
 
-// Server API for Spanner service
-
+// SpannerServer is the server API for Spanner service.
 type SpannerServer interface {
 	// Creates a new session. A session can be used to perform
 	// transactions that read and/or modify data in a Cloud Spanner database.
diff --git a/googleapis/spanner/v1/transaction.pb.go b/googleapis/spanner/v1/transaction.pb.go
index 5d0b0bba0a50364e4e120134280674ab066ef3e0..18e92887c51cf65ccfb4b8b6dcf518567896b90d 100644
--- a/googleapis/spanner/v1/transaction.pb.go
+++ b/googleapis/spanner/v1/transaction.pb.go
@@ -279,10 +279,10 @@ type isTransactionOptions_Mode interface {
 }
 
 type TransactionOptions_ReadWrite_ struct {
-	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,oneof"`
+	ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_ struct {
-	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,oneof"`
+	ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {}
@@ -428,7 +428,7 @@ type TransactionOptions_ReadOnly struct {
 	TimestampBound isTransactionOptions_ReadOnly_TimestampBound `protobuf_oneof:"timestamp_bound"`
 	// If true, the Cloud Spanner-selected read timestamp is included in
 	// the [Transaction][google.spanner.v1.Transaction] message that describes the transaction.
-	ReturnReadTimestamp  bool     `protobuf:"varint,6,opt,name=return_read_timestamp,json=returnReadTimestamp" json:"return_read_timestamp,omitempty"`
+	ReturnReadTimestamp  bool     `protobuf:"varint,6,opt,name=return_read_timestamp,json=returnReadTimestamp,proto3" json:"return_read_timestamp,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -463,19 +463,19 @@ type isTransactionOptions_ReadOnly_TimestampBound interface {
 }
 
 type TransactionOptions_ReadOnly_Strong struct {
-	Strong bool `protobuf:"varint,1,opt,name=strong,oneof"`
+	Strong bool `protobuf:"varint,1,opt,name=strong,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_MinReadTimestamp struct {
-	MinReadTimestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=min_read_timestamp,json=minReadTimestamp,oneof"`
+	MinReadTimestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=min_read_timestamp,json=minReadTimestamp,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_MaxStaleness struct {
-	MaxStaleness *duration.Duration `protobuf:"bytes,3,opt,name=max_staleness,json=maxStaleness,oneof"`
+	MaxStaleness *duration.Duration `protobuf:"bytes,3,opt,name=max_staleness,json=maxStaleness,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_ReadTimestamp struct {
-	ReadTimestamp *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_timestamp,json=readTimestamp,oneof"`
+	ReadTimestamp *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_timestamp,json=readTimestamp,proto3,oneof"`
 }
 type TransactionOptions_ReadOnly_ExactStaleness struct {
-	ExactStaleness *duration.Duration `protobuf:"bytes,5,opt,name=exact_staleness,json=exactStaleness,oneof"`
+	ExactStaleness *duration.Duration `protobuf:"bytes,5,opt,name=exact_staleness,json=exactStaleness,proto3,oneof"`
 }
 
 func (*TransactionOptions_ReadOnly_Strong) isTransactionOptions_ReadOnly_TimestampBound()           {}
@@ -680,7 +680,7 @@ type Transaction struct {
 	//
 	// A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.
 	// Example: `"2014-10-02T15:01:23.045123456Z"`.
-	ReadTimestamp        *timestamp.Timestamp `protobuf:"bytes,2,opt,name=read_timestamp,json=readTimestamp" json:"read_timestamp,omitempty"`
+	ReadTimestamp        *timestamp.Timestamp `protobuf:"bytes,2,opt,name=read_timestamp,json=readTimestamp,proto3" json:"read_timestamp,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -772,13 +772,13 @@ type isTransactionSelector_Selector interface {
 }
 
 type TransactionSelector_SingleUse struct {
-	SingleUse *TransactionOptions `protobuf:"bytes,1,opt,name=single_use,json=singleUse,oneof"`
+	SingleUse *TransactionOptions `protobuf:"bytes,1,opt,name=single_use,json=singleUse,proto3,oneof"`
 }
 type TransactionSelector_Id struct {
 	Id []byte `protobuf:"bytes,2,opt,name=id,proto3,oneof"`
 }
 type TransactionSelector_Begin struct {
-	Begin *TransactionOptions `protobuf:"bytes,3,opt,name=begin,oneof"`
+	Begin *TransactionOptions `protobuf:"bytes,3,opt,name=begin,proto3,oneof"`
 }
 
 func (*TransactionSelector_SingleUse) isTransactionSelector_Selector() {}
diff --git a/googleapis/spanner/v1/type.pb.go b/googleapis/spanner/v1/type.pb.go
index e97e2767ba2841803a49d512e975132a746de1d7..688c941747389b68915071d60cfae8476b14000d 100644
--- a/googleapis/spanner/v1/type.pb.go
+++ b/googleapis/spanner/v1/type.pb.go
@@ -98,13 +98,13 @@ func (TypeCode) EnumDescriptor() ([]byte, []int) {
 // table cell or returned from an SQL query.
 type Type struct {
 	// Required. The [TypeCode][google.spanner.v1.TypeCode] for this type.
-	Code TypeCode `protobuf:"varint,1,opt,name=code,enum=google.spanner.v1.TypeCode" json:"code,omitempty"`
+	Code TypeCode `protobuf:"varint,1,opt,name=code,proto3,enum=google.spanner.v1.TypeCode" json:"code,omitempty"`
 	// If [code][google.spanner.v1.Type.code] == [ARRAY][google.spanner.v1.TypeCode.ARRAY], then `array_element_type`
 	// is the type of the array elements.
-	ArrayElementType *Type `protobuf:"bytes,2,opt,name=array_element_type,json=arrayElementType" json:"array_element_type,omitempty"`
+	ArrayElementType *Type `protobuf:"bytes,2,opt,name=array_element_type,json=arrayElementType,proto3" json:"array_element_type,omitempty"`
 	// If [code][google.spanner.v1.Type.code] == [STRUCT][google.spanner.v1.TypeCode.STRUCT], then `struct_type`
 	// provides type information for the struct's fields.
-	StructType           *StructType `protobuf:"bytes,3,opt,name=struct_type,json=structType" json:"struct_type,omitempty"`
+	StructType           *StructType `protobuf:"bytes,3,opt,name=struct_type,json=structType,proto3" json:"struct_type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
 	XXX_unrecognized     []byte      `json:"-"`
 	XXX_sizecache        int32       `json:"-"`
@@ -163,7 +163,7 @@ type StructType struct {
 	// fields in the [StructType][google.spanner.v1.StructType]. In turn, the order of fields
 	// matches the order of columns in a read request, or the order of
 	// fields in the `SELECT` clause of a query.
-	Fields               []*StructType_Field `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty"`
+	Fields               []*StructType_Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
 	XXX_unrecognized     []byte              `json:"-"`
 	XXX_sizecache        int32               `json:"-"`
@@ -209,9 +209,9 @@ type StructType_Field struct {
 	// columns might have an empty name (e.g., !"SELECT
 	// UPPER(ColName)"`). Note that a query result can contain
 	// multiple fields with the same name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The type of the field.
-	Type                 *Type    `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
+	Type                 *Type    `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/storagetransfer/v1/transfer.pb.go b/googleapis/storagetransfer/v1/transfer.pb.go
index 3d6499fb81d704a661f354cce0d0ab16c71e8aa7..ea86ef7f43f68312c0f474c3527c1013162064bf 100644
--- a/googleapis/storagetransfer/v1/transfer.pb.go
+++ b/googleapis/storagetransfer/v1/transfer.pb.go
@@ -31,7 +31,7 @@ type GetGoogleServiceAccountRequest struct {
 	// The ID of the Google Cloud Platform Console project that the Google service
 	// account is associated with.
 	// Required.
-	ProjectId            string   `protobuf:"bytes,1,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -72,7 +72,7 @@ func (m *GetGoogleServiceAccountRequest) GetProjectId() string {
 type CreateTransferJobRequest struct {
 	// The job to create.
 	// Required.
-	TransferJob          *TransferJob `protobuf:"bytes,1,opt,name=transfer_job,json=transferJob" json:"transfer_job,omitempty"`
+	TransferJob          *TransferJob `protobuf:"bytes,1,opt,name=transfer_job,json=transferJob,proto3" json:"transfer_job,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -113,23 +113,23 @@ func (m *CreateTransferJobRequest) GetTransferJob() *TransferJob {
 type UpdateTransferJobRequest struct {
 	// The name of job to update.
 	// Required.
-	JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName" json:"job_name,omitempty"`
+	JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"`
 	// The ID of the Google Cloud Platform Console project that owns the job.
 	// Required.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// The job to update. `transferJob` is expected to specify only three fields:
 	// `description`, `transferSpec`, and `status`.  An UpdateTransferJobRequest
 	// that specifies other fields will be rejected with an error
 	// `INVALID_ARGUMENT`.
 	// Required.
-	TransferJob *TransferJob `protobuf:"bytes,3,opt,name=transfer_job,json=transferJob" json:"transfer_job,omitempty"`
+	TransferJob *TransferJob `protobuf:"bytes,3,opt,name=transfer_job,json=transferJob,proto3" json:"transfer_job,omitempty"`
 	// 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`.
-	UpdateTransferJobFieldMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_transfer_job_field_mask,json=updateTransferJobFieldMask" json:"update_transfer_job_field_mask,omitempty"`
+	UpdateTransferJobFieldMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_transfer_job_field_mask,json=updateTransferJobFieldMask,proto3" json:"update_transfer_job_field_mask,omitempty"`
 	XXX_NoUnkeyedLiteral       struct{}              `json:"-"`
 	XXX_unrecognized           []byte                `json:"-"`
 	XXX_sizecache              int32                 `json:"-"`
@@ -191,10 +191,10 @@ func (m *UpdateTransferJobRequest) GetUpdateTransferJobFieldMask() *field_mask.F
 type GetTransferJobRequest struct {
 	// The job to get.
 	// Required.
-	JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName" json:"job_name,omitempty"`
+	JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"`
 	// The ID of the Google Cloud Platform Console project that owns the job.
 	// Required.
-	ProjectId            string   `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId            string   `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -249,11 +249,11 @@ type ListTransferJobsRequest struct {
 	// 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 `protobuf:"bytes,1,opt,name=filter" json:"filter,omitempty"`
+	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
 	// The list page size. The max allowed value is 256.
-	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The list page token.
-	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken            string   `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -307,9 +307,9 @@ func (m *ListTransferJobsRequest) GetPageToken() string {
 // Response from ListTransferJobs.
 type ListTransferJobsResponse struct {
 	// A list of transfer jobs.
-	TransferJobs []*TransferJob `protobuf:"bytes,1,rep,name=transfer_jobs,json=transferJobs" json:"transfer_jobs,omitempty"`
+	TransferJobs []*TransferJob `protobuf:"bytes,1,rep,name=transfer_jobs,json=transferJobs,proto3" json:"transfer_jobs,omitempty"`
 	// The list next page token.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -357,7 +357,7 @@ func (m *ListTransferJobsResponse) GetNextPageToken() string {
 type PauseTransferOperationRequest struct {
 	// The name of the transfer operation.
 	// Required.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -398,7 +398,7 @@ func (m *PauseTransferOperationRequest) GetName() string {
 type ResumeTransferOperationRequest struct {
 	// The name of the transfer operation.
 	// Required.
-	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -554,8 +554,7 @@ func (c *storageTransferServiceClient) ResumeTransferOperation(ctx context.Conte
 	return out, nil
 }
 
-// Server API for StorageTransferService service
-
+// StorageTransferServiceServer is the server API for StorageTransferService service.
 type StorageTransferServiceServer interface {
 	// Returns the Google service account that is used by Storage Transfer
 	// Service to access buckets in the project where transfers
diff --git a/googleapis/storagetransfer/v1/transfer_types.pb.go b/googleapis/storagetransfer/v1/transfer_types.pb.go
index 2bdf861d455555a6e056101d58f2b199b68fd0ad..3c1d3aa284b8989da9c4d252279ba0167aabe6f9 100644
--- a/googleapis/storagetransfer/v1/transfer_types.pb.go
+++ b/googleapis/storagetransfer/v1/transfer_types.pb.go
@@ -105,7 +105,7 @@ func (TransferOperation_Status) EnumDescriptor() ([]byte, []int) {
 // Google service account
 type GoogleServiceAccount struct {
 	// Required.
-	AccountEmail         string   `protobuf:"bytes,1,opt,name=account_email,json=accountEmail" json:"account_email,omitempty"`
+	AccountEmail         string   `protobuf:"bytes,1,opt,name=account_email,json=accountEmail,proto3" json:"account_email,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -147,10 +147,10 @@ func (m *GoogleServiceAccount) GetAccountEmail() string {
 type AwsAccessKey struct {
 	// AWS access key ID.
 	// Required.
-	AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId" json:"access_key_id,omitempty"`
+	AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId,proto3" json:"access_key_id,omitempty"`
 	// AWS secret access key. This field is not returned in RPC responses.
 	// Required.
-	SecretAccessKey      string   `protobuf:"bytes,2,opt,name=secret_access_key,json=secretAccessKey" json:"secret_access_key,omitempty"`
+	SecretAccessKey      string   `protobuf:"bytes,2,opt,name=secret_access_key,json=secretAccessKey,proto3" json:"secret_access_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -203,10 +203,10 @@ type ObjectConditions struct {
 	// `NOW` - `maxTimeElapsedSinceLastModification` and less than
 	// `NOW` - `minTimeElapsedSinceLastModification`, or not have a
 	// `lastModificationTime`.
-	MinTimeElapsedSinceLastModification *duration.Duration `protobuf:"bytes,1,opt,name=min_time_elapsed_since_last_modification,json=minTimeElapsedSinceLastModification" json:"min_time_elapsed_since_last_modification,omitempty"`
+	MinTimeElapsedSinceLastModification *duration.Duration `protobuf:"bytes,1,opt,name=min_time_elapsed_since_last_modification,json=minTimeElapsedSinceLastModification,proto3" json:"min_time_elapsed_since_last_modification,omitempty"`
 	// `maxTimeElapsedSinceLastModification` is the complement to
 	// `minTimeElapsedSinceLastModification`.
-	MaxTimeElapsedSinceLastModification *duration.Duration `protobuf:"bytes,2,opt,name=max_time_elapsed_since_last_modification,json=maxTimeElapsedSinceLastModification" json:"max_time_elapsed_since_last_modification,omitempty"`
+	MaxTimeElapsedSinceLastModification *duration.Duration `protobuf:"bytes,2,opt,name=max_time_elapsed_since_last_modification,json=maxTimeElapsedSinceLastModification,proto3" json:"max_time_elapsed_since_last_modification,omitempty"`
 	// 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`
@@ -240,12 +240,12 @@ type ObjectConditions struct {
 	//     with the value of a path explicitly included by `includePrefixes`.
 	//
 	// The max size of `includePrefixes` is 1000.
-	IncludePrefixes []string `protobuf:"bytes,3,rep,name=include_prefixes,json=includePrefixes" json:"include_prefixes,omitempty"`
+	IncludePrefixes []string `protobuf:"bytes,3,rep,name=include_prefixes,json=includePrefixes,proto3" json:"include_prefixes,omitempty"`
 	// `excludePrefixes` must follow the requirements described for
 	// `includePrefixes`.
 	//
 	// The max size of `excludePrefixes` is 1000.
-	ExcludePrefixes      []string `protobuf:"bytes,4,rep,name=exclude_prefixes,json=excludePrefixes" json:"exclude_prefixes,omitempty"`
+	ExcludePrefixes      []string `protobuf:"bytes,4,rep,name=exclude_prefixes,json=excludePrefixes,proto3" json:"exclude_prefixes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -310,7 +310,7 @@ type GcsData struct {
 	// Google Cloud Storage bucket name (see
 	// [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
 	// Required.
-	BucketName           string   `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName" json:"bucket_name,omitempty"`
+	BucketName           string   `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -353,12 +353,12 @@ type AwsS3Data struct {
 	// S3 Bucket name (see
 	// [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
 	// Required.
-	BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName" json:"bucket_name,omitempty"`
+	BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"`
 	// 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.
-	AwsAccessKey         *AwsAccessKey `protobuf:"bytes,2,opt,name=aws_access_key,json=awsAccessKey" json:"aws_access_key,omitempty"`
+	AwsAccessKey         *AwsAccessKey `protobuf:"bytes,2,opt,name=aws_access_key,json=awsAccessKey,proto3" json:"aws_access_key,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
 	XXX_unrecognized     []byte        `json:"-"`
 	XXX_sizecache        int32         `json:"-"`
@@ -448,7 +448,7 @@ type HttpData struct {
 	// This file must allow public access.  Currently, only URLs with HTTP and
 	// HTTPS schemes are supported.
 	// Required.
-	ListUrl              string   `protobuf:"bytes,1,opt,name=list_url,json=listUrl" json:"list_url,omitempty"`
+	ListUrl              string   `protobuf:"bytes,1,opt,name=list_url,json=listUrl,proto3" json:"list_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -489,15 +489,15 @@ func (m *HttpData) GetListUrl() string {
 // to be performed on objects in a transfer.
 type TransferOptions struct {
 	// Whether overwriting objects that already exist in the sink is allowed.
-	OverwriteObjectsAlreadyExistingInSink bool `protobuf:"varint,1,opt,name=overwrite_objects_already_existing_in_sink,json=overwriteObjectsAlreadyExistingInSink" json:"overwrite_objects_already_existing_in_sink,omitempty"`
+	OverwriteObjectsAlreadyExistingInSink bool `protobuf:"varint,1,opt,name=overwrite_objects_already_existing_in_sink,json=overwriteObjectsAlreadyExistingInSink,proto3" json:"overwrite_objects_already_existing_in_sink,omitempty"`
 	// Whether objects that exist only in the sink should be deleted.  Note that
 	// this option and `deleteObjectsFromSourceAfterTransfer` are mutually
 	// exclusive.
-	DeleteObjectsUniqueInSink bool `protobuf:"varint,2,opt,name=delete_objects_unique_in_sink,json=deleteObjectsUniqueInSink" json:"delete_objects_unique_in_sink,omitempty"`
+	DeleteObjectsUniqueInSink bool `protobuf:"varint,2,opt,name=delete_objects_unique_in_sink,json=deleteObjectsUniqueInSink,proto3" json:"delete_objects_unique_in_sink,omitempty"`
 	// Whether objects should be deleted from the source after they are
 	// transferred to the sink.  Note that this option and
 	// `deleteObjectsUniqueInSink` are mutually exclusive.
-	DeleteObjectsFromSourceAfterTransfer bool     `protobuf:"varint,3,opt,name=delete_objects_from_source_after_transfer,json=deleteObjectsFromSourceAfterTransfer" json:"delete_objects_from_source_after_transfer,omitempty"`
+	DeleteObjectsFromSourceAfterTransfer bool     `protobuf:"varint,3,opt,name=delete_objects_from_source_after_transfer,json=deleteObjectsFromSourceAfterTransfer,proto3" json:"delete_objects_from_source_after_transfer,omitempty"`
 	XXX_NoUnkeyedLiteral                 struct{} `json:"-"`
 	XXX_unrecognized                     []byte   `json:"-"`
 	XXX_sizecache                        int32    `json:"-"`
@@ -565,11 +565,11 @@ type TransferSpec struct {
 	// 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.
-	ObjectConditions *ObjectConditions `protobuf:"bytes,5,opt,name=object_conditions,json=objectConditions" json:"object_conditions,omitempty"`
+	ObjectConditions *ObjectConditions `protobuf:"bytes,5,opt,name=object_conditions,json=objectConditions,proto3" json:"object_conditions,omitempty"`
 	// 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 `protobuf:"bytes,6,opt,name=transfer_options,json=transferOptions" json:"transfer_options,omitempty"`
+	TransferOptions      *TransferOptions `protobuf:"bytes,6,opt,name=transfer_options,json=transferOptions,proto3" json:"transfer_options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -607,16 +607,16 @@ type isTransferSpec_DataSink interface {
 }
 
 type TransferSpec_GcsDataSource struct {
-	GcsDataSource *GcsData `protobuf:"bytes,1,opt,name=gcs_data_source,json=gcsDataSource,oneof"`
+	GcsDataSource *GcsData `protobuf:"bytes,1,opt,name=gcs_data_source,json=gcsDataSource,proto3,oneof"`
 }
 type TransferSpec_AwsS3DataSource struct {
-	AwsS3DataSource *AwsS3Data `protobuf:"bytes,2,opt,name=aws_s3_data_source,json=awsS3DataSource,oneof"`
+	AwsS3DataSource *AwsS3Data `protobuf:"bytes,2,opt,name=aws_s3_data_source,json=awsS3DataSource,proto3,oneof"`
 }
 type TransferSpec_HttpDataSource struct {
-	HttpDataSource *HttpData `protobuf:"bytes,3,opt,name=http_data_source,json=httpDataSource,oneof"`
+	HttpDataSource *HttpData `protobuf:"bytes,3,opt,name=http_data_source,json=httpDataSource,proto3,oneof"`
 }
 type TransferSpec_GcsDataSink struct {
-	GcsDataSink *GcsData `protobuf:"bytes,4,opt,name=gcs_data_sink,json=gcsDataSink,oneof"`
+	GcsDataSink *GcsData `protobuf:"bytes,4,opt,name=gcs_data_sink,json=gcsDataSink,proto3,oneof"`
 }
 
 func (*TransferSpec_GcsDataSource) isTransferSpec_DataSource()   {}
@@ -809,11 +809,11 @@ type Schedule struct {
 	// `scheduleStartDate` is in the past, the transfer will run for the first
 	// time on the following day.
 	// Required.
-	ScheduleStartDate *date.Date `protobuf:"bytes,1,opt,name=schedule_start_date,json=scheduleStartDate" json:"schedule_start_date,omitempty"`
+	ScheduleStartDate *date.Date `protobuf:"bytes,1,opt,name=schedule_start_date,json=scheduleStartDate,proto3" json:"schedule_start_date,omitempty"`
 	// The last day the recurring transfer will be run. If `scheduleEndDate`
 	// is the same as `scheduleStartDate`, the transfer will be executed only
 	// once.
-	ScheduleEndDate *date.Date `protobuf:"bytes,2,opt,name=schedule_end_date,json=scheduleEndDate" json:"schedule_end_date,omitempty"`
+	ScheduleEndDate *date.Date `protobuf:"bytes,2,opt,name=schedule_end_date,json=scheduleEndDate,proto3" json:"schedule_end_date,omitempty"`
 	// 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;
@@ -821,7 +821,7 @@ type Schedule struct {
 	// 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.
-	StartTimeOfDay       *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=start_time_of_day,json=startTimeOfDay" json:"start_time_of_day,omitempty"`
+	StartTimeOfDay       *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=start_time_of_day,json=startTimeOfDay,proto3" json:"start_time_of_day,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -879,16 +879,16 @@ type TransferJob struct {
 	// 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.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A description provided by the user for the job. Its max length is 1024
 	// bytes when Unicode-encoded.
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	// The ID of the Google Cloud Platform Console project that owns the job.
-	ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Transfer specification.
-	TransferSpec *TransferSpec `protobuf:"bytes,4,opt,name=transfer_spec,json=transferSpec" json:"transfer_spec,omitempty"`
+	TransferSpec *TransferSpec `protobuf:"bytes,4,opt,name=transfer_spec,json=transferSpec,proto3" json:"transfer_spec,omitempty"`
 	// Schedule specification.
-	Schedule *Schedule `protobuf:"bytes,5,opt,name=schedule" json:"schedule,omitempty"`
+	Schedule *Schedule `protobuf:"bytes,5,opt,name=schedule,proto3" json:"schedule,omitempty"`
 	// Status of the job. This value MUST be specified for
 	// `CreateTransferJobRequests`.
 	//
@@ -896,13 +896,13 @@ type TransferJob struct {
 	// 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 TransferJob_Status `protobuf:"varint,6,opt,name=status,enum=google.storagetransfer.v1.TransferJob_Status" json:"status,omitempty"`
+	Status TransferJob_Status `protobuf:"varint,6,opt,name=status,proto3,enum=google.storagetransfer.v1.TransferJob_Status" json:"status,omitempty"`
 	// This field cannot be changed by user requests.
-	CreationTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_time,json=creationTime" json:"creation_time,omitempty"`
+	CreationTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"`
 	// This field cannot be changed by user requests.
-	LastModificationTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_modification_time,json=lastModificationTime" json:"last_modification_time,omitempty"`
+	LastModificationTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_modification_time,json=lastModificationTime,proto3" json:"last_modification_time,omitempty"`
 	// This field cannot be changed by user requests.
-	DeletionTime         *timestamp.Timestamp `protobuf:"bytes,9,opt,name=deletion_time,json=deletionTime" json:"deletion_time,omitempty"`
+	DeletionTime         *timestamp.Timestamp `protobuf:"bytes,9,opt,name=deletion_time,json=deletionTime,proto3" json:"deletion_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
@@ -1000,9 +1000,9 @@ type ErrorLogEntry struct {
 	// A URL that refers to the target (a data source, a data sink,
 	// or an object) with which the error is associated.
 	// Required.
-	Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
 	// A list of messages that carry the error details.
-	ErrorDetails         []string `protobuf:"bytes,3,rep,name=error_details,json=errorDetails" json:"error_details,omitempty"`
+	ErrorDetails         []string `protobuf:"bytes,3,rep,name=error_details,json=errorDetails,proto3" json:"error_details,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1050,12 +1050,12 @@ func (m *ErrorLogEntry) GetErrorDetails() []string {
 // entries.
 type ErrorSummary struct {
 	// Required.
-	ErrorCode code.Code `protobuf:"varint,1,opt,name=error_code,json=errorCode,enum=google.rpc.Code" json:"error_code,omitempty"`
+	ErrorCode code.Code `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=google.rpc.Code" json:"error_code,omitempty"`
 	// Count of this type of error.
 	// Required.
-	ErrorCount int64 `protobuf:"varint,2,opt,name=error_count,json=errorCount" json:"error_count,omitempty"`
+	ErrorCount int64 `protobuf:"varint,2,opt,name=error_count,json=errorCount,proto3" json:"error_count,omitempty"`
 	// Error samples.
-	ErrorLogEntries      []*ErrorLogEntry `protobuf:"bytes,3,rep,name=error_log_entries,json=errorLogEntries" json:"error_log_entries,omitempty"`
+	ErrorLogEntries      []*ErrorLogEntry `protobuf:"bytes,3,rep,name=error_log_entries,json=errorLogEntries,proto3" json:"error_log_entries,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -1111,41 +1111,41 @@ type TransferCounters struct {
 	// Objects found in the data source that are scheduled to be transferred,
 	// excluding any that are filtered based on object conditions or skipped due
 	// to sync.
-	ObjectsFoundFromSource int64 `protobuf:"varint,1,opt,name=objects_found_from_source,json=objectsFoundFromSource" json:"objects_found_from_source,omitempty"`
+	ObjectsFoundFromSource int64 `protobuf:"varint,1,opt,name=objects_found_from_source,json=objectsFoundFromSource,proto3" json:"objects_found_from_source,omitempty"`
 	// Bytes found in the data source that are scheduled to be transferred,
 	// excluding any that are filtered based on object conditions or skipped due
 	// to sync.
-	BytesFoundFromSource int64 `protobuf:"varint,2,opt,name=bytes_found_from_source,json=bytesFoundFromSource" json:"bytes_found_from_source,omitempty"`
+	BytesFoundFromSource int64 `protobuf:"varint,2,opt,name=bytes_found_from_source,json=bytesFoundFromSource,proto3" json:"bytes_found_from_source,omitempty"`
 	// Objects found only in the data sink that are scheduled to be deleted.
-	ObjectsFoundOnlyFromSink int64 `protobuf:"varint,3,opt,name=objects_found_only_from_sink,json=objectsFoundOnlyFromSink" json:"objects_found_only_from_sink,omitempty"`
+	ObjectsFoundOnlyFromSink int64 `protobuf:"varint,3,opt,name=objects_found_only_from_sink,json=objectsFoundOnlyFromSink,proto3" json:"objects_found_only_from_sink,omitempty"`
 	// Bytes found only in the data sink that are scheduled to be deleted.
-	BytesFoundOnlyFromSink int64 `protobuf:"varint,4,opt,name=bytes_found_only_from_sink,json=bytesFoundOnlyFromSink" json:"bytes_found_only_from_sink,omitempty"`
+	BytesFoundOnlyFromSink int64 `protobuf:"varint,4,opt,name=bytes_found_only_from_sink,json=bytesFoundOnlyFromSink,proto3" json:"bytes_found_only_from_sink,omitempty"`
 	// Objects in the data source that are not transferred because they already
 	// exist in the data sink.
-	ObjectsFromSourceSkippedBySync int64 `protobuf:"varint,5,opt,name=objects_from_source_skipped_by_sync,json=objectsFromSourceSkippedBySync" json:"objects_from_source_skipped_by_sync,omitempty"`
+	ObjectsFromSourceSkippedBySync int64 `protobuf:"varint,5,opt,name=objects_from_source_skipped_by_sync,json=objectsFromSourceSkippedBySync,proto3" json:"objects_from_source_skipped_by_sync,omitempty"`
 	// Bytes in the data source that are not transferred because they already
 	// exist in the data sink.
-	BytesFromSourceSkippedBySync int64 `protobuf:"varint,6,opt,name=bytes_from_source_skipped_by_sync,json=bytesFromSourceSkippedBySync" json:"bytes_from_source_skipped_by_sync,omitempty"`
+	BytesFromSourceSkippedBySync int64 `protobuf:"varint,6,opt,name=bytes_from_source_skipped_by_sync,json=bytesFromSourceSkippedBySync,proto3" json:"bytes_from_source_skipped_by_sync,omitempty"`
 	// Objects that are copied to the data sink.
-	ObjectsCopiedToSink int64 `protobuf:"varint,7,opt,name=objects_copied_to_sink,json=objectsCopiedToSink" json:"objects_copied_to_sink,omitempty"`
+	ObjectsCopiedToSink int64 `protobuf:"varint,7,opt,name=objects_copied_to_sink,json=objectsCopiedToSink,proto3" json:"objects_copied_to_sink,omitempty"`
 	// Bytes that are copied to the data sink.
-	BytesCopiedToSink int64 `protobuf:"varint,8,opt,name=bytes_copied_to_sink,json=bytesCopiedToSink" json:"bytes_copied_to_sink,omitempty"`
+	BytesCopiedToSink int64 `protobuf:"varint,8,opt,name=bytes_copied_to_sink,json=bytesCopiedToSink,proto3" json:"bytes_copied_to_sink,omitempty"`
 	// Objects that are deleted from the data source.
-	ObjectsDeletedFromSource int64 `protobuf:"varint,9,opt,name=objects_deleted_from_source,json=objectsDeletedFromSource" json:"objects_deleted_from_source,omitempty"`
+	ObjectsDeletedFromSource int64 `protobuf:"varint,9,opt,name=objects_deleted_from_source,json=objectsDeletedFromSource,proto3" json:"objects_deleted_from_source,omitempty"`
 	// Bytes that are deleted from the data source.
-	BytesDeletedFromSource int64 `protobuf:"varint,10,opt,name=bytes_deleted_from_source,json=bytesDeletedFromSource" json:"bytes_deleted_from_source,omitempty"`
+	BytesDeletedFromSource int64 `protobuf:"varint,10,opt,name=bytes_deleted_from_source,json=bytesDeletedFromSource,proto3" json:"bytes_deleted_from_source,omitempty"`
 	// Objects that are deleted from the data sink.
-	ObjectsDeletedFromSink int64 `protobuf:"varint,11,opt,name=objects_deleted_from_sink,json=objectsDeletedFromSink" json:"objects_deleted_from_sink,omitempty"`
+	ObjectsDeletedFromSink int64 `protobuf:"varint,11,opt,name=objects_deleted_from_sink,json=objectsDeletedFromSink,proto3" json:"objects_deleted_from_sink,omitempty"`
 	// Bytes that are deleted from the data sink.
-	BytesDeletedFromSink int64 `protobuf:"varint,12,opt,name=bytes_deleted_from_sink,json=bytesDeletedFromSink" json:"bytes_deleted_from_sink,omitempty"`
+	BytesDeletedFromSink int64 `protobuf:"varint,12,opt,name=bytes_deleted_from_sink,json=bytesDeletedFromSink,proto3" json:"bytes_deleted_from_sink,omitempty"`
 	// Objects in the data source that failed during the transfer.
-	ObjectsFromSourceFailed int64 `protobuf:"varint,13,opt,name=objects_from_source_failed,json=objectsFromSourceFailed" json:"objects_from_source_failed,omitempty"`
+	ObjectsFromSourceFailed int64 `protobuf:"varint,13,opt,name=objects_from_source_failed,json=objectsFromSourceFailed,proto3" json:"objects_from_source_failed,omitempty"`
 	// Bytes in the data source that failed during the transfer.
-	BytesFromSourceFailed int64 `protobuf:"varint,14,opt,name=bytes_from_source_failed,json=bytesFromSourceFailed" json:"bytes_from_source_failed,omitempty"`
+	BytesFromSourceFailed int64 `protobuf:"varint,14,opt,name=bytes_from_source_failed,json=bytesFromSourceFailed,proto3" json:"bytes_from_source_failed,omitempty"`
 	// Objects that failed to be deleted from the data sink.
-	ObjectsFailedToDeleteFromSink int64 `protobuf:"varint,15,opt,name=objects_failed_to_delete_from_sink,json=objectsFailedToDeleteFromSink" json:"objects_failed_to_delete_from_sink,omitempty"`
+	ObjectsFailedToDeleteFromSink int64 `protobuf:"varint,15,opt,name=objects_failed_to_delete_from_sink,json=objectsFailedToDeleteFromSink,proto3" json:"objects_failed_to_delete_from_sink,omitempty"`
 	// Bytes that failed to be deleted from the data sink.
-	BytesFailedToDeleteFromSink int64    `protobuf:"varint,16,opt,name=bytes_failed_to_delete_from_sink,json=bytesFailedToDeleteFromSink" json:"bytes_failed_to_delete_from_sink,omitempty"`
+	BytesFailedToDeleteFromSink int64    `protobuf:"varint,16,opt,name=bytes_failed_to_delete_from_sink,json=bytesFailedToDeleteFromSink,proto3" json:"bytes_failed_to_delete_from_sink,omitempty"`
 	XXX_NoUnkeyedLiteral        struct{} `json:"-"`
 	XXX_unrecognized            []byte   `json:"-"`
 	XXX_sizecache               int32    `json:"-"`
@@ -1290,25 +1290,25 @@ func (m *TransferCounters) GetBytesFailedToDeleteFromSink() int64 {
 // A description of the execution of a transfer.
 type TransferOperation struct {
 	// A globally unique ID assigned by the system.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The ID of the Google Cloud Platform Console project that owns the operation.
 	// Required.
-	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
+	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
 	// Transfer specification.
 	// Required.
-	TransferSpec *TransferSpec `protobuf:"bytes,3,opt,name=transfer_spec,json=transferSpec" json:"transfer_spec,omitempty"`
+	TransferSpec *TransferSpec `protobuf:"bytes,3,opt,name=transfer_spec,json=transferSpec,proto3" json:"transfer_spec,omitempty"`
 	// Start time of this transfer execution.
-	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
+	StartTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
 	// End time of this transfer execution.
-	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
+	EndTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
 	// Status of the transfer operation.
-	Status TransferOperation_Status `protobuf:"varint,6,opt,name=status,enum=google.storagetransfer.v1.TransferOperation_Status" json:"status,omitempty"`
+	Status TransferOperation_Status `protobuf:"varint,6,opt,name=status,proto3,enum=google.storagetransfer.v1.TransferOperation_Status" json:"status,omitempty"`
 	// Information about the progress of the transfer operation.
-	Counters *TransferCounters `protobuf:"bytes,7,opt,name=counters" json:"counters,omitempty"`
+	Counters *TransferCounters `protobuf:"bytes,7,opt,name=counters,proto3" json:"counters,omitempty"`
 	// Summarizes errors encountered with sample error log entries.
-	ErrorBreakdowns []*ErrorSummary `protobuf:"bytes,8,rep,name=error_breakdowns,json=errorBreakdowns" json:"error_breakdowns,omitempty"`
+	ErrorBreakdowns []*ErrorSummary `protobuf:"bytes,8,rep,name=error_breakdowns,json=errorBreakdowns,proto3" json:"error_breakdowns,omitempty"`
 	// The name of the transfer job that triggers this transfer operation.
-	TransferJobName      string   `protobuf:"bytes,9,opt,name=transfer_job_name,json=transferJobName" json:"transfer_job_name,omitempty"`
+	TransferJobName      string   `protobuf:"bytes,9,opt,name=transfer_job_name,json=transferJobName,proto3" json:"transfer_job_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/streetview/publish/v1/resources.pb.go b/googleapis/streetview/publish/v1/resources.pb.go
index 317d9c3bcf1ecd3885a94d66359f56d1f171b91e..78c8f9f0bc1351f0bdcf290a27d46f323c3767c4 100644
--- a/googleapis/streetview/publish/v1/resources.pb.go
+++ b/googleapis/streetview/publish/v1/resources.pb.go
@@ -26,7 +26,7 @@ type UploadRef struct {
 	// Required. An upload reference should be unique for each user. It follows
 	// the form:
 	// "https://streetviewpublish.googleapis.com/media/user/<account_id>/photo/<upload_reference>"
-	UploadUrl            string   `protobuf:"bytes,1,opt,name=upload_url,json=uploadUrl" json:"upload_url,omitempty"`
+	UploadUrl            string   `protobuf:"bytes,1,opt,name=upload_url,json=uploadUrl,proto3" json:"upload_url,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -66,7 +66,7 @@ func (m *UploadRef) GetUploadUrl() string {
 // Identifier for a photo.
 type PhotoId struct {
 	// Required. A base64 encoded identifier.
-	Id                   string   `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -108,11 +108,11 @@ type Level struct {
 	// Floor number, used for ordering. 0 indicates the ground level, 1 indicates
 	// the first level above ground level, -1 indicates the first level under
 	// ground level. Non-integer values are OK.
-	Number float64 `protobuf:"fixed64,1,opt,name=number" json:"number,omitempty"`
+	Number float64 `protobuf:"fixed64,1,opt,name=number,proto3" json:"number,omitempty"`
 	// Required. A name assigned to this Level, restricted to 3 characters.
 	// Consider how the elevator buttons would be labeled for this level if there
 	// was an elevator.
-	Name                 string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -164,25 +164,25 @@ type Pose struct {
 	// here, the geolocation from the exif header will be used.
 	// If the latitude and longitude pair is not provided and cannot be found in
 	// the exif header, the create photo process will fail.
-	LatLngPair *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng_pair,json=latLngPair" json:"lat_lng_pair,omitempty"`
+	LatLngPair *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng_pair,json=latLngPair,proto3" json:"lat_lng_pair,omitempty"`
 	// Altitude of the pose in meters above ground level (as defined by WGS84).
 	// NaN indicates an unmeasured quantity.
-	Altitude float64 `protobuf:"fixed64,2,opt,name=altitude" json:"altitude,omitempty"`
+	Altitude float64 `protobuf:"fixed64,2,opt,name=altitude,proto3" json:"altitude,omitempty"`
 	// Compass heading, measured at the center of the photo in degrees clockwise
 	// from North. Value must be >=0 and <360.
 	// NaN indicates an unmeasured quantity.
-	Heading float64 `protobuf:"fixed64,3,opt,name=heading" json:"heading,omitempty"`
+	Heading float64 `protobuf:"fixed64,3,opt,name=heading,proto3" json:"heading,omitempty"`
 	// Pitch, measured at the center of the photo in degrees. Value must be >=-90
 	// and <= 90. A value of -90 means looking directly down, and a value of 90
 	// means looking directly up.
 	// NaN indicates an unmeasured quantity.
-	Pitch float64 `protobuf:"fixed64,4,opt,name=pitch" json:"pitch,omitempty"`
+	Pitch float64 `protobuf:"fixed64,4,opt,name=pitch,proto3" json:"pitch,omitempty"`
 	// Roll, measured in degrees. Value must be >= 0 and <360. A value of 0
 	// means level with the horizon.
 	// NaN indicates an unmeasured quantity.
-	Roll float64 `protobuf:"fixed64,5,opt,name=roll" json:"roll,omitempty"`
+	Roll float64 `protobuf:"fixed64,5,opt,name=roll,proto3" json:"roll,omitempty"`
 	// Level (the floor in a building) used to configure vertical navigation.
-	Level                *Level   `protobuf:"bytes,7,opt,name=level" json:"level,omitempty"`
+	Level                *Level   `protobuf:"bytes,7,opt,name=level,proto3" json:"level,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -258,7 +258,7 @@ func (m *Pose) GetLevel() *Level {
 type Place struct {
 	// Required. Place identifier, as described in
 	// https://developers.google.com/places/place-id.
-	PlaceId              string   `protobuf:"bytes,1,opt,name=place_id,json=placeId" json:"place_id,omitempty"`
+	PlaceId              string   `protobuf:"bytes,1,opt,name=place_id,json=placeId,proto3" json:"place_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -299,7 +299,7 @@ func (m *Place) GetPlaceId() string {
 type Connection struct {
 	// Required. The destination of the connection from the containing photo to
 	// another photo.
-	Target               *PhotoId `protobuf:"bytes,1,opt,name=target" json:"target,omitempty"`
+	Target               *PhotoId `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -340,31 +340,31 @@ func (m *Connection) GetTarget() *PhotoId {
 type Photo struct {
 	// Output only. Identifier for the photo, which is unique among all photos in
 	// Google.
-	PhotoId *PhotoId `protobuf:"bytes,1,opt,name=photo_id,json=photoId" json:"photo_id,omitempty"`
+	PhotoId *PhotoId `protobuf:"bytes,1,opt,name=photo_id,json=photoId,proto3" json:"photo_id,omitempty"`
 	// Required (when creating photo). Input only. The resource URL where the
 	// photo bytes are uploaded to.
-	UploadReference *UploadRef `protobuf:"bytes,2,opt,name=upload_reference,json=uploadReference" json:"upload_reference,omitempty"`
+	UploadReference *UploadRef `protobuf:"bytes,2,opt,name=upload_reference,json=uploadReference,proto3" json:"upload_reference,omitempty"`
 	// Output only. The download URL for the photo bytes. This field is set only
 	// when the `view` parameter in a `GetPhotoRequest` is set to
 	// `INCLUDE_DOWNLOAD_URL`.
-	DownloadUrl string `protobuf:"bytes,3,opt,name=download_url,json=downloadUrl" json:"download_url,omitempty"`
+	DownloadUrl string `protobuf:"bytes,3,opt,name=download_url,json=downloadUrl,proto3" json:"download_url,omitempty"`
 	// Output only. The thumbnail URL for showing a preview of the given photo.
-	ThumbnailUrl string `protobuf:"bytes,9,opt,name=thumbnail_url,json=thumbnailUrl" json:"thumbnail_url,omitempty"`
+	ThumbnailUrl string `protobuf:"bytes,9,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"`
 	// Output only. The share link for the photo.
-	ShareLink string `protobuf:"bytes,11,opt,name=share_link,json=shareLink" json:"share_link,omitempty"`
+	ShareLink string `protobuf:"bytes,11,opt,name=share_link,json=shareLink,proto3" json:"share_link,omitempty"`
 	// Pose of the photo.
-	Pose *Pose `protobuf:"bytes,4,opt,name=pose" json:"pose,omitempty"`
+	Pose *Pose `protobuf:"bytes,4,opt,name=pose,proto3" json:"pose,omitempty"`
 	// Connections to other photos. A connection represents the link from this
 	// photo to another photo.
-	Connections []*Connection `protobuf:"bytes,5,rep,name=connections" json:"connections,omitempty"`
+	Connections []*Connection `protobuf:"bytes,5,rep,name=connections,proto3" json:"connections,omitempty"`
 	// Absolute time when the photo was captured.
 	// When the photo has no exif timestamp, this is used to set a timestamp in
 	// the photo metadata.
-	CaptureTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=capture_time,json=captureTime" json:"capture_time,omitempty"`
+	CaptureTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=capture_time,json=captureTime,proto3" json:"capture_time,omitempty"`
 	// Places where this photo belongs.
-	Places []*Place `protobuf:"bytes,7,rep,name=places" json:"places,omitempty"`
+	Places []*Place `protobuf:"bytes,7,rep,name=places,proto3" json:"places,omitempty"`
 	// Output only. View count of the photo.
-	ViewCount            int64    `protobuf:"varint,10,opt,name=view_count,json=viewCount" json:"view_count,omitempty"`
+	ViewCount            int64    `protobuf:"varint,10,opt,name=view_count,json=viewCount,proto3" json:"view_count,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/streetview/publish/v1/rpcmessages.pb.go b/googleapis/streetview/publish/v1/rpcmessages.pb.go
index 012f5bd556b66efb9646b0cfe551dccbb6d653f5..12056a0eaf093478826e90de04fec808ebe7fb79 100644
--- a/googleapis/streetview/publish/v1/rpcmessages.pb.go
+++ b/googleapis/streetview/publish/v1/rpcmessages.pb.go
@@ -50,7 +50,7 @@ func (PhotoView) EnumDescriptor() ([]byte, []int) {
 // Request to create a photo.
 type CreatePhotoRequest struct {
 	// Required. Photo to create.
-	Photo                *Photo   `protobuf:"bytes,1,opt,name=photo" json:"photo,omitempty"`
+	Photo                *Photo   `protobuf:"bytes,1,opt,name=photo,proto3" json:"photo,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -96,10 +96,10 @@ func (m *CreatePhotoRequest) GetPhoto() *Photo {
 // - 'view' controls if the download URL for the photo bytes will be returned.
 type GetPhotoRequest struct {
 	// Required. ID of the photo.
-	PhotoId string `protobuf:"bytes,1,opt,name=photo_id,json=photoId" json:"photo_id,omitempty"`
+	PhotoId string `protobuf:"bytes,1,opt,name=photo_id,json=photoId,proto3" json:"photo_id,omitempty"`
 	// Specifies if a download URL for the photo bytes should be returned in the
 	// Photo response.
-	View                 PhotoView `protobuf:"varint,2,opt,name=view,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
+	View                 PhotoView `protobuf:"varint,2,opt,name=view,proto3,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -151,10 +151,10 @@ func (m *GetPhotoRequest) GetView() PhotoView {
 // - 'view' controls if the download URL for the photo bytes will be returned.
 type BatchGetPhotosRequest struct {
 	// Required. IDs of the photos.
-	PhotoIds []string `protobuf:"bytes,1,rep,name=photo_ids,json=photoIds" json:"photo_ids,omitempty"`
+	PhotoIds []string `protobuf:"bytes,1,rep,name=photo_ids,json=photoIds,proto3" json:"photo_ids,omitempty"`
 	// Specifies if a download URL for the photo bytes should be returned in the
 	// Photo response.
-	View                 PhotoView `protobuf:"varint,2,opt,name=view,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
+	View                 PhotoView `protobuf:"varint,2,opt,name=view,proto3,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -202,7 +202,7 @@ func (m *BatchGetPhotosRequest) GetView() PhotoView {
 type BatchGetPhotosResponse struct {
 	// List of results for each individual photo requested, in the same order as
 	// the request.
-	Results              []*PhotoResponse `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
+	Results              []*PhotoResponse `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -244,9 +244,9 @@ func (m *BatchGetPhotosResponse) GetResults() []*PhotoResponse {
 type PhotoResponse struct {
 	// The status for the operation to get or update a single photo in the batch
 	// request.
-	Status *status.Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"`
+	Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
 	// The photo resource, if the request was successful.
-	Photo                *Photo   `protobuf:"bytes,2,opt,name=photo" json:"photo,omitempty"`
+	Photo                *Photo   `protobuf:"bytes,2,opt,name=photo,proto3" json:"photo,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -303,18 +303,18 @@ func (m *PhotoResponse) GetPhoto() *Photo {
 type ListPhotosRequest struct {
 	// Specifies if a download URL for the photos bytes should be returned in the
 	// Photos response.
-	View PhotoView `protobuf:"varint,1,opt,name=view,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
+	View PhotoView `protobuf:"varint,1,opt,name=view,proto3,enum=google.streetview.publish.v1.PhotoView" json:"view,omitempty"`
 	// The maximum number of photos to return.
 	// `page_size` must be non-negative. If `page_size` is zero or is not
 	// provided, the default page size of 100 will be used.
 	// The number of photos returned in the response may be less than `page_size`
 	// if the number of photos that belong to the user is less than `page_size`.
-	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
+	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
 	// The next_page_token value returned from a previous List request, if any.
-	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
 	// The filter expression.
 	// Example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`
-	Filter               string   `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+	Filter               string   `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -376,10 +376,10 @@ func (m *ListPhotosRequest) GetFilter() string {
 type ListPhotosResponse struct {
 	// List of photos. There will be a maximum number of items returned based on
 	// the page_size field in the request.
-	Photos []*Photo `protobuf:"bytes,1,rep,name=photos" json:"photos,omitempty"`
+	Photos []*Photo `protobuf:"bytes,1,rep,name=photos,proto3" json:"photos,omitempty"`
 	// Token to retrieve the next page of results, or empty if there are no
 	// more results in the list.
-	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -431,7 +431,7 @@ type UpdatePhotoRequest struct {
 	// update applies to all fields.
 	// **Note:** To update `pose.altitude`, `pose.latlngpair` has to be filled as
 	// well. Otherwise, the request will fail.
-	Photo *Photo `protobuf:"bytes,1,opt,name=photo" json:"photo,omitempty"`
+	Photo *Photo `protobuf:"bytes,1,opt,name=photo,proto3" json:"photo,omitempty"`
 	// Mask that identifies fields on the photo metadata to update.
 	// If not present, the old Photo metadata will be entirely replaced with the
 	// new Photo metadata in this request. The update fails if invalid fields are
@@ -454,7 +454,7 @@ type UpdatePhotoRequest struct {
 	// `UpdatePhotoRequest.photo.update_mask` contains `connections` and
 	// `UpdatePhotoRequest.photo.connections` is empty, all connections will be
 	// removed.
-	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -502,7 +502,7 @@ func (m *UpdatePhotoRequest) GetUpdateMask() *field_mask.FieldMask {
 // Updating the pixels of photos is not supported.
 type BatchUpdatePhotosRequest struct {
 	// Required. List of update photo requests.
-	UpdatePhotoRequests  []*UpdatePhotoRequest `protobuf:"bytes,1,rep,name=update_photo_requests,json=updatePhotoRequests" json:"update_photo_requests,omitempty"`
+	UpdatePhotoRequests  []*UpdatePhotoRequest `protobuf:"bytes,1,rep,name=update_photo_requests,json=updatePhotoRequests,proto3" json:"update_photo_requests,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
 	XXX_unrecognized     []byte                `json:"-"`
 	XXX_sizecache        int32                 `json:"-"`
@@ -543,7 +543,7 @@ func (m *BatchUpdatePhotosRequest) GetUpdatePhotoRequests() []*UpdatePhotoReques
 type BatchUpdatePhotosResponse struct {
 	// List of results for each individual photo updated, in the same order as
 	// the request.
-	Results              []*PhotoResponse `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
+	Results              []*PhotoResponse `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -583,7 +583,7 @@ func (m *BatchUpdatePhotosResponse) GetResults() []*PhotoResponse {
 // Request to delete a photo.
 type DeletePhotoRequest struct {
 	// Required. ID of the photo.
-	PhotoId              string   `protobuf:"bytes,1,opt,name=photo_id,json=photoId" json:"photo_id,omitempty"`
+	PhotoId              string   `protobuf:"bytes,1,opt,name=photo_id,json=photoId,proto3" json:"photo_id,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -623,7 +623,7 @@ func (m *DeletePhotoRequest) GetPhotoId() string {
 // Request to delete multiple photos.
 type BatchDeletePhotosRequest struct {
 	// Required. List of delete photo requests.
-	PhotoIds             []string `protobuf:"bytes,1,rep,name=photo_ids,json=photoIds" json:"photo_ids,omitempty"`
+	PhotoIds             []string `protobuf:"bytes,1,rep,name=photo_ids,json=photoIds,proto3" json:"photo_ids,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -663,7 +663,7 @@ func (m *BatchDeletePhotosRequest) GetPhotoIds() []string {
 // Response to batch delete of one or more photos.
 type BatchDeletePhotosResponse struct {
 	// The status for the operation to delete a single photo in the batch request.
-	Status               []*status.Status `protobuf:"bytes,1,rep,name=status" json:"status,omitempty"`
+	Status               []*status.Status `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
diff --git a/googleapis/streetview/publish/v1/streetview_publish.pb.go b/googleapis/streetview/publish/v1/streetview_publish.pb.go
index 4a5766416b3cb94ac725317d7b6b72368b4d62bb..e8ced687b2f9a6cd84fe809a371c7380203fc6e1 100644
--- a/googleapis/streetview/publish/v1/streetview_publish.pb.go
+++ b/googleapis/streetview/publish/v1/streetview_publish.pb.go
@@ -200,8 +200,7 @@ func (c *streetViewPublishServiceClient) BatchDeletePhotos(ctx context.Context,
 	return out, nil
 }
 
-// Server API for StreetViewPublishService service
-
+// StreetViewPublishServiceServer is the server API for StreetViewPublishService service.
 type StreetViewPublishServiceServer interface {
 	// Creates an upload session to start uploading photo data. The upload URL of
 	// the returned `UploadRef` is used to upload the data for the photo.
diff --git a/googleapis/type/color/color.pb.go b/googleapis/type/color/color.pb.go
index 79f42865c9463b35919d2c20ba2ed262916e3087..d55342f6ab880a5742f53c49a8bd6f4275159c00 100644
--- a/googleapis/type/color/color.pb.go
+++ b/googleapis/type/color/color.pb.go
@@ -135,11 +135,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 //     // ...
 type Color struct {
 	// The amount of red in the color as a value in the interval [0, 1].
-	Red float32 `protobuf:"fixed32,1,opt,name=red" json:"red,omitempty"`
+	Red float32 `protobuf:"fixed32,1,opt,name=red,proto3" json:"red,omitempty"`
 	// The amount of green in the color as a value in the interval [0, 1].
-	Green float32 `protobuf:"fixed32,2,opt,name=green" json:"green,omitempty"`
+	Green float32 `protobuf:"fixed32,2,opt,name=green,proto3" json:"green,omitempty"`
 	// The amount of blue in the color as a value in the interval [0, 1].
-	Blue float32 `protobuf:"fixed32,3,opt,name=blue" json:"blue,omitempty"`
+	Blue float32 `protobuf:"fixed32,3,opt,name=blue,proto3" json:"blue,omitempty"`
 	// The fraction of this color that should be applied to the pixel. That is,
 	// the final pixel color is defined by the equation:
 	//
@@ -151,7 +151,7 @@ type Color struct {
 	// possible to distinguish between a default value and the value being unset.
 	// If omitted, this color object is to be rendered as a solid color
 	// (as if the alpha value had been explicitly given with a value of 1.0).
-	Alpha                *wrappers.FloatValue `protobuf:"bytes,4,opt,name=alpha" json:"alpha,omitempty"`
+	Alpha                *wrappers.FloatValue `protobuf:"bytes,4,opt,name=alpha,proto3" json:"alpha,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
 	XXX_sizecache        int32                `json:"-"`
diff --git a/googleapis/type/date/date.pb.go b/googleapis/type/date/date.pb.go
index 996b12784eeaf37d1fc165bcb01c66ab57aa4bb1..feb17fe427e8a805882056039f429b24729f1e56 100644
--- a/googleapis/type/date/date.pb.go
+++ b/googleapis/type/date/date.pb.go
@@ -28,12 +28,12 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Date struct {
 	// Year of date. Must be from 1 to 9999, or 0 if specifying a date without
 	// a year.
-	Year int32 `protobuf:"varint,1,opt,name=year" json:"year,omitempty"`
+	Year int32 `protobuf:"varint,1,opt,name=year,proto3" json:"year,omitempty"`
 	// Month of year. Must be from 1 to 12.
-	Month int32 `protobuf:"varint,2,opt,name=month" json:"month,omitempty"`
+	Month int32 `protobuf:"varint,2,opt,name=month,proto3" json:"month,omitempty"`
 	// 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.
-	Day                  int32    `protobuf:"varint,3,opt,name=day" json:"day,omitempty"`
+	Day                  int32    `protobuf:"varint,3,opt,name=day,proto3" json:"day,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/type/latlng/latlng.pb.go b/googleapis/type/latlng/latlng.pb.go
index 144327c575b468f8a2c3dab00651a085c945e2a3..2fd90d43770b0b07d1f0d5d503d420e202a87eee 100644
--- a/googleapis/type/latlng/latlng.pb.go
+++ b/googleapis/type/latlng/latlng.pb.go
@@ -59,9 +59,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 //     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
 type LatLng struct {
 	// The latitude in degrees. It must be in the range [-90.0, +90.0].
-	Latitude float64 `protobuf:"fixed64,1,opt,name=latitude" json:"latitude,omitempty"`
+	Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"`
 	// The longitude in degrees. It must be in the range [-180.0, +180.0].
-	Longitude            float64  `protobuf:"fixed64,2,opt,name=longitude" json:"longitude,omitempty"`
+	Longitude            float64  `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/type/money/money.pb.go b/googleapis/type/money/money.pb.go
index 1aa64f3e6f64b48c9b8aef8e6b7ba0198b90a7a2..9187be69cf849e5fedfdff21c1d3bd079113b715 100644
--- a/googleapis/type/money/money.pb.go
+++ b/googleapis/type/money/money.pb.go
@@ -21,17 +21,17 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // Represents an amount of money with its currency type.
 type Money struct {
 	// The 3-letter currency code defined in ISO 4217.
-	CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode" json:"currency_code,omitempty"`
+	CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
 	// The whole units of the amount.
 	// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-	Units int64 `protobuf:"varint,2,opt,name=units" json:"units,omitempty"`
+	Units int64 `protobuf:"varint,2,opt,name=units,proto3" json:"units,omitempty"`
 	// Number of nano (10^-9) units of the amount.
 	// The value must be between -999,999,999 and +999,999,999 inclusive.
 	// If `units` is positive, `nanos` must be positive or zero.
 	// If `units` is zero, `nanos` can be positive, zero, or negative.
 	// If `units` is negative, `nanos` must be negative or zero.
 	// For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
-	Nanos                int32    `protobuf:"varint,3,opt,name=nanos" json:"nanos,omitempty"`
+	Nanos                int32    `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/type/postaladdress/postal_address.pb.go b/googleapis/type/postaladdress/postal_address.pb.go
index ceb909da88747e443cb9cd8fbaa6678486355894..68ff4a2b7e6a0b0ea197f5bb0ad10d74866bbd8c 100644
--- a/googleapis/type/postaladdress/postal_address.pb.go
+++ b/googleapis/type/postaladdress/postal_address.pb.go
@@ -38,13 +38,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type PostalAddress struct {
 	// The schema revision of the `PostalAddress`.
 	// All new revisions **must** be backward compatible with old revisions.
-	Revision int32 `protobuf:"varint,1,opt,name=revision" json:"revision,omitempty"`
+	Revision int32 `protobuf:"varint,1,opt,name=revision,proto3" json:"revision,omitempty"`
 	// Required. CLDR region code of the country/region of the address. This
 	// is never inferred and it is up to the user to ensure the value is
 	// correct. See http://cldr.unicode.org/ and
 	// http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
 	// for details. Example: "CH" for Switzerland.
-	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode" json:"region_code,omitempty"`
+	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
 	// Optional. BCP-47 language code of the contents of this address (if
 	// known). This is often the UI language of the input form or is expected
 	// to match one of the languages used in the address' country/region, or their
@@ -57,18 +57,18 @@ type PostalAddress struct {
 	// possibly incorrect default).
 	//
 	// Examples: "zh-Hant", "ja", "ja-Latn", "en".
-	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
+	LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
 	// Optional. Postal code of the address. Not all countries use or require
 	// postal codes to be present, but where they are used, they may trigger
 	// additional validation with other parts of the address (e.g. state/zip
 	// validation in the U.S.A.).
-	PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode" json:"postal_code,omitempty"`
+	PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"`
 	// Optional. Additional, country-specific, sorting code. This is not used
 	// in most regions. Where it is used, the value is either a string like
 	// "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
 	// alone, representing the "sector code" (Jamaica), "delivery area indicator"
 	// (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
-	SortingCode string `protobuf:"bytes,5,opt,name=sorting_code,json=sortingCode" json:"sorting_code,omitempty"`
+	SortingCode string `protobuf:"bytes,5,opt,name=sorting_code,json=sortingCode,proto3" json:"sorting_code,omitempty"`
 	// Optional. Highest administrative subdivision which is used for postal
 	// addresses of a country or region.
 	// For example, this can be a state, a province, an oblast, or a prefecture.
@@ -76,15 +76,15 @@ type PostalAddress struct {
 	// community (e.g. "Barcelona" and not "Catalonia").
 	// Many countries don't use an administrative area in postal addresses. E.g.
 	// in Switzerland this should be left unpopulated.
-	AdministrativeArea string `protobuf:"bytes,6,opt,name=administrative_area,json=administrativeArea" json:"administrative_area,omitempty"`
+	AdministrativeArea string `protobuf:"bytes,6,opt,name=administrative_area,json=administrativeArea,proto3" json:"administrative_area,omitempty"`
 	// Optional. Generally refers to the city/town portion of the address.
 	// Examples: US city, IT comune, UK post town.
 	// In regions of the world where localities are not well defined or do not fit
 	// into this structure well, leave locality empty and use address_lines.
-	Locality string `protobuf:"bytes,7,opt,name=locality" json:"locality,omitempty"`
+	Locality string `protobuf:"bytes,7,opt,name=locality,proto3" json:"locality,omitempty"`
 	// Optional. Sublocality of the address.
 	// For example, this can be neighborhoods, boroughs, districts.
-	Sublocality string `protobuf:"bytes,8,opt,name=sublocality" json:"sublocality,omitempty"`
+	Sublocality string `protobuf:"bytes,8,opt,name=sublocality,proto3" json:"sublocality,omitempty"`
 	// Unstructured address lines describing the lower levels of an address.
 	//
 	// Because values in address_lines do not have type information and may
@@ -107,13 +107,13 @@ type PostalAddress struct {
 	// then geocoding is the recommended way to handle completely unstructured
 	// addresses (as opposed to guessing which parts of the address should be
 	// localities or administrative areas).
-	AddressLines []string `protobuf:"bytes,9,rep,name=address_lines,json=addressLines" json:"address_lines,omitempty"`
+	AddressLines []string `protobuf:"bytes,9,rep,name=address_lines,json=addressLines,proto3" json:"address_lines,omitempty"`
 	// Optional. The recipient at the address.
 	// This field may, under certain circumstances, contain multiline information.
 	// For example, it might contain "care of" information.
-	Recipients []string `protobuf:"bytes,10,rep,name=recipients" json:"recipients,omitempty"`
+	Recipients []string `protobuf:"bytes,10,rep,name=recipients,proto3" json:"recipients,omitempty"`
 	// Optional. The name of the organization at the address.
-	Organization         string   `protobuf:"bytes,11,opt,name=organization" json:"organization,omitempty"`
+	Organization         string   `protobuf:"bytes,11,opt,name=organization,proto3" json:"organization,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/type/timeofday/timeofday.pb.go b/googleapis/type/timeofday/timeofday.pb.go
index 2d1d6ae996bce4df1d0b5544b06eb0c54348a8aa..7a2122b25ea6c69af7a452eab949cf3983cc68a7 100644
--- a/googleapis/type/timeofday/timeofday.pb.go
+++ b/googleapis/type/timeofday/timeofday.pb.go
@@ -24,14 +24,14 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type TimeOfDay struct {
 	// 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.
-	Hours int32 `protobuf:"varint,1,opt,name=hours" json:"hours,omitempty"`
+	Hours int32 `protobuf:"varint,1,opt,name=hours,proto3" json:"hours,omitempty"`
 	// Minutes of hour of day. Must be from 0 to 59.
-	Minutes int32 `protobuf:"varint,2,opt,name=minutes" json:"minutes,omitempty"`
+	Minutes int32 `protobuf:"varint,2,opt,name=minutes,proto3" json:"minutes,omitempty"`
 	// 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.
-	Seconds int32 `protobuf:"varint,3,opt,name=seconds" json:"seconds,omitempty"`
+	Seconds int32 `protobuf:"varint,3,opt,name=seconds,proto3" json:"seconds,omitempty"`
 	// Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-	Nanos                int32    `protobuf:"varint,4,opt,name=nanos" json:"nanos,omitempty"`
+	Nanos                int32    `protobuf:"varint,4,opt,name=nanos,proto3" json:"nanos,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/googleapis/watcher/v1/watch.pb.go b/googleapis/watcher/v1/watch.pb.go
index 2c13f3570e22c5aea6c3b8a9c0572374a11bfd96..2babad42045f89893b15988b712f94fdcec88d71 100644
--- a/googleapis/watcher/v1/watch.pb.go
+++ b/googleapis/watcher/v1/watch.pb.go
@@ -90,7 +90,7 @@ type Request struct {
 	// contains a special character, it must be %-encoded.  We recommend that
 	// clients and servers use their runtime's URL library to produce and consume
 	// target values.
-	Target string `protobuf:"bytes,1,opt,name=target" json:"target,omitempty"`
+	Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
 	// The `resume_marker` specifies how much of the existing underlying state is
 	// delivered to the client when the watch request is received by the
 	// system. The client can set this marker in one of the following ways to get
@@ -167,7 +167,7 @@ func (m *Request) GetResumeMarker() []byte {
 // A batch of Change messages.
 type ChangeBatch struct {
 	// A list of Change messages.
-	Changes              []*Change `protobuf:"bytes,1,rep,name=changes" json:"changes,omitempty"`
+	Changes              []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -209,13 +209,13 @@ type Change struct {
 	// Name of the element, interpreted relative to the entity's actual
 	// name. "" refers to the entity itself. The element name is a valid
 	// UTF-8 string.
-	Element string `protobuf:"bytes,1,opt,name=element" json:"element,omitempty"`
+	Element string `protobuf:"bytes,1,opt,name=element,proto3" json:"element,omitempty"`
 	// The state of the `element`.
-	State Change_State `protobuf:"varint,2,opt,name=state,enum=google.watcher.v1.Change_State" json:"state,omitempty"`
+	State Change_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.watcher.v1.Change_State" json:"state,omitempty"`
 	// The actual change data. This field is present only when `state() == EXISTS`
 	// or `state() == ERROR`. Please see [google.protobuf.Any][google.protobuf.Any] about how to use
 	// the Any type.
-	Data *any.Any `protobuf:"bytes,6,opt,name=data" json:"data,omitempty"`
+	Data *any.Any `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`
 	// If present, provides a compact representation of all the messages that have
 	// been received by the caller for the given entity, e.g., it could be a
 	// sequence number or a multi-part timestamp/version vector. This marker can
@@ -224,7 +224,7 @@ type Change struct {
 	ResumeMarker []byte `protobuf:"bytes,4,opt,name=resume_marker,json=resumeMarker,proto3" json:"resume_marker,omitempty"`
 	// If true, this Change is followed by more Changes that are in the same group
 	// as this Change.
-	Continued            bool     `protobuf:"varint,5,opt,name=continued" json:"continued,omitempty"`
+	Continued            bool     `protobuf:"varint,5,opt,name=continued,proto3" json:"continued,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -352,8 +352,7 @@ func (x *watcherWatchClient) Recv() (*ChangeBatch, error) {
 	return m, nil
 }
 
-// Server API for Watcher service
-
+// WatcherServer is the server API for Watcher service.
 type WatcherServer interface {
 	// Start a streaming RPC to get watch information from the server.
 	Watch(*Request, Watcher_WatchServer) error
diff --git a/protobuf/api/api.pb.go b/protobuf/api/api.pb.go
index cf51a1495d176b567d66ee5ce7e737e4fcdcd3a6..617934549b90d777c7dc91d0138b1b1073bfc181 100644
--- a/protobuf/api/api.pb.go
+++ b/protobuf/api/api.pb.go
@@ -32,11 +32,11 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type Api struct {
 	// The fully qualified name of this interface, including package name
 	// followed by the interface's simple name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The methods of this interface, in unspecified order.
-	Methods []*Method `protobuf:"bytes,2,rep,name=methods" json:"methods,omitempty"`
+	Methods []*Method `protobuf:"bytes,2,rep,name=methods,proto3" json:"methods,omitempty"`
 	// Any metadata attached to the interface.
-	Options []*ptype.Option `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
+	Options []*ptype.Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
 	// A version string for this interface. If specified, must have the form
 	// `major-version.minor-version`, as in `1.10`. If the minor version is
 	// omitted, it defaults to zero. If the entire version field is empty, the
@@ -58,14 +58,14 @@ type Api struct {
 	// experimental, non-GA interfaces.
 	//
 	//
-	Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"`
+	Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
 	// Source context for the protocol buffer service represented by this
 	// message.
-	SourceContext *source_context.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext" json:"source_context,omitempty"`
+	SourceContext *source_context.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"`
 	// Included interfaces. See [Mixin][].
-	Mixins []*Mixin `protobuf:"bytes,6,rep,name=mixins" json:"mixins,omitempty"`
+	Mixins []*Mixin `protobuf:"bytes,6,rep,name=mixins,proto3" json:"mixins,omitempty"`
 	// The source syntax of the service.
-	Syntax               ptype.Syntax `protobuf:"varint,7,opt,name=syntax,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
+	Syntax               ptype.Syntax `protobuf:"varint,7,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -147,19 +147,19 @@ func (m *Api) GetSyntax() ptype.Syntax {
 // Method represents a method of an API interface.
 type Method struct {
 	// The simple name of this method.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// A URL of the input message type.
-	RequestTypeUrl string `protobuf:"bytes,2,opt,name=request_type_url,json=requestTypeUrl" json:"request_type_url,omitempty"`
+	RequestTypeUrl string `protobuf:"bytes,2,opt,name=request_type_url,json=requestTypeUrl,proto3" json:"request_type_url,omitempty"`
 	// If true, the request is streamed.
-	RequestStreaming bool `protobuf:"varint,3,opt,name=request_streaming,json=requestStreaming" json:"request_streaming,omitempty"`
+	RequestStreaming bool `protobuf:"varint,3,opt,name=request_streaming,json=requestStreaming,proto3" json:"request_streaming,omitempty"`
 	// The URL of the output message type.
-	ResponseTypeUrl string `protobuf:"bytes,4,opt,name=response_type_url,json=responseTypeUrl" json:"response_type_url,omitempty"`
+	ResponseTypeUrl string `protobuf:"bytes,4,opt,name=response_type_url,json=responseTypeUrl,proto3" json:"response_type_url,omitempty"`
 	// If true, the response is streamed.
-	ResponseStreaming bool `protobuf:"varint,5,opt,name=response_streaming,json=responseStreaming" json:"response_streaming,omitempty"`
+	ResponseStreaming bool `protobuf:"varint,5,opt,name=response_streaming,json=responseStreaming,proto3" json:"response_streaming,omitempty"`
 	// Any metadata attached to the method.
-	Options []*ptype.Option `protobuf:"bytes,6,rep,name=options" json:"options,omitempty"`
+	Options []*ptype.Option `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"`
 	// The source syntax of this method.
-	Syntax               ptype.Syntax `protobuf:"varint,7,opt,name=syntax,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
+	Syntax               ptype.Syntax `protobuf:"varint,7,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
 	XXX_unrecognized     []byte       `json:"-"`
 	XXX_sizecache        int32        `json:"-"`
@@ -318,10 +318,10 @@ func (m *Method) GetSyntax() ptype.Syntax {
 //     }
 type Mixin struct {
 	// The fully qualified name of the interface which is included.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// If non-empty specifies a path under which inherited HTTP paths
 	// are rooted.
-	Root                 string   `protobuf:"bytes,2,opt,name=root" json:"root,omitempty"`
+	Root                 string   `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/protobuf/field_mask/field_mask.pb.go b/protobuf/field_mask/field_mask.pb.go
index ace751f68d1d14d29289c4f3f29b1fe6fca74ff0..f7059620b9ffbdfdebff5f3cd8bb16fd97683bb3 100644
--- a/protobuf/field_mask/field_mask.pb.go
+++ b/protobuf/field_mask/field_mask.pb.go
@@ -227,7 +227,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 // `INVALID_ARGUMENT` error if any path is duplicated or unmappable.
 type FieldMask struct {
 	// The set of field mask paths.
-	Paths                []string `protobuf:"bytes,1,rep,name=paths" json:"paths,omitempty"`
+	Paths                []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/protobuf/ptype/type.pb.go b/protobuf/ptype/type.pb.go
index 52dfb5e30a875fc8ec8526db41a4da95f74c0e35..6a88e1d8cfafb276adc0554f36f87741fdf9f394 100644
--- a/protobuf/ptype/type.pb.go
+++ b/protobuf/ptype/type.pb.go
@@ -177,17 +177,17 @@ func (Field_Cardinality) EnumDescriptor() ([]byte, []int) {
 // A protocol buffer message type.
 type Type struct {
 	// The fully qualified message name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// The list of fields.
-	Fields []*Field `protobuf:"bytes,2,rep,name=fields" json:"fields,omitempty"`
+	Fields []*Field `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
 	// The list of types appearing in `oneof` definitions in this type.
-	Oneofs []string `protobuf:"bytes,3,rep,name=oneofs" json:"oneofs,omitempty"`
+	Oneofs []string `protobuf:"bytes,3,rep,name=oneofs,proto3" json:"oneofs,omitempty"`
 	// The protocol buffer options.
-	Options []*Option `protobuf:"bytes,4,rep,name=options" json:"options,omitempty"`
+	Options []*Option `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`
 	// The source context.
-	SourceContext *source_context.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext" json:"source_context,omitempty"`
+	SourceContext *source_context.SourceContext `protobuf:"bytes,5,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"`
 	// The source syntax.
-	Syntax               Syntax   `protobuf:"varint,6,opt,name=syntax,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
+	Syntax               Syntax   `protobuf:"varint,6,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -262,27 +262,27 @@ func (m *Type) GetSyntax() Syntax {
 // A single field of a message type.
 type Field struct {
 	// The field type.
-	Kind Field_Kind `protobuf:"varint,1,opt,name=kind,enum=google.protobuf.Field_Kind" json:"kind,omitempty"`
+	Kind Field_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=google.protobuf.Field_Kind" json:"kind,omitempty"`
 	// The field cardinality.
-	Cardinality Field_Cardinality `protobuf:"varint,2,opt,name=cardinality,enum=google.protobuf.Field_Cardinality" json:"cardinality,omitempty"`
+	Cardinality Field_Cardinality `protobuf:"varint,2,opt,name=cardinality,proto3,enum=google.protobuf.Field_Cardinality" json:"cardinality,omitempty"`
 	// The field number.
-	Number int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"`
+	Number int32 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"`
 	// The field name.
-	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
 	// The field type URL, without the scheme, for message or enumeration
 	// types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
-	TypeUrl string `protobuf:"bytes,6,opt,name=type_url,json=typeUrl" json:"type_url,omitempty"`
+	TypeUrl string `protobuf:"bytes,6,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
 	// The index of the field type in `Type.oneofs`, for message or enumeration
 	// types. The first type has index 1; zero means the type is not in the list.
-	OneofIndex int32 `protobuf:"varint,7,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"`
+	OneofIndex int32 `protobuf:"varint,7,opt,name=oneof_index,json=oneofIndex,proto3" json:"oneof_index,omitempty"`
 	// Whether to use alternative packed wire representation.
-	Packed bool `protobuf:"varint,8,opt,name=packed" json:"packed,omitempty"`
+	Packed bool `protobuf:"varint,8,opt,name=packed,proto3" json:"packed,omitempty"`
 	// The protocol buffer options.
-	Options []*Option `protobuf:"bytes,9,rep,name=options" json:"options,omitempty"`
+	Options []*Option `protobuf:"bytes,9,rep,name=options,proto3" json:"options,omitempty"`
 	// The field JSON name.
-	JsonName string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"`
+	JsonName string `protobuf:"bytes,10,opt,name=json_name,json=jsonName,proto3" json:"json_name,omitempty"`
 	// The string value of the default value of this field. Proto2 syntax only.
-	DefaultValue         string   `protobuf:"bytes,11,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"`
+	DefaultValue         string   `protobuf:"bytes,11,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -385,15 +385,15 @@ func (m *Field) GetDefaultValue() string {
 // Enum type definition.
 type Enum struct {
 	// Enum type name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Enum value definitions.
-	Enumvalue []*EnumValue `protobuf:"bytes,2,rep,name=enumvalue" json:"enumvalue,omitempty"`
+	Enumvalue []*EnumValue `protobuf:"bytes,2,rep,name=enumvalue,proto3" json:"enumvalue,omitempty"`
 	// Protocol buffer options.
-	Options []*Option `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
+	Options []*Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
 	// The source context.
-	SourceContext *source_context.SourceContext `protobuf:"bytes,4,opt,name=source_context,json=sourceContext" json:"source_context,omitempty"`
+	SourceContext *source_context.SourceContext `protobuf:"bytes,4,opt,name=source_context,json=sourceContext,proto3" json:"source_context,omitempty"`
 	// The source syntax.
-	Syntax               Syntax   `protobuf:"varint,5,opt,name=syntax,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
+	Syntax               Syntax   `protobuf:"varint,5,opt,name=syntax,proto3,enum=google.protobuf.Syntax" json:"syntax,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -461,11 +461,11 @@ func (m *Enum) GetSyntax() Syntax {
 // Enum value definition.
 type EnumValue struct {
 	// Enum value name.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Enum value number.
-	Number int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"`
+	Number int32 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
 	// Protocol buffer options.
-	Options              []*Option `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
+	Options              []*Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
 	XXX_sizecache        int32     `json:"-"`
@@ -523,12 +523,12 @@ type Option struct {
 	// 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"`.
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// 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.
-	Value                *any.Any `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+	Value                *any.Any `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
diff --git a/protobuf/source_context/source_context.pb.go b/protobuf/source_context/source_context.pb.go
index c4e03335e2c4302b4ecf213f49d8349629274a81..67a8873c126cd243973cd492e083009e35fd53f8 100644
--- a/protobuf/source_context/source_context.pb.go
+++ b/protobuf/source_context/source_context.pb.go
@@ -23,7 +23,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 type SourceContext struct {
 	// The path-qualified name of the .proto file that contained the associated
 	// protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-	FileName             string   `protobuf:"bytes,1,opt,name=file_name,json=fileName" json:"file_name,omitempty"`
+	FileName             string   `protobuf:"bytes,1,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`