diff --git a/googleapis/cloud/binaryauthorization/v1beta1/resources.pb.go b/googleapis/cloud/binaryauthorization/v1beta1/resources.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..b3d0c40d520474ed722efeacda3b51b4c4c3f31b
--- /dev/null
+++ b/googleapis/cloud/binaryauthorization/v1beta1/resources.pb.go
@@ -0,0 +1,966 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/binaryauthorization/v1beta1/resources.proto
+
+package binaryauthorization // import "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import timestamp "github.com/golang/protobuf/ptypes/timestamp"
+import _ "google.golang.org/genproto/googleapis/api/annotations"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+type Policy_GlobalPolicyEvaluationMode int32
+
+const (
+	// Not specified: DISABLE is assumed.
+	Policy_GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED Policy_GlobalPolicyEvaluationMode = 0
+	// Enables global policy evaluation.
+	Policy_ENABLE Policy_GlobalPolicyEvaluationMode = 1
+	// Disables global policy evaluation.
+	Policy_DISABLE Policy_GlobalPolicyEvaluationMode = 2
+)
+
+var Policy_GlobalPolicyEvaluationMode_name = map[int32]string{
+	0: "GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED",
+	1: "ENABLE",
+	2: "DISABLE",
+}
+var Policy_GlobalPolicyEvaluationMode_value = map[string]int32{
+	"GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED": 0,
+	"ENABLE":  1,
+	"DISABLE": 2,
+}
+
+func (x Policy_GlobalPolicyEvaluationMode) String() string {
+	return proto.EnumName(Policy_GlobalPolicyEvaluationMode_name, int32(x))
+}
+func (Policy_GlobalPolicyEvaluationMode) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{0, 0}
+}
+
+type AdmissionRule_EvaluationMode int32
+
+const (
+	// Do not use.
+	AdmissionRule_EVALUATION_MODE_UNSPECIFIED AdmissionRule_EvaluationMode = 0
+	// This rule allows all all pod creations.
+	AdmissionRule_ALWAYS_ALLOW AdmissionRule_EvaluationMode = 1
+	// This rule allows a pod creation if all the attestors listed in
+	// 'require_attestations_by' have valid attestations for all of the
+	// images in the pod spec.
+	AdmissionRule_REQUIRE_ATTESTATION AdmissionRule_EvaluationMode = 2
+	// This rule denies all pod creations.
+	AdmissionRule_ALWAYS_DENY AdmissionRule_EvaluationMode = 3
+)
+
+var AdmissionRule_EvaluationMode_name = map[int32]string{
+	0: "EVALUATION_MODE_UNSPECIFIED",
+	1: "ALWAYS_ALLOW",
+	2: "REQUIRE_ATTESTATION",
+	3: "ALWAYS_DENY",
+}
+var AdmissionRule_EvaluationMode_value = map[string]int32{
+	"EVALUATION_MODE_UNSPECIFIED": 0,
+	"ALWAYS_ALLOW":                1,
+	"REQUIRE_ATTESTATION":         2,
+	"ALWAYS_DENY":                 3,
+}
+
+func (x AdmissionRule_EvaluationMode) String() string {
+	return proto.EnumName(AdmissionRule_EvaluationMode_name, int32(x))
+}
+func (AdmissionRule_EvaluationMode) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{2, 0}
+}
+
+// Defines the possible actions when a pod creation is denied by an admission
+// rule.
+type AdmissionRule_EnforcementMode int32
+
+const (
+	// Do not use.
+	AdmissionRule_ENFORCEMENT_MODE_UNSPECIFIED AdmissionRule_EnforcementMode = 0
+	// Enforce the admission rule by blocking the pod creation.
+	AdmissionRule_ENFORCED_BLOCK_AND_AUDIT_LOG AdmissionRule_EnforcementMode = 1
+	// Dryrun mode: Audit logging only.  This will allow the pod creation as if
+	// the admission request had specified break-glass.
+	AdmissionRule_DRYRUN_AUDIT_LOG_ONLY AdmissionRule_EnforcementMode = 2
+)
+
+var AdmissionRule_EnforcementMode_name = map[int32]string{
+	0: "ENFORCEMENT_MODE_UNSPECIFIED",
+	1: "ENFORCED_BLOCK_AND_AUDIT_LOG",
+	2: "DRYRUN_AUDIT_LOG_ONLY",
+}
+var AdmissionRule_EnforcementMode_value = map[string]int32{
+	"ENFORCEMENT_MODE_UNSPECIFIED": 0,
+	"ENFORCED_BLOCK_AND_AUDIT_LOG": 1,
+	"DRYRUN_AUDIT_LOG_ONLY":        2,
+}
+
+func (x AdmissionRule_EnforcementMode) String() string {
+	return proto.EnumName(AdmissionRule_EnforcementMode_name, int32(x))
+}
+func (AdmissionRule_EnforcementMode) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{2, 1}
+}
+
+// Represents a signature algorithm and other information necessary to verify
+// signatures with a given public key.
+// This is based primarily on the public key types supported by Tink's
+// PemKeyType, which is in turn based on KMS's supported signing algorithms.
+// See https://cloud.google.com/kms/docs/algorithms. In the future, BinAuthz
+// might support additional public key types independently of Tink and/or KMS.
+type PkixPublicKey_SignatureAlgorithm int32
+
+const (
+	// Not specified.
+	PkixPublicKey_SIGNATURE_ALGORITHM_UNSPECIFIED PkixPublicKey_SignatureAlgorithm = 0
+	// RSASSA-PSS 2048 bit key with a SHA256 digest.
+	PkixPublicKey_RSA_PSS_2048_SHA256 PkixPublicKey_SignatureAlgorithm = 1
+	// RSASSA-PSS 3072 bit key with a SHA256 digest.
+	PkixPublicKey_RSA_PSS_3072_SHA256 PkixPublicKey_SignatureAlgorithm = 2
+	// RSASSA-PSS 4096 bit key with a SHA256 digest.
+	PkixPublicKey_RSA_PSS_4096_SHA256 PkixPublicKey_SignatureAlgorithm = 3
+	// RSASSA-PSS 4096 bit key with a SHA512 digest.
+	PkixPublicKey_RSA_PSS_4096_SHA512 PkixPublicKey_SignatureAlgorithm = 4
+	// RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
+	PkixPublicKey_RSA_SIGN_PKCS1_2048_SHA256 PkixPublicKey_SignatureAlgorithm = 5
+	// RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
+	PkixPublicKey_RSA_SIGN_PKCS1_3072_SHA256 PkixPublicKey_SignatureAlgorithm = 6
+	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
+	PkixPublicKey_RSA_SIGN_PKCS1_4096_SHA256 PkixPublicKey_SignatureAlgorithm = 7
+	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
+	PkixPublicKey_RSA_SIGN_PKCS1_4096_SHA512 PkixPublicKey_SignatureAlgorithm = 8
+	// ECDSA on the NIST P-256 curve with a SHA256 digest.
+	PkixPublicKey_ECDSA_P256_SHA256 PkixPublicKey_SignatureAlgorithm = 9
+	// ECDSA on the NIST P-384 curve with a SHA384 digest.
+	PkixPublicKey_ECDSA_P384_SHA384 PkixPublicKey_SignatureAlgorithm = 10
+	// ECDSA on the NIST P-521 curve with a SHA512 digest.
+	PkixPublicKey_ECDSA_P521_SHA512 PkixPublicKey_SignatureAlgorithm = 11
+)
+
+var PkixPublicKey_SignatureAlgorithm_name = map[int32]string{
+	0:  "SIGNATURE_ALGORITHM_UNSPECIFIED",
+	1:  "RSA_PSS_2048_SHA256",
+	2:  "RSA_PSS_3072_SHA256",
+	3:  "RSA_PSS_4096_SHA256",
+	4:  "RSA_PSS_4096_SHA512",
+	5:  "RSA_SIGN_PKCS1_2048_SHA256",
+	6:  "RSA_SIGN_PKCS1_3072_SHA256",
+	7:  "RSA_SIGN_PKCS1_4096_SHA256",
+	8:  "RSA_SIGN_PKCS1_4096_SHA512",
+	9:  "ECDSA_P256_SHA256",
+	10: "ECDSA_P384_SHA384",
+	11: "ECDSA_P521_SHA512",
+}
+var PkixPublicKey_SignatureAlgorithm_value = map[string]int32{
+	"SIGNATURE_ALGORITHM_UNSPECIFIED": 0,
+	"RSA_PSS_2048_SHA256":             1,
+	"RSA_PSS_3072_SHA256":             2,
+	"RSA_PSS_4096_SHA256":             3,
+	"RSA_PSS_4096_SHA512":             4,
+	"RSA_SIGN_PKCS1_2048_SHA256":      5,
+	"RSA_SIGN_PKCS1_3072_SHA256":      6,
+	"RSA_SIGN_PKCS1_4096_SHA256":      7,
+	"RSA_SIGN_PKCS1_4096_SHA512":      8,
+	"ECDSA_P256_SHA256":               9,
+	"ECDSA_P384_SHA384":               10,
+	"ECDSA_P521_SHA512":               11,
+}
+
+func (x PkixPublicKey_SignatureAlgorithm) String() string {
+	return proto.EnumName(PkixPublicKey_SignatureAlgorithm_name, int32(x))
+}
+func (PkixPublicKey_SignatureAlgorithm) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{5, 0}
+}
+
+// A [policy][google.cloud.binaryauthorization.v1beta1.Policy] for container image binary authorization.
+type Policy struct {
+	// Output only. The resource name, in the format `projects/*/policy`. There is
+	// at most one policy per project.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// Optional. A descriptive comment.
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
+	// Optional. Controls the evaluation of a Google-maintained global admission
+	// policy for common system-level images. Images not covered by the global
+	// policy will be subject to the project admission policy. This setting
+	// has no effect when specified inside a global admission policy.
+	GlobalPolicyEvaluationMode Policy_GlobalPolicyEvaluationMode `protobuf:"varint,7,opt,name=global_policy_evaluation_mode,json=globalPolicyEvaluationMode,proto3,enum=google.cloud.binaryauthorization.v1beta1.Policy_GlobalPolicyEvaluationMode" json:"global_policy_evaluation_mode,omitempty"`
+	// Optional. Admission policy whitelisting. A matching admission request will
+	// always be permitted. This feature is typically used to exclude Google or
+	// third-party infrastructure images from Binary Authorization policies.
+	AdmissionWhitelistPatterns []*AdmissionWhitelistPattern `protobuf:"bytes,2,rep,name=admission_whitelist_patterns,json=admissionWhitelistPatterns,proto3" json:"admission_whitelist_patterns,omitempty"`
+	// Optional. Per-cluster admission rules. Cluster spec format:
+	// `location.clusterId`. There can be at most one admission rule per cluster
+	// spec.
+	// A `location` is either a compute zone (e.g. us-central1-a) or a region
+	// (e.g. us-central1).
+	// For `clusterId` syntax restrictions see
+	// https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters.
+	ClusterAdmissionRules map[string]*AdmissionRule `protobuf:"bytes,3,rep,name=cluster_admission_rules,json=clusterAdmissionRules,proto3" json:"cluster_admission_rules,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	// Required. Default admission rule for a cluster without a per-cluster, per-
+	// kubernetes-service-account, or per-istio-service-identity admission rule.
+	DefaultAdmissionRule *AdmissionRule `protobuf:"bytes,4,opt,name=default_admission_rule,json=defaultAdmissionRule,proto3" json:"default_admission_rule,omitempty"`
+	// Output only. Time when the policy was last updated.
+	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:"-"`
+}
+
+func (m *Policy) Reset()         { *m = Policy{} }
+func (m *Policy) String() string { return proto.CompactTextString(m) }
+func (*Policy) ProtoMessage()    {}
+func (*Policy) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{0}
+}
+func (m *Policy) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Policy.Unmarshal(m, b)
+}
+func (m *Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Policy.Marshal(b, m, deterministic)
+}
+func (dst *Policy) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Policy.Merge(dst, src)
+}
+func (m *Policy) XXX_Size() int {
+	return xxx_messageInfo_Policy.Size(m)
+}
+func (m *Policy) XXX_DiscardUnknown() {
+	xxx_messageInfo_Policy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy proto.InternalMessageInfo
+
+func (m *Policy) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *Policy) GetDescription() string {
+	if m != nil {
+		return m.Description
+	}
+	return ""
+}
+
+func (m *Policy) GetGlobalPolicyEvaluationMode() Policy_GlobalPolicyEvaluationMode {
+	if m != nil {
+		return m.GlobalPolicyEvaluationMode
+	}
+	return Policy_GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED
+}
+
+func (m *Policy) GetAdmissionWhitelistPatterns() []*AdmissionWhitelistPattern {
+	if m != nil {
+		return m.AdmissionWhitelistPatterns
+	}
+	return nil
+}
+
+func (m *Policy) GetClusterAdmissionRules() map[string]*AdmissionRule {
+	if m != nil {
+		return m.ClusterAdmissionRules
+	}
+	return nil
+}
+
+func (m *Policy) GetDefaultAdmissionRule() *AdmissionRule {
+	if m != nil {
+		return m.DefaultAdmissionRule
+	}
+	return nil
+}
+
+func (m *Policy) GetUpdateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.UpdateTime
+	}
+	return nil
+}
+
+// An [admission whitelist pattern][google.cloud.binaryauthorization.v1beta1.AdmissionWhitelistPattern] exempts images
+// from checks by [admission rules][google.cloud.binaryauthorization.v1beta1.AdmissionRule].
+type AdmissionWhitelistPattern struct {
+	// An image name pattern to whitelist, in the form `registry/path/to/image`.
+	// This supports a trailing `*` as a wildcard, but this is allowed only in
+	// text after the `registry/` part.
+	NamePattern          string   `protobuf:"bytes,1,opt,name=name_pattern,json=namePattern,proto3" json:"name_pattern,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *AdmissionWhitelistPattern) Reset()         { *m = AdmissionWhitelistPattern{} }
+func (m *AdmissionWhitelistPattern) String() string { return proto.CompactTextString(m) }
+func (*AdmissionWhitelistPattern) ProtoMessage()    {}
+func (*AdmissionWhitelistPattern) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{1}
+}
+func (m *AdmissionWhitelistPattern) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AdmissionWhitelistPattern.Unmarshal(m, b)
+}
+func (m *AdmissionWhitelistPattern) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AdmissionWhitelistPattern.Marshal(b, m, deterministic)
+}
+func (dst *AdmissionWhitelistPattern) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AdmissionWhitelistPattern.Merge(dst, src)
+}
+func (m *AdmissionWhitelistPattern) XXX_Size() int {
+	return xxx_messageInfo_AdmissionWhitelistPattern.Size(m)
+}
+func (m *AdmissionWhitelistPattern) XXX_DiscardUnknown() {
+	xxx_messageInfo_AdmissionWhitelistPattern.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AdmissionWhitelistPattern proto.InternalMessageInfo
+
+func (m *AdmissionWhitelistPattern) GetNamePattern() string {
+	if m != nil {
+		return m.NamePattern
+	}
+	return ""
+}
+
+// An [admission rule][google.cloud.binaryauthorization.v1beta1.AdmissionRule] specifies either that all container images
+// used in a pod creation request must be attested to by one or more
+// [attestors][google.cloud.binaryauthorization.v1beta1.Attestor], that all pod creations will be allowed, or that all
+// pod creations will be denied.
+//
+// Images matching an [admission whitelist pattern][google.cloud.binaryauthorization.v1beta1.AdmissionWhitelistPattern]
+// are exempted from admission rules and will never block a pod creation.
+type AdmissionRule struct {
+	// Required. How this admission rule will be evaluated.
+	EvaluationMode AdmissionRule_EvaluationMode `protobuf:"varint,1,opt,name=evaluation_mode,json=evaluationMode,proto3,enum=google.cloud.binaryauthorization.v1beta1.AdmissionRule_EvaluationMode" json:"evaluation_mode,omitempty"`
+	// Optional. The resource names of the attestors that must attest to
+	// a container image, in the format `projects/*/attestors/*`. Each
+	// attestor must exist before a policy can reference it.  To add an attestor
+	// to a policy the principal issuing the policy change request must be able
+	// to read the attestor resource.
+	//
+	// Note: this field must be non-empty when the evaluation_mode field specifies
+	// REQUIRE_ATTESTATION, otherwise it must be empty.
+	RequireAttestationsBy []string `protobuf:"bytes,2,rep,name=require_attestations_by,json=requireAttestationsBy,proto3" json:"require_attestations_by,omitempty"`
+	// Required. The action when a pod creation is denied by the admission rule.
+	EnforcementMode      AdmissionRule_EnforcementMode `protobuf:"varint,3,opt,name=enforcement_mode,json=enforcementMode,proto3,enum=google.cloud.binaryauthorization.v1beta1.AdmissionRule_EnforcementMode" json:"enforcement_mode,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
+	XXX_unrecognized     []byte                        `json:"-"`
+	XXX_sizecache        int32                         `json:"-"`
+}
+
+func (m *AdmissionRule) Reset()         { *m = AdmissionRule{} }
+func (m *AdmissionRule) String() string { return proto.CompactTextString(m) }
+func (*AdmissionRule) ProtoMessage()    {}
+func (*AdmissionRule) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{2}
+}
+func (m *AdmissionRule) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AdmissionRule.Unmarshal(m, b)
+}
+func (m *AdmissionRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AdmissionRule.Marshal(b, m, deterministic)
+}
+func (dst *AdmissionRule) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AdmissionRule.Merge(dst, src)
+}
+func (m *AdmissionRule) XXX_Size() int {
+	return xxx_messageInfo_AdmissionRule.Size(m)
+}
+func (m *AdmissionRule) XXX_DiscardUnknown() {
+	xxx_messageInfo_AdmissionRule.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AdmissionRule proto.InternalMessageInfo
+
+func (m *AdmissionRule) GetEvaluationMode() AdmissionRule_EvaluationMode {
+	if m != nil {
+		return m.EvaluationMode
+	}
+	return AdmissionRule_EVALUATION_MODE_UNSPECIFIED
+}
+
+func (m *AdmissionRule) GetRequireAttestationsBy() []string {
+	if m != nil {
+		return m.RequireAttestationsBy
+	}
+	return nil
+}
+
+func (m *AdmissionRule) GetEnforcementMode() AdmissionRule_EnforcementMode {
+	if m != nil {
+		return m.EnforcementMode
+	}
+	return AdmissionRule_ENFORCEMENT_MODE_UNSPECIFIED
+}
+
+// An [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] that attests to container image
+// artifacts. An existing attestor cannot be modified except where
+// indicated.
+type Attestor struct {
+	// Required. The resource name, in the format:
+	// `projects/*/attestors/*`. This field may not be updated.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// Optional. A descriptive comment.  This field may be updated.
+	// The field may be displayed in chooser dialogs.
+	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
+	// Required. Identifies an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] that attests to a
+	// container image artifact. This determines how an attestation will
+	// be stored, and how it will be used during policy
+	// enforcement. Updates may not change the attestor type, but individual
+	// attestor fields may be updated
+	//
+	// Types that are valid to be assigned to AttestorType:
+	//	*Attestor_UserOwnedDrydockNote
+	AttestorType isAttestor_AttestorType `protobuf_oneof:"attestor_type"`
+	// Output only. Time when the attestor was last updated.
+	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:"-"`
+}
+
+func (m *Attestor) Reset()         { *m = Attestor{} }
+func (m *Attestor) String() string { return proto.CompactTextString(m) }
+func (*Attestor) ProtoMessage()    {}
+func (*Attestor) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{3}
+}
+func (m *Attestor) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Attestor.Unmarshal(m, b)
+}
+func (m *Attestor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Attestor.Marshal(b, m, deterministic)
+}
+func (dst *Attestor) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Attestor.Merge(dst, src)
+}
+func (m *Attestor) XXX_Size() int {
+	return xxx_messageInfo_Attestor.Size(m)
+}
+func (m *Attestor) XXX_DiscardUnknown() {
+	xxx_messageInfo_Attestor.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Attestor proto.InternalMessageInfo
+
+func (m *Attestor) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *Attestor) GetDescription() string {
+	if m != nil {
+		return m.Description
+	}
+	return ""
+}
+
+type isAttestor_AttestorType interface {
+	isAttestor_AttestorType()
+}
+
+type Attestor_UserOwnedDrydockNote struct {
+	UserOwnedDrydockNote *UserOwnedDrydockNote `protobuf:"bytes,3,opt,name=user_owned_drydock_note,json=userOwnedDrydockNote,proto3,oneof"`
+}
+
+func (*Attestor_UserOwnedDrydockNote) isAttestor_AttestorType() {}
+
+func (m *Attestor) GetAttestorType() isAttestor_AttestorType {
+	if m != nil {
+		return m.AttestorType
+	}
+	return nil
+}
+
+func (m *Attestor) GetUserOwnedDrydockNote() *UserOwnedDrydockNote {
+	if x, ok := m.GetAttestorType().(*Attestor_UserOwnedDrydockNote); ok {
+		return x.UserOwnedDrydockNote
+	}
+	return nil
+}
+
+func (m *Attestor) GetUpdateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.UpdateTime
+	}
+	return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*Attestor) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _Attestor_OneofMarshaler, _Attestor_OneofUnmarshaler, _Attestor_OneofSizer, []interface{}{
+		(*Attestor_UserOwnedDrydockNote)(nil),
+	}
+}
+
+func _Attestor_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*Attestor)
+	// attestor_type
+	switch x := m.AttestorType.(type) {
+	case *Attestor_UserOwnedDrydockNote:
+		b.EncodeVarint(3<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.UserOwnedDrydockNote); err != nil {
+			return err
+		}
+	case nil:
+	default:
+		return fmt.Errorf("Attestor.AttestorType has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _Attestor_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*Attestor)
+	switch tag {
+	case 3: // attestor_type.user_owned_drydock_note
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(UserOwnedDrydockNote)
+		err := b.DecodeMessage(msg)
+		m.AttestorType = &Attestor_UserOwnedDrydockNote{msg}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _Attestor_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*Attestor)
+	// attestor_type
+	switch x := m.AttestorType.(type) {
+	case *Attestor_UserOwnedDrydockNote:
+		s := proto.Size(x.UserOwnedDrydockNote)
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// An [user owned drydock note][google.cloud.binaryauthorization.v1beta1.UserOwnedDrydockNote] references a Drydock
+// ATTESTATION_AUTHORITY Note created by the user.
+type UserOwnedDrydockNote struct {
+	// Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
+	// created by the user, in the format: `projects/*/notes/*` (or the legacy
+	// `providers/*/notes/*`). This field may not be updated.
+	//
+	// An attestation by this attestor is stored as a Drydock
+	// ATTESTATION_AUTHORITY Occurrence that names a container image and that
+	// links to this Note. Drydock is an external dependency.
+	NoteReference string `protobuf:"bytes,1,opt,name=note_reference,json=noteReference,proto3" json:"note_reference,omitempty"`
+	// Optional. Public keys that verify attestations signed by this
+	// attestor.  This field may be updated.
+	//
+	// If this field is non-empty, one of the specified public keys must
+	// verify that an attestation was signed by this attestor for the
+	// image specified in the admission request.
+	//
+	// If this field is empty, this attestor always returns that no
+	// valid attestations exist.
+	PublicKeys []*AttestorPublicKey `protobuf:"bytes,2,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"`
+	// Output only. This field will contain the service account email address
+	// that this Attestor will use as the principal when querying Container
+	// Analysis. Attestor administrators must grant this service account the
+	// IAM role needed to read attestations from the [note_reference][Note] in
+	// Container Analysis (`containeranalysis.notes.occurrences.viewer`).
+	//
+	// This email address is fixed for the lifetime of the Attestor, but callers
+	// should not make any other assumptions about the service account email;
+	// future versions may use an email based on a different naming pattern.
+	DelegationServiceAccountEmail string   `protobuf:"bytes,3,opt,name=delegation_service_account_email,json=delegationServiceAccountEmail,proto3" json:"delegation_service_account_email,omitempty"`
+	XXX_NoUnkeyedLiteral          struct{} `json:"-"`
+	XXX_unrecognized              []byte   `json:"-"`
+	XXX_sizecache                 int32    `json:"-"`
+}
+
+func (m *UserOwnedDrydockNote) Reset()         { *m = UserOwnedDrydockNote{} }
+func (m *UserOwnedDrydockNote) String() string { return proto.CompactTextString(m) }
+func (*UserOwnedDrydockNote) ProtoMessage()    {}
+func (*UserOwnedDrydockNote) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{4}
+}
+func (m *UserOwnedDrydockNote) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserOwnedDrydockNote.Unmarshal(m, b)
+}
+func (m *UserOwnedDrydockNote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserOwnedDrydockNote.Marshal(b, m, deterministic)
+}
+func (dst *UserOwnedDrydockNote) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserOwnedDrydockNote.Merge(dst, src)
+}
+func (m *UserOwnedDrydockNote) XXX_Size() int {
+	return xxx_messageInfo_UserOwnedDrydockNote.Size(m)
+}
+func (m *UserOwnedDrydockNote) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserOwnedDrydockNote.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserOwnedDrydockNote proto.InternalMessageInfo
+
+func (m *UserOwnedDrydockNote) GetNoteReference() string {
+	if m != nil {
+		return m.NoteReference
+	}
+	return ""
+}
+
+func (m *UserOwnedDrydockNote) GetPublicKeys() []*AttestorPublicKey {
+	if m != nil {
+		return m.PublicKeys
+	}
+	return nil
+}
+
+func (m *UserOwnedDrydockNote) GetDelegationServiceAccountEmail() string {
+	if m != nil {
+		return m.DelegationServiceAccountEmail
+	}
+	return ""
+}
+
+// A public key in the PkixPublicKey format (see
+// https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
+// Public keys of this type are typically textually encoded using the PEM
+// format.
+type PkixPublicKey struct {
+	// A PEM-encoded public key, as described in
+	// https://tools.ietf.org/html/rfc7468#section-13
+	PublicKeyPem string `protobuf:"bytes,1,opt,name=public_key_pem,json=publicKeyPem,proto3" json:"public_key_pem,omitempty"`
+	// The signature algorithm used to verify a message against a signature using
+	// this key.
+	// These signature algorithm must match the structure and any object
+	// identifiers encoded in `public_key_pem` (i.e. this algorithm must match
+	// that of the public key).
+	SignatureAlgorithm   PkixPublicKey_SignatureAlgorithm `protobuf:"varint,2,opt,name=signature_algorithm,json=signatureAlgorithm,proto3,enum=google.cloud.binaryauthorization.v1beta1.PkixPublicKey_SignatureAlgorithm" json:"signature_algorithm,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
+	XXX_unrecognized     []byte                           `json:"-"`
+	XXX_sizecache        int32                            `json:"-"`
+}
+
+func (m *PkixPublicKey) Reset()         { *m = PkixPublicKey{} }
+func (m *PkixPublicKey) String() string { return proto.CompactTextString(m) }
+func (*PkixPublicKey) ProtoMessage()    {}
+func (*PkixPublicKey) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{5}
+}
+func (m *PkixPublicKey) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_PkixPublicKey.Unmarshal(m, b)
+}
+func (m *PkixPublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_PkixPublicKey.Marshal(b, m, deterministic)
+}
+func (dst *PkixPublicKey) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PkixPublicKey.Merge(dst, src)
+}
+func (m *PkixPublicKey) XXX_Size() int {
+	return xxx_messageInfo_PkixPublicKey.Size(m)
+}
+func (m *PkixPublicKey) XXX_DiscardUnknown() {
+	xxx_messageInfo_PkixPublicKey.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PkixPublicKey proto.InternalMessageInfo
+
+func (m *PkixPublicKey) GetPublicKeyPem() string {
+	if m != nil {
+		return m.PublicKeyPem
+	}
+	return ""
+}
+
+func (m *PkixPublicKey) GetSignatureAlgorithm() PkixPublicKey_SignatureAlgorithm {
+	if m != nil {
+		return m.SignatureAlgorithm
+	}
+	return PkixPublicKey_SIGNATURE_ALGORITHM_UNSPECIFIED
+}
+
+// An [attestor public key][google.cloud.binaryauthorization.v1beta1.AttestorPublicKey] that will be used to verify
+// attestations signed by this attestor.
+type AttestorPublicKey struct {
+	// Optional. A descriptive comment. This field may be updated.
+	Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
+	// The ID of this public key.
+	// Signatures verified by BinAuthz must include the ID of the public key that
+	// can be used to verify them, and that ID must match the contents of this
+	// field exactly.
+	// Additional restrictions on this field can be imposed based on which public
+	// key type is encapsulated. See the documentation on `public_key` cases below
+	// for details.
+	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+	// Required. A public key reference or serialized instance. This field may be
+	// updated.
+	//
+	// Types that are valid to be assigned to PublicKey:
+	//	*AttestorPublicKey_AsciiArmoredPgpPublicKey
+	//	*AttestorPublicKey_PkixPublicKey
+	PublicKey            isAttestorPublicKey_PublicKey `protobuf_oneof:"public_key"`
+	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
+	XXX_unrecognized     []byte                        `json:"-"`
+	XXX_sizecache        int32                         `json:"-"`
+}
+
+func (m *AttestorPublicKey) Reset()         { *m = AttestorPublicKey{} }
+func (m *AttestorPublicKey) String() string { return proto.CompactTextString(m) }
+func (*AttestorPublicKey) ProtoMessage()    {}
+func (*AttestorPublicKey) Descriptor() ([]byte, []int) {
+	return fileDescriptor_resources_681125b4209c9198, []int{6}
+}
+func (m *AttestorPublicKey) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AttestorPublicKey.Unmarshal(m, b)
+}
+func (m *AttestorPublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AttestorPublicKey.Marshal(b, m, deterministic)
+}
+func (dst *AttestorPublicKey) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AttestorPublicKey.Merge(dst, src)
+}
+func (m *AttestorPublicKey) XXX_Size() int {
+	return xxx_messageInfo_AttestorPublicKey.Size(m)
+}
+func (m *AttestorPublicKey) XXX_DiscardUnknown() {
+	xxx_messageInfo_AttestorPublicKey.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AttestorPublicKey proto.InternalMessageInfo
+
+func (m *AttestorPublicKey) GetComment() string {
+	if m != nil {
+		return m.Comment
+	}
+	return ""
+}
+
+func (m *AttestorPublicKey) GetId() string {
+	if m != nil {
+		return m.Id
+	}
+	return ""
+}
+
+type isAttestorPublicKey_PublicKey interface {
+	isAttestorPublicKey_PublicKey()
+}
+
+type AttestorPublicKey_AsciiArmoredPgpPublicKey struct {
+	AsciiArmoredPgpPublicKey string `protobuf:"bytes,3,opt,name=ascii_armored_pgp_public_key,json=asciiArmoredPgpPublicKey,proto3,oneof"`
+}
+
+type AttestorPublicKey_PkixPublicKey struct {
+	PkixPublicKey *PkixPublicKey `protobuf:"bytes,5,opt,name=pkix_public_key,json=pkixPublicKey,proto3,oneof"`
+}
+
+func (*AttestorPublicKey_AsciiArmoredPgpPublicKey) isAttestorPublicKey_PublicKey() {}
+
+func (*AttestorPublicKey_PkixPublicKey) isAttestorPublicKey_PublicKey() {}
+
+func (m *AttestorPublicKey) GetPublicKey() isAttestorPublicKey_PublicKey {
+	if m != nil {
+		return m.PublicKey
+	}
+	return nil
+}
+
+func (m *AttestorPublicKey) GetAsciiArmoredPgpPublicKey() string {
+	if x, ok := m.GetPublicKey().(*AttestorPublicKey_AsciiArmoredPgpPublicKey); ok {
+		return x.AsciiArmoredPgpPublicKey
+	}
+	return ""
+}
+
+func (m *AttestorPublicKey) GetPkixPublicKey() *PkixPublicKey {
+	if x, ok := m.GetPublicKey().(*AttestorPublicKey_PkixPublicKey); ok {
+		return x.PkixPublicKey
+	}
+	return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*AttestorPublicKey) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _AttestorPublicKey_OneofMarshaler, _AttestorPublicKey_OneofUnmarshaler, _AttestorPublicKey_OneofSizer, []interface{}{
+		(*AttestorPublicKey_AsciiArmoredPgpPublicKey)(nil),
+		(*AttestorPublicKey_PkixPublicKey)(nil),
+	}
+}
+
+func _AttestorPublicKey_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*AttestorPublicKey)
+	// public_key
+	switch x := m.PublicKey.(type) {
+	case *AttestorPublicKey_AsciiArmoredPgpPublicKey:
+		b.EncodeVarint(3<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.AsciiArmoredPgpPublicKey)
+	case *AttestorPublicKey_PkixPublicKey:
+		b.EncodeVarint(5<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.PkixPublicKey); err != nil {
+			return err
+		}
+	case nil:
+	default:
+		return fmt.Errorf("AttestorPublicKey.PublicKey has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _AttestorPublicKey_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*AttestorPublicKey)
+	switch tag {
+	case 3: // public_key.ascii_armored_pgp_public_key
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.PublicKey = &AttestorPublicKey_AsciiArmoredPgpPublicKey{x}
+		return true, err
+	case 5: // public_key.pkix_public_key
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(PkixPublicKey)
+		err := b.DecodeMessage(msg)
+		m.PublicKey = &AttestorPublicKey_PkixPublicKey{msg}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _AttestorPublicKey_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*AttestorPublicKey)
+	// public_key
+	switch x := m.PublicKey.(type) {
+	case *AttestorPublicKey_AsciiArmoredPgpPublicKey:
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(len(x.AsciiArmoredPgpPublicKey)))
+		n += len(x.AsciiArmoredPgpPublicKey)
+	case *AttestorPublicKey_PkixPublicKey:
+		s := proto.Size(x.PkixPublicKey)
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+func init() {
+	proto.RegisterType((*Policy)(nil), "google.cloud.binaryauthorization.v1beta1.Policy")
+	proto.RegisterMapType((map[string]*AdmissionRule)(nil), "google.cloud.binaryauthorization.v1beta1.Policy.ClusterAdmissionRulesEntry")
+	proto.RegisterType((*AdmissionWhitelistPattern)(nil), "google.cloud.binaryauthorization.v1beta1.AdmissionWhitelistPattern")
+	proto.RegisterType((*AdmissionRule)(nil), "google.cloud.binaryauthorization.v1beta1.AdmissionRule")
+	proto.RegisterType((*Attestor)(nil), "google.cloud.binaryauthorization.v1beta1.Attestor")
+	proto.RegisterType((*UserOwnedDrydockNote)(nil), "google.cloud.binaryauthorization.v1beta1.UserOwnedDrydockNote")
+	proto.RegisterType((*PkixPublicKey)(nil), "google.cloud.binaryauthorization.v1beta1.PkixPublicKey")
+	proto.RegisterType((*AttestorPublicKey)(nil), "google.cloud.binaryauthorization.v1beta1.AttestorPublicKey")
+	proto.RegisterEnum("google.cloud.binaryauthorization.v1beta1.Policy_GlobalPolicyEvaluationMode", Policy_GlobalPolicyEvaluationMode_name, Policy_GlobalPolicyEvaluationMode_value)
+	proto.RegisterEnum("google.cloud.binaryauthorization.v1beta1.AdmissionRule_EvaluationMode", AdmissionRule_EvaluationMode_name, AdmissionRule_EvaluationMode_value)
+	proto.RegisterEnum("google.cloud.binaryauthorization.v1beta1.AdmissionRule_EnforcementMode", AdmissionRule_EnforcementMode_name, AdmissionRule_EnforcementMode_value)
+	proto.RegisterEnum("google.cloud.binaryauthorization.v1beta1.PkixPublicKey_SignatureAlgorithm", PkixPublicKey_SignatureAlgorithm_name, PkixPublicKey_SignatureAlgorithm_value)
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/binaryauthorization/v1beta1/resources.proto", fileDescriptor_resources_681125b4209c9198)
+}
+
+var fileDescriptor_resources_681125b4209c9198 = []byte{
+	// 1214 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x5f, 0x73, 0xdb, 0xc4,
+	0x17, 0x8d, 0x9c, 0x7f, 0xcd, 0x75, 0xe2, 0xb8, 0xdb, 0xe6, 0x17, 0xd7, 0xbf, 0x94, 0x1a, 0x03,
+	0x33, 0xe1, 0x01, 0xbb, 0x71, 0x92, 0x36, 0xd0, 0x99, 0x0e, 0xb2, 0xad, 0x3a, 0x26, 0x8e, 0x6d,
+	0x64, 0x9b, 0x4e, 0x80, 0x99, 0x65, 0x2d, 0x6d, 0x54, 0x4d, 0x24, 0xad, 0x58, 0x49, 0x6d, 0x0d,
+	0x4f, 0x0c, 0xc3, 0xf0, 0x04, 0xaf, 0x7c, 0x3f, 0x86, 0x0f, 0xc0, 0x0c, 0x2f, 0x3c, 0x32, 0xab,
+	0x3f, 0xb1, 0xe3, 0x3a, 0x25, 0x09, 0x6f, 0xde, 0x7b, 0xee, 0x9e, 0x7b, 0xf6, 0xee, 0xb9, 0x2b,
+	0xc3, 0x81, 0xc1, 0x98, 0x61, 0xd1, 0xb2, 0x66, 0xb1, 0x40, 0x2f, 0x0f, 0x4d, 0x87, 0xf0, 0x11,
+	0x09, 0xfc, 0x17, 0x8c, 0x9b, 0xdf, 0x11, 0xdf, 0x64, 0x4e, 0xf9, 0xe5, 0xce, 0x90, 0xfa, 0x64,
+	0xa7, 0xcc, 0xa9, 0xc7, 0x02, 0xae, 0x51, 0xaf, 0xe4, 0x72, 0xe6, 0x33, 0xb4, 0x1d, 0xed, 0x2c,
+	0x85, 0x3b, 0x4b, 0x33, 0x76, 0x96, 0xe2, 0x9d, 0xf9, 0xad, 0xb8, 0x06, 0x71, 0xcd, 0x32, 0x71,
+	0x1c, 0xe6, 0x87, 0x70, 0xcc, 0x93, 0x7f, 0x10, 0xa3, 0xe1, 0x6a, 0x18, 0x9c, 0x96, 0x7d, 0xd3,
+	0xa6, 0x9e, 0x4f, 0x6c, 0x37, 0x4a, 0x28, 0xfe, 0xb5, 0x04, 0x4b, 0x5d, 0x66, 0x99, 0xda, 0x08,
+	0x21, 0x58, 0x70, 0x88, 0x4d, 0x73, 0x52, 0x41, 0xda, 0x5e, 0x51, 0xc3, 0xdf, 0xa8, 0x00, 0x69,
+	0x9d, 0x7a, 0x1a, 0x37, 0x5d, 0xc1, 0x9a, 0x5b, 0x0a, 0xa1, 0xc9, 0x10, 0xfa, 0x55, 0x82, 0xfb,
+	0x86, 0xc5, 0x86, 0xc4, 0xc2, 0x6e, 0xc8, 0x83, 0xe9, 0x4b, 0x62, 0x05, 0xa1, 0x0a, 0x6c, 0x33,
+	0x9d, 0xe6, 0x96, 0x0b, 0xd2, 0x76, 0xa6, 0x72, 0x54, 0xba, 0xea, 0x91, 0x4a, 0x91, 0x9e, 0x52,
+	0x23, 0x64, 0x8d, 0x16, 0xca, 0x39, 0xe7, 0x31, 0xd3, 0xa9, 0x9a, 0x37, 0x2e, 0xc5, 0xd0, 0x4f,
+	0x12, 0x6c, 0x11, 0xdd, 0x36, 0x3d, 0x4f, 0x28, 0x78, 0xf5, 0xc2, 0xf4, 0xa9, 0x65, 0x7a, 0x3e,
+	0x76, 0x89, 0xef, 0x53, 0xee, 0x78, 0xb9, 0x54, 0x61, 0x7e, 0x3b, 0x5d, 0xa9, 0x5d, 0x5d, 0x8f,
+	0x9c, 0xb0, 0x3d, 0x4f, 0xc8, 0xba, 0x11, 0x97, 0x9a, 0x27, 0x97, 0x41, 0x1e, 0xfa, 0x51, 0x82,
+	0x4d, 0xcd, 0x0a, 0x3c, 0x9f, 0x72, 0x3c, 0xd6, 0xc3, 0x03, 0x8b, 0x7a, 0xb9, 0xf9, 0x50, 0xc2,
+	0xf5, 0x5b, 0x52, 0x8b, 0xf8, 0xce, 0x05, 0xa9, 0x82, 0x4d, 0x71, 0x7c, 0x3e, 0x52, 0x37, 0xb4,
+	0x59, 0x18, 0xb2, 0xe1, 0x7f, 0x3a, 0x3d, 0x25, 0x81, 0xe5, 0x4f, 0x89, 0xc8, 0x2d, 0x14, 0xa4,
+	0xed, 0x74, 0xe5, 0xf1, 0x0d, 0xda, 0x20, 0x98, 0xd5, 0xbb, 0x31, 0xed, 0x85, 0x28, 0x7a, 0x02,
+	0xe9, 0xc0, 0xd5, 0x89, 0x4f, 0xb1, 0x30, 0x5a, 0x6e, 0x31, 0xac, 0x91, 0x4f, 0x6a, 0x24, 0x2e,
+	0x2c, 0xf5, 0x13, 0x17, 0xaa, 0x10, 0xa5, 0x8b, 0x40, 0xfe, 0x07, 0x09, 0xf2, 0x97, 0x9f, 0x10,
+	0x65, 0x61, 0xfe, 0x8c, 0x8e, 0x62, 0x7b, 0x8a, 0x9f, 0xe8, 0x18, 0x16, 0xc5, 0xdd, 0xd3, 0x5c,
+	0xea, 0xbf, 0x9d, 0x25, 0x62, 0xf9, 0x24, 0x75, 0x20, 0x15, 0x75, 0xc8, 0x5f, 0xee, 0x3b, 0xf4,
+	0x11, 0x7c, 0xd8, 0x68, 0x75, 0xaa, 0x72, 0x0b, 0x77, 0x3b, 0xad, 0x66, 0xed, 0x04, 0x2b, 0x5f,
+	0xc8, 0xad, 0x81, 0xdc, 0x6f, 0x76, 0xda, 0xf8, 0xb8, 0x53, 0x57, 0xf0, 0xa0, 0xdd, 0xeb, 0x2a,
+	0xb5, 0xe6, 0xb3, 0xa6, 0x52, 0xcf, 0xce, 0x21, 0x80, 0x25, 0xa5, 0x2d, 0x57, 0x5b, 0x4a, 0x56,
+	0x42, 0x69, 0x58, 0xae, 0x37, 0x7b, 0xe1, 0x22, 0x55, 0x7c, 0x0a, 0xf7, 0x2e, 0x35, 0x15, 0x7a,
+	0x17, 0x56, 0xc5, 0xec, 0x25, 0x86, 0x8d, 0x0f, 0x9c, 0x16, 0xb1, 0x38, 0xa5, 0xf8, 0xcb, 0x02,
+	0xac, 0x5d, 0x6c, 0x3c, 0x83, 0xf5, 0xe9, 0xb9, 0x93, 0xc2, 0xb9, 0x7b, 0x76, 0xc3, 0xa6, 0x94,
+	0xa6, 0x46, 0x2e, 0x43, 0x2f, 0xb6, 0xe2, 0x11, 0x6c, 0x72, 0xfa, 0x6d, 0x60, 0x72, 0x8a, 0x85,
+	0x28, 0x2f, 0x7e, 0x77, 0xf0, 0x70, 0x14, 0x0e, 0xd8, 0x8a, 0xba, 0x11, 0xc3, 0xf2, 0x04, 0x5a,
+	0x1d, 0x21, 0x0e, 0x59, 0xea, 0x9c, 0x32, 0xae, 0x51, 0x9b, 0x3a, 0x7e, 0xa4, 0x74, 0x3e, 0x54,
+	0xda, 0xb8, 0xb1, 0xd2, 0x31, 0x5f, 0x28, 0x75, 0x9d, 0x5e, 0x0c, 0x14, 0x6d, 0xc8, 0x4c, 0x5d,
+	0xe4, 0x03, 0xf8, 0xff, 0xdb, 0xaf, 0x2e, 0x0b, 0xab, 0x72, 0xeb, 0xb9, 0x7c, 0xd2, 0xc3, 0x72,
+	0xab, 0xd5, 0x79, 0x9e, 0x95, 0xd0, 0x26, 0xdc, 0x51, 0x95, 0xcf, 0x07, 0x4d, 0x55, 0xc1, 0x72,
+	0xbf, 0xaf, 0xf4, 0xfa, 0xe1, 0xde, 0x6c, 0x0a, 0xad, 0x43, 0x3a, 0x4e, 0xad, 0x2b, 0xed, 0x93,
+	0xec, 0x7c, 0xd1, 0x85, 0xf5, 0x29, 0x49, 0xa8, 0x00, 0x5b, 0x4a, 0xfb, 0x59, 0x47, 0xad, 0x29,
+	0xc7, 0x4a, 0xbb, 0x3f, 0xab, 0xe0, 0x38, 0xa3, 0x8e, 0xab, 0xad, 0x4e, 0xed, 0x08, 0xcb, 0xed,
+	0x3a, 0x96, 0x07, 0xf5, 0x66, 0x1f, 0xb7, 0x3a, 0x8d, 0xac, 0x84, 0xee, 0xc1, 0x46, 0x5d, 0x3d,
+	0x51, 0x07, 0xed, 0x71, 0x14, 0x77, 0xda, 0xad, 0x93, 0x6c, 0xaa, 0xf8, 0x73, 0x0a, 0x6e, 0x45,
+	0x7d, 0x66, 0xfc, 0x86, 0xef, 0xf8, 0x2b, 0xd8, 0x0c, 0x3c, 0xca, 0x31, 0x7b, 0xe5, 0x50, 0x1d,
+	0xeb, 0x7c, 0xa4, 0x33, 0xed, 0x0c, 0x3b, 0xcc, 0x8f, 0xae, 0x27, 0x5d, 0x79, 0x7a, 0xf5, 0xeb,
+	0x19, 0x78, 0x94, 0x77, 0x04, 0x4f, 0x3d, 0xa2, 0x69, 0x33, 0x9f, 0x1e, 0xce, 0xa9, 0x77, 0x83,
+	0x19, 0xf1, 0xe9, 0x27, 0x63, 0xe1, 0x3a, 0x4f, 0x46, 0x75, 0x1d, 0xd6, 0x48, 0x7c, 0x6e, 0xec,
+	0x8f, 0x5c, 0x5a, 0xfc, 0x43, 0x82, 0xbb, 0xb3, 0xca, 0xa3, 0x0f, 0x20, 0x23, 0x0e, 0x83, 0x39,
+	0x3d, 0xa5, 0x9c, 0x3a, 0x5a, 0xd2, 0x9f, 0x35, 0x11, 0x55, 0x93, 0x20, 0xfa, 0x1a, 0xd2, 0x6e,
+	0x30, 0xb4, 0x4c, 0x0d, 0x9f, 0xd1, 0x51, 0xf2, 0xad, 0x78, 0x72, 0x0d, 0x67, 0xc6, 0x6a, 0xba,
+	0x21, 0xc9, 0x11, 0x1d, 0xa9, 0xe0, 0x26, 0x3f, 0x3d, 0xd4, 0x80, 0x82, 0x4e, 0x2d, 0x6a, 0x44,
+	0x53, 0xea, 0x51, 0xfe, 0xd2, 0xd4, 0x28, 0x26, 0x9a, 0xc6, 0x02, 0xc7, 0xc7, 0xd4, 0x26, 0xa6,
+	0x15, 0x76, 0x7b, 0x45, 0xbd, 0x3f, 0xce, 0xeb, 0x45, 0x69, 0x72, 0x94, 0xa5, 0x88, 0xa4, 0xe2,
+	0x6f, 0x0b, 0xb0, 0xd6, 0x3d, 0x33, 0x5f, 0x9f, 0x97, 0x41, 0xef, 0x43, 0x66, 0x2c, 0x1c, 0xbb,
+	0xd4, 0x8e, 0xcf, 0xb7, 0x7a, 0x5e, 0xbe, 0x4b, 0x6d, 0xf4, 0x3d, 0xdc, 0xf1, 0x4c, 0xc3, 0x21,
+	0x7e, 0x20, 0xe6, 0xd6, 0x32, 0x18, 0x37, 0xfd, 0x17, 0x76, 0xf8, 0x7e, 0x66, 0x2a, 0x9f, 0x5d,
+	0xe3, 0x7b, 0x34, 0x59, 0xbb, 0xd4, 0x4b, 0x28, 0xe5, 0x84, 0x51, 0x45, 0xde, 0x1b, 0xb1, 0xe2,
+	0xef, 0x29, 0x40, 0x6f, 0xa6, 0xa2, 0xf7, 0xe0, 0x41, 0xaf, 0xd9, 0x68, 0xcb, 0xfd, 0x81, 0x18,
+	0xad, 0x56, 0xa3, 0xa3, 0x36, 0xfb, 0x87, 0xc7, 0x53, 0xe3, 0x21, 0xa6, 0xaf, 0x27, 0xe3, 0x6e,
+	0xaf, 0x87, 0x2b, 0x0f, 0xf7, 0x0e, 0x70, 0xef, 0x50, 0xae, 0xec, 0x3f, 0x8a, 0xc7, 0x32, 0x06,
+	0x76, 0x1f, 0x3e, 0xae, 0x24, 0x40, 0x6a, 0x12, 0xd8, 0x7b, 0xf8, 0xf1, 0xa3, 0x04, 0x98, 0x9f,
+	0x05, 0xec, 0xef, 0x54, 0xb2, 0x0b, 0xe8, 0x1d, 0xc8, 0x0b, 0x40, 0x88, 0xc1, 0xdd, 0xa3, 0x5a,
+	0x6f, 0xe7, 0x42, 0xa9, 0xc5, 0x19, 0xf8, 0x64, 0xc5, 0xa5, 0x19, 0xf8, 0x64, 0xe1, 0xe5, 0xb7,
+	0xe0, 0xa2, 0xfe, 0x2d, 0xb4, 0x01, 0xb7, 0x95, 0x5a, 0x5d, 0x48, 0xab, 0xec, 0x9f, 0x6f, 0x5b,
+	0x99, 0x08, 0xef, 0x1e, 0xec, 0x89, 0xf0, 0xee, 0xc1, 0x5e, 0x16, 0x26, 0xc2, 0xfb, 0x95, 0x9d,
+	0x84, 0x24, 0x5d, 0xfc, 0x53, 0x82, 0xdb, 0x6f, 0x98, 0x10, 0xe5, 0x60, 0x59, 0x63, 0xb6, 0x78,
+	0x8e, 0x62, 0x5b, 0x24, 0x4b, 0x94, 0x81, 0x94, 0xa9, 0x87, 0x06, 0x58, 0x51, 0x53, 0xa6, 0x8e,
+	0x3e, 0x85, 0x2d, 0xe2, 0x69, 0xa6, 0x89, 0x09, 0xb7, 0x19, 0xa7, 0x3a, 0x76, 0x0d, 0x17, 0x8f,
+	0x9d, 0x15, 0xd9, 0xf3, 0x70, 0x4e, 0xcd, 0x85, 0x59, 0x72, 0x94, 0xd4, 0x35, 0xdc, 0x71, 0x2d,
+	0x02, 0xeb, 0xee, 0x99, 0xf9, 0x7a, 0x72, 0xd3, 0xe2, 0x75, 0xbf, 0xcf, 0x17, 0xfc, 0x75, 0x38,
+	0xa7, 0xae, 0xb9, 0x93, 0x81, 0xea, 0x2a, 0xc0, 0x98, 0xbd, 0xfa, 0xcd, 0x97, 0x5f, 0xc5, 0xc4,
+	0x06, 0xb3, 0x88, 0x63, 0x94, 0x18, 0x37, 0xca, 0x06, 0x75, 0xc2, 0xb7, 0xa3, 0x1c, 0x41, 0xc4,
+	0x35, 0xbd, 0x7f, 0xff, 0x1f, 0xfe, 0x64, 0x06, 0xf6, 0xb7, 0x24, 0x0d, 0x97, 0x42, 0xaa, 0xdd,
+	0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x82, 0x0c, 0x36, 0xd1, 0x0b, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/binaryauthorization/v1beta1/service.pb.go b/googleapis/cloud/binaryauthorization/v1beta1/service.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..3b7466badfc963961bd2935ec4c6d238c263f56f
--- /dev/null
+++ b/googleapis/cloud/binaryauthorization/v1beta1/service.pb.go
@@ -0,0 +1,777 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/binaryauthorization/v1beta1/service.proto
+
+package binaryauthorization // import "google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import empty "github.com/golang/protobuf/ptypes/empty"
+import _ "google.golang.org/genproto/googleapis/api/annotations"
+
+import (
+	context "golang.org/x/net/context"
+	grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Request message for [BinauthzManagementService.GetPolicy][].
+type GetPolicyRequest struct {
+	// Required. The resource name of the [policy][google.cloud.binaryauthorization.v1beta1.Policy] to retrieve,
+	// in the format `projects/*/policy`.
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetPolicyRequest) Reset()         { *m = GetPolicyRequest{} }
+func (m *GetPolicyRequest) String() string { return proto.CompactTextString(m) }
+func (*GetPolicyRequest) ProtoMessage()    {}
+func (*GetPolicyRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{0}
+}
+func (m *GetPolicyRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetPolicyRequest.Unmarshal(m, b)
+}
+func (m *GetPolicyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetPolicyRequest.Marshal(b, m, deterministic)
+}
+func (dst *GetPolicyRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetPolicyRequest.Merge(dst, src)
+}
+func (m *GetPolicyRequest) XXX_Size() int {
+	return xxx_messageInfo_GetPolicyRequest.Size(m)
+}
+func (m *GetPolicyRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetPolicyRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetPolicyRequest proto.InternalMessageInfo
+
+func (m *GetPolicyRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request message for [BinauthzManagementService.UpdatePolicy][].
+type UpdatePolicyRequest struct {
+	// Required. A new or updated [policy][google.cloud.binaryauthorization.v1beta1.Policy] value. The service will
+	// overwrite the [policy name][google.cloud.binaryauthorization.v1beta1.Policy.name] field with the resource name in
+	// the request URL, in the format `projects/*/policy`.
+	Policy               *Policy  `protobuf:"bytes,1,opt,name=policy,proto3" json:"policy,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UpdatePolicyRequest) Reset()         { *m = UpdatePolicyRequest{} }
+func (m *UpdatePolicyRequest) String() string { return proto.CompactTextString(m) }
+func (*UpdatePolicyRequest) ProtoMessage()    {}
+func (*UpdatePolicyRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{1}
+}
+func (m *UpdatePolicyRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpdatePolicyRequest.Unmarshal(m, b)
+}
+func (m *UpdatePolicyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpdatePolicyRequest.Marshal(b, m, deterministic)
+}
+func (dst *UpdatePolicyRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdatePolicyRequest.Merge(dst, src)
+}
+func (m *UpdatePolicyRequest) XXX_Size() int {
+	return xxx_messageInfo_UpdatePolicyRequest.Size(m)
+}
+func (m *UpdatePolicyRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpdatePolicyRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdatePolicyRequest proto.InternalMessageInfo
+
+func (m *UpdatePolicyRequest) GetPolicy() *Policy {
+	if m != nil {
+		return m.Policy
+	}
+	return nil
+}
+
+// Request message for [BinauthzManagementService.CreateAttestor][].
+type CreateAttestorRequest struct {
+	// Required. The parent of this [attestor][google.cloud.binaryauthorization.v1beta1.Attestor].
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	// Required. The [attestors][google.cloud.binaryauthorization.v1beta1.Attestor] ID.
+	AttestorId string `protobuf:"bytes,2,opt,name=attestor_id,json=attestorId,proto3" json:"attestor_id,omitempty"`
+	// Required. The initial [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] value. The service will
+	// overwrite the [attestor name][google.cloud.binaryauthorization.v1beta1.Attestor.name] field with the resource name,
+	// in the format `projects/*/attestors/*`.
+	Attestor             *Attestor `protobuf:"bytes,3,opt,name=attestor,proto3" json:"attestor,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *CreateAttestorRequest) Reset()         { *m = CreateAttestorRequest{} }
+func (m *CreateAttestorRequest) String() string { return proto.CompactTextString(m) }
+func (*CreateAttestorRequest) ProtoMessage()    {}
+func (*CreateAttestorRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{2}
+}
+func (m *CreateAttestorRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_CreateAttestorRequest.Unmarshal(m, b)
+}
+func (m *CreateAttestorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_CreateAttestorRequest.Marshal(b, m, deterministic)
+}
+func (dst *CreateAttestorRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CreateAttestorRequest.Merge(dst, src)
+}
+func (m *CreateAttestorRequest) XXX_Size() int {
+	return xxx_messageInfo_CreateAttestorRequest.Size(m)
+}
+func (m *CreateAttestorRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_CreateAttestorRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateAttestorRequest proto.InternalMessageInfo
+
+func (m *CreateAttestorRequest) GetParent() string {
+	if m != nil {
+		return m.Parent
+	}
+	return ""
+}
+
+func (m *CreateAttestorRequest) GetAttestorId() string {
+	if m != nil {
+		return m.AttestorId
+	}
+	return ""
+}
+
+func (m *CreateAttestorRequest) GetAttestor() *Attestor {
+	if m != nil {
+		return m.Attestor
+	}
+	return nil
+}
+
+// Request message for [BinauthzManagementService.GetAttestor][].
+type GetAttestorRequest struct {
+	// Required. The name of the [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] to retrieve, in the format
+	// `projects/*/attestors/*`.
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetAttestorRequest) Reset()         { *m = GetAttestorRequest{} }
+func (m *GetAttestorRequest) String() string { return proto.CompactTextString(m) }
+func (*GetAttestorRequest) ProtoMessage()    {}
+func (*GetAttestorRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{3}
+}
+func (m *GetAttestorRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetAttestorRequest.Unmarshal(m, b)
+}
+func (m *GetAttestorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetAttestorRequest.Marshal(b, m, deterministic)
+}
+func (dst *GetAttestorRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetAttestorRequest.Merge(dst, src)
+}
+func (m *GetAttestorRequest) XXX_Size() int {
+	return xxx_messageInfo_GetAttestorRequest.Size(m)
+}
+func (m *GetAttestorRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetAttestorRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetAttestorRequest proto.InternalMessageInfo
+
+func (m *GetAttestorRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request message for [BinauthzManagementService.UpdateAttestor][].
+type UpdateAttestorRequest struct {
+	// Required. The updated [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] value. The service will
+	// overwrite the [attestor name][google.cloud.binaryauthorization.v1beta1.Attestor.name] field with the resource name
+	// in the request URL, in the format `projects/*/attestors/*`.
+	Attestor             *Attestor `protobuf:"bytes,1,opt,name=attestor,proto3" json:"attestor,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *UpdateAttestorRequest) Reset()         { *m = UpdateAttestorRequest{} }
+func (m *UpdateAttestorRequest) String() string { return proto.CompactTextString(m) }
+func (*UpdateAttestorRequest) ProtoMessage()    {}
+func (*UpdateAttestorRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{4}
+}
+func (m *UpdateAttestorRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpdateAttestorRequest.Unmarshal(m, b)
+}
+func (m *UpdateAttestorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpdateAttestorRequest.Marshal(b, m, deterministic)
+}
+func (dst *UpdateAttestorRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateAttestorRequest.Merge(dst, src)
+}
+func (m *UpdateAttestorRequest) XXX_Size() int {
+	return xxx_messageInfo_UpdateAttestorRequest.Size(m)
+}
+func (m *UpdateAttestorRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpdateAttestorRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateAttestorRequest proto.InternalMessageInfo
+
+func (m *UpdateAttestorRequest) GetAttestor() *Attestor {
+	if m != nil {
+		return m.Attestor
+	}
+	return nil
+}
+
+// Request message for [BinauthzManagementService.ListAttestors][].
+type ListAttestorsRequest struct {
+	// Required. The resource name of the project associated with the
+	// [attestors][google.cloud.binaryauthorization.v1beta1.Attestor], in the format `projects/*`.
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	// Requested page size. The server may return fewer results than requested. If
+	// unspecified, the server will pick an appropriate default.
+	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 [ListAttestorsResponse.next_page_token][google.cloud.binaryauthorization.v1beta1.ListAttestorsResponse.next_page_token] returned
+	// from the previous call to the `ListAttestors` method.
+	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:"-"`
+}
+
+func (m *ListAttestorsRequest) Reset()         { *m = ListAttestorsRequest{} }
+func (m *ListAttestorsRequest) String() string { return proto.CompactTextString(m) }
+func (*ListAttestorsRequest) ProtoMessage()    {}
+func (*ListAttestorsRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{5}
+}
+func (m *ListAttestorsRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListAttestorsRequest.Unmarshal(m, b)
+}
+func (m *ListAttestorsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListAttestorsRequest.Marshal(b, m, deterministic)
+}
+func (dst *ListAttestorsRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListAttestorsRequest.Merge(dst, src)
+}
+func (m *ListAttestorsRequest) XXX_Size() int {
+	return xxx_messageInfo_ListAttestorsRequest.Size(m)
+}
+func (m *ListAttestorsRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListAttestorsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListAttestorsRequest proto.InternalMessageInfo
+
+func (m *ListAttestorsRequest) GetParent() string {
+	if m != nil {
+		return m.Parent
+	}
+	return ""
+}
+
+func (m *ListAttestorsRequest) GetPageSize() int32 {
+	if m != nil {
+		return m.PageSize
+	}
+	return 0
+}
+
+func (m *ListAttestorsRequest) GetPageToken() string {
+	if m != nil {
+		return m.PageToken
+	}
+	return ""
+}
+
+// Response message for [BinauthzManagementService.ListAttestors][].
+type ListAttestorsResponse struct {
+	// The list of [attestors][google.cloud.binaryauthorization.v1beta1.Attestor].
+	Attestors []*Attestor `protobuf:"bytes,1,rep,name=attestors,proto3" json:"attestors,omitempty"`
+	// A token to retrieve the next page of results. Pass this value in the
+	// [ListAttestorsRequest.page_token][google.cloud.binaryauthorization.v1beta1.ListAttestorsRequest.page_token] field in the subsequent call to the
+	// `ListAttestors` method to retrieve the next page of results.
+	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:"-"`
+}
+
+func (m *ListAttestorsResponse) Reset()         { *m = ListAttestorsResponse{} }
+func (m *ListAttestorsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListAttestorsResponse) ProtoMessage()    {}
+func (*ListAttestorsResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{6}
+}
+func (m *ListAttestorsResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListAttestorsResponse.Unmarshal(m, b)
+}
+func (m *ListAttestorsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListAttestorsResponse.Marshal(b, m, deterministic)
+}
+func (dst *ListAttestorsResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListAttestorsResponse.Merge(dst, src)
+}
+func (m *ListAttestorsResponse) XXX_Size() int {
+	return xxx_messageInfo_ListAttestorsResponse.Size(m)
+}
+func (m *ListAttestorsResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListAttestorsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListAttestorsResponse proto.InternalMessageInfo
+
+func (m *ListAttestorsResponse) GetAttestors() []*Attestor {
+	if m != nil {
+		return m.Attestors
+	}
+	return nil
+}
+
+func (m *ListAttestorsResponse) GetNextPageToken() string {
+	if m != nil {
+		return m.NextPageToken
+	}
+	return ""
+}
+
+// Request message for [BinauthzManagementService.DeleteAttestor][].
+type DeleteAttestorRequest struct {
+	// Required. The name of the [attestors][google.cloud.binaryauthorization.v1beta1.Attestor] to delete, in the format
+	// `projects/*/attestors/*`.
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *DeleteAttestorRequest) Reset()         { *m = DeleteAttestorRequest{} }
+func (m *DeleteAttestorRequest) String() string { return proto.CompactTextString(m) }
+func (*DeleteAttestorRequest) ProtoMessage()    {}
+func (*DeleteAttestorRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_service_45b3f63a4fcd0a76, []int{7}
+}
+func (m *DeleteAttestorRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DeleteAttestorRequest.Unmarshal(m, b)
+}
+func (m *DeleteAttestorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DeleteAttestorRequest.Marshal(b, m, deterministic)
+}
+func (dst *DeleteAttestorRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeleteAttestorRequest.Merge(dst, src)
+}
+func (m *DeleteAttestorRequest) XXX_Size() int {
+	return xxx_messageInfo_DeleteAttestorRequest.Size(m)
+}
+func (m *DeleteAttestorRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_DeleteAttestorRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DeleteAttestorRequest proto.InternalMessageInfo
+
+func (m *DeleteAttestorRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func init() {
+	proto.RegisterType((*GetPolicyRequest)(nil), "google.cloud.binaryauthorization.v1beta1.GetPolicyRequest")
+	proto.RegisterType((*UpdatePolicyRequest)(nil), "google.cloud.binaryauthorization.v1beta1.UpdatePolicyRequest")
+	proto.RegisterType((*CreateAttestorRequest)(nil), "google.cloud.binaryauthorization.v1beta1.CreateAttestorRequest")
+	proto.RegisterType((*GetAttestorRequest)(nil), "google.cloud.binaryauthorization.v1beta1.GetAttestorRequest")
+	proto.RegisterType((*UpdateAttestorRequest)(nil), "google.cloud.binaryauthorization.v1beta1.UpdateAttestorRequest")
+	proto.RegisterType((*ListAttestorsRequest)(nil), "google.cloud.binaryauthorization.v1beta1.ListAttestorsRequest")
+	proto.RegisterType((*ListAttestorsResponse)(nil), "google.cloud.binaryauthorization.v1beta1.ListAttestorsResponse")
+	proto.RegisterType((*DeleteAttestorRequest)(nil), "google.cloud.binaryauthorization.v1beta1.DeleteAttestorRequest")
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// BinauthzManagementServiceV1Beta1Client is the client API for BinauthzManagementServiceV1Beta1 service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type BinauthzManagementServiceV1Beta1Client interface {
+	// Gets the [policy][google.cloud.binaryauthorization.v1beta1.Policy] for this project. Returns a default
+	// [policy][google.cloud.binaryauthorization.v1beta1.Policy] if the project does not have one.
+	GetPolicy(ctx context.Context, in *GetPolicyRequest, opts ...grpc.CallOption) (*Policy, error)
+	// Creates or updates a project's [policy][google.cloud.binaryauthorization.v1beta1.Policy], and returns a copy of the
+	// new [policy][google.cloud.binaryauthorization.v1beta1.Policy]. A policy is always updated as a whole, to avoid race
+	// conditions with concurrent policy enforcement (or management!)
+	// requests. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT
+	// if the request is malformed.
+	UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*Policy, error)
+	// Creates an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor], and returns a copy of the new
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor]. Returns NOT_FOUND if the project does not exist,
+	// INVALID_ARGUMENT if the request is malformed, ALREADY_EXISTS if the
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] already exists.
+	CreateAttestor(ctx context.Context, in *CreateAttestorRequest, opts ...grpc.CallOption) (*Attestor, error)
+	// Gets an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns NOT_FOUND if the [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	GetAttestor(ctx context.Context, in *GetAttestorRequest, opts ...grpc.CallOption) (*Attestor, error)
+	// Updates an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns NOT_FOUND if the [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	UpdateAttestor(ctx context.Context, in *UpdateAttestorRequest, opts ...grpc.CallOption) (*Attestor, error)
+	// Lists [attestors][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns INVALID_ARGUMENT if the project does not exist.
+	ListAttestors(ctx context.Context, in *ListAttestorsRequest, opts ...grpc.CallOption) (*ListAttestorsResponse, error)
+	// Deletes an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor]. Returns NOT_FOUND if the
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	DeleteAttestor(ctx context.Context, in *DeleteAttestorRequest, opts ...grpc.CallOption) (*empty.Empty, error)
+}
+
+type binauthzManagementServiceV1Beta1Client struct {
+	cc *grpc.ClientConn
+}
+
+func NewBinauthzManagementServiceV1Beta1Client(cc *grpc.ClientConn) BinauthzManagementServiceV1Beta1Client {
+	return &binauthzManagementServiceV1Beta1Client{cc}
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) GetPolicy(ctx context.Context, in *GetPolicyRequest, opts ...grpc.CallOption) (*Policy, error) {
+	out := new(Policy)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/GetPolicy", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*Policy, error) {
+	out := new(Policy)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/UpdatePolicy", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) CreateAttestor(ctx context.Context, in *CreateAttestorRequest, opts ...grpc.CallOption) (*Attestor, error) {
+	out := new(Attestor)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/CreateAttestor", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) GetAttestor(ctx context.Context, in *GetAttestorRequest, opts ...grpc.CallOption) (*Attestor, error) {
+	out := new(Attestor)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/GetAttestor", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) UpdateAttestor(ctx context.Context, in *UpdateAttestorRequest, opts ...grpc.CallOption) (*Attestor, error) {
+	out := new(Attestor)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/UpdateAttestor", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) ListAttestors(ctx context.Context, in *ListAttestorsRequest, opts ...grpc.CallOption) (*ListAttestorsResponse, error) {
+	out := new(ListAttestorsResponse)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/ListAttestors", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *binauthzManagementServiceV1Beta1Client) DeleteAttestor(ctx context.Context, in *DeleteAttestorRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
+	out := new(empty.Empty)
+	err := c.cc.Invoke(ctx, "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/DeleteAttestor", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// BinauthzManagementServiceV1Beta1Server is the server API for BinauthzManagementServiceV1Beta1 service.
+type BinauthzManagementServiceV1Beta1Server interface {
+	// Gets the [policy][google.cloud.binaryauthorization.v1beta1.Policy] for this project. Returns a default
+	// [policy][google.cloud.binaryauthorization.v1beta1.Policy] if the project does not have one.
+	GetPolicy(context.Context, *GetPolicyRequest) (*Policy, error)
+	// Creates or updates a project's [policy][google.cloud.binaryauthorization.v1beta1.Policy], and returns a copy of the
+	// new [policy][google.cloud.binaryauthorization.v1beta1.Policy]. A policy is always updated as a whole, to avoid race
+	// conditions with concurrent policy enforcement (or management!)
+	// requests. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT
+	// if the request is malformed.
+	UpdatePolicy(context.Context, *UpdatePolicyRequest) (*Policy, error)
+	// Creates an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor], and returns a copy of the new
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor]. Returns NOT_FOUND if the project does not exist,
+	// INVALID_ARGUMENT if the request is malformed, ALREADY_EXISTS if the
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] already exists.
+	CreateAttestor(context.Context, *CreateAttestorRequest) (*Attestor, error)
+	// Gets an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns NOT_FOUND if the [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	GetAttestor(context.Context, *GetAttestorRequest) (*Attestor, error)
+	// Updates an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns NOT_FOUND if the [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	UpdateAttestor(context.Context, *UpdateAttestorRequest) (*Attestor, error)
+	// Lists [attestors][google.cloud.binaryauthorization.v1beta1.Attestor].
+	// Returns INVALID_ARGUMENT if the project does not exist.
+	ListAttestors(context.Context, *ListAttestorsRequest) (*ListAttestorsResponse, error)
+	// Deletes an [attestor][google.cloud.binaryauthorization.v1beta1.Attestor]. Returns NOT_FOUND if the
+	// [attestor][google.cloud.binaryauthorization.v1beta1.Attestor] does not exist.
+	DeleteAttestor(context.Context, *DeleteAttestorRequest) (*empty.Empty, error)
+}
+
+func RegisterBinauthzManagementServiceV1Beta1Server(s *grpc.Server, srv BinauthzManagementServiceV1Beta1Server) {
+	s.RegisterService(&_BinauthzManagementServiceV1Beta1_serviceDesc, srv)
+}
+
+func _BinauthzManagementServiceV1Beta1_GetPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetPolicyRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).GetPolicy(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/GetPolicy",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).GetPolicy(ctx, req.(*GetPolicyRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_UpdatePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdatePolicyRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).UpdatePolicy(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/UpdatePolicy",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).UpdatePolicy(ctx, req.(*UpdatePolicyRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_CreateAttestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreateAttestorRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).CreateAttestor(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/CreateAttestor",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).CreateAttestor(ctx, req.(*CreateAttestorRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_GetAttestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetAttestorRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).GetAttestor(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/GetAttestor",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).GetAttestor(ctx, req.(*GetAttestorRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_UpdateAttestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateAttestorRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).UpdateAttestor(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/UpdateAttestor",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).UpdateAttestor(ctx, req.(*UpdateAttestorRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_ListAttestors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ListAttestorsRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).ListAttestors(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/ListAttestors",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).ListAttestors(ctx, req.(*ListAttestorsRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _BinauthzManagementServiceV1Beta1_DeleteAttestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeleteAttestorRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BinauthzManagementServiceV1Beta1Server).DeleteAttestor(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1/DeleteAttestor",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BinauthzManagementServiceV1Beta1Server).DeleteAttestor(ctx, req.(*DeleteAttestorRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _BinauthzManagementServiceV1Beta1_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.cloud.binaryauthorization.v1beta1.BinauthzManagementServiceV1Beta1",
+	HandlerType: (*BinauthzManagementServiceV1Beta1Server)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "GetPolicy",
+			Handler:    _BinauthzManagementServiceV1Beta1_GetPolicy_Handler,
+		},
+		{
+			MethodName: "UpdatePolicy",
+			Handler:    _BinauthzManagementServiceV1Beta1_UpdatePolicy_Handler,
+		},
+		{
+			MethodName: "CreateAttestor",
+			Handler:    _BinauthzManagementServiceV1Beta1_CreateAttestor_Handler,
+		},
+		{
+			MethodName: "GetAttestor",
+			Handler:    _BinauthzManagementServiceV1Beta1_GetAttestor_Handler,
+		},
+		{
+			MethodName: "UpdateAttestor",
+			Handler:    _BinauthzManagementServiceV1Beta1_UpdateAttestor_Handler,
+		},
+		{
+			MethodName: "ListAttestors",
+			Handler:    _BinauthzManagementServiceV1Beta1_ListAttestors_Handler,
+		},
+		{
+			MethodName: "DeleteAttestor",
+			Handler:    _BinauthzManagementServiceV1Beta1_DeleteAttestor_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/cloud/binaryauthorization/v1beta1/service.proto",
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/binaryauthorization/v1beta1/service.proto", fileDescriptor_service_45b3f63a4fcd0a76)
+}
+
+var fileDescriptor_service_45b3f63a4fcd0a76 = []byte{
+	// 701 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xcf, 0x4f, 0x13, 0x41,
+	0x14, 0xc7, 0x33, 0xa0, 0x84, 0x3e, 0x04, 0xcd, 0x68, 0x49, 0xb3, 0x68, 0xc4, 0x35, 0x69, 0x2a,
+	0x26, 0xbb, 0x52, 0x13, 0x43, 0x40, 0x24, 0xa0, 0x06, 0x4d, 0xd4, 0x90, 0xa2, 0x1e, 0xf4, 0x50,
+	0xa7, 0xed, 0x73, 0x5d, 0x2c, 0x33, 0xeb, 0xce, 0x94, 0x48, 0x0d, 0x17, 0xff, 0x03, 0xe3, 0xc9,
+	0x9b, 0x89, 0xde, 0x3d, 0x7b, 0xd2, 0xa3, 0x77, 0xff, 0x05, 0xff, 0x08, 0x8f, 0x66, 0x67, 0x7f,
+	0xb0, 0xad, 0x0b, 0x6c, 0x1b, 0x6e, 0x9d, 0x1f, 0xef, 0xbd, 0xcf, 0x7b, 0xf3, 0xbe, 0x6f, 0x0b,
+	0x37, 0x1c, 0x21, 0x9c, 0x36, 0xda, 0xcd, 0xb6, 0xe8, 0xb4, 0xec, 0x86, 0xcb, 0x99, 0xbf, 0xcb,
+	0x3a, 0xea, 0x95, 0xf0, 0xdd, 0x2e, 0x53, 0xae, 0xe0, 0xf6, 0xce, 0x7c, 0x03, 0x15, 0x9b, 0xb7,
+	0x25, 0xfa, 0x3b, 0x6e, 0x13, 0x2d, 0xcf, 0x17, 0x4a, 0xd0, 0x4a, 0x68, 0x67, 0x69, 0x3b, 0x2b,
+	0xc3, 0xce, 0x8a, 0xec, 0x8c, 0xf3, 0x51, 0x04, 0xe6, 0xb9, 0x36, 0xe3, 0x5c, 0x28, 0x7d, 0x2c,
+	0x43, 0x3f, 0xc6, 0x42, 0xee, 0xf8, 0x3e, 0x4a, 0xd1, 0xf1, 0x9b, 0x18, 0x5b, 0xce, 0x44, 0x96,
+	0x7a, 0xd5, 0xe8, 0xbc, 0xb4, 0x71, 0xdb, 0x53, 0xbb, 0xe1, 0xa1, 0x59, 0x86, 0x33, 0xeb, 0xa8,
+	0x36, 0x44, 0xdb, 0x6d, 0xee, 0xd6, 0xf0, 0x4d, 0x07, 0xa5, 0xa2, 0x14, 0x4e, 0x70, 0xb6, 0x8d,
+	0x25, 0x32, 0x4b, 0x2a, 0x85, 0x9a, 0xfe, 0x6d, 0xd6, 0xe1, 0xec, 0x13, 0xaf, 0xc5, 0x14, 0xf6,
+	0x5e, 0xbd, 0x07, 0x63, 0x9e, 0xde, 0xd0, 0x97, 0x27, 0xaa, 0xd7, 0xac, 0xbc, 0xe9, 0x5a, 0x91,
+	0xa3, 0xc8, 0xde, 0xfc, 0x4c, 0xa0, 0x78, 0xdb, 0x47, 0xa6, 0x70, 0x55, 0x29, 0x94, 0x4a, 0xf8,
+	0x71, 0x8c, 0x69, 0x18, 0xf3, 0x98, 0x8f, 0x5c, 0x45, 0x40, 0xd1, 0x8a, 0x5e, 0x84, 0x09, 0x16,
+	0x5d, 0xad, 0xbb, 0xad, 0xd2, 0x88, 0x3e, 0x84, 0x78, 0xeb, 0x7e, 0x8b, 0x3e, 0x82, 0xf1, 0x78,
+	0x55, 0x1a, 0xd5, 0x78, 0xd5, 0xfc, 0x78, 0x09, 0x45, 0xe2, 0xc3, 0xac, 0x00, 0x5d, 0x47, 0xd5,
+	0x8f, 0x97, 0x55, 0x2d, 0x07, 0x8a, 0x61, 0xb5, 0xfa, 0x2f, 0xa7, 0x91, 0xc8, 0x31, 0x20, 0x6d,
+	0xc1, 0xb9, 0x07, 0xae, 0x4c, 0x98, 0xe4, 0x51, 0x35, 0x9b, 0x81, 0x82, 0xc7, 0x1c, 0xac, 0x4b,
+	0xb7, 0x8b, 0xba, 0x62, 0x27, 0x6b, 0xe3, 0xc1, 0xc6, 0xa6, 0xdb, 0x45, 0x7a, 0x01, 0x40, 0x1f,
+	0x2a, 0xf1, 0x1a, 0xb9, 0xae, 0x58, 0xa1, 0xa6, 0xaf, 0x3f, 0x0e, 0x36, 0xcc, 0x0f, 0x04, 0x8a,
+	0x7d, 0xc1, 0xa4, 0x27, 0xb8, 0x44, 0xba, 0x01, 0x85, 0x98, 0x48, 0x96, 0xc8, 0xec, 0xe8, 0x90,
+	0x69, 0xed, 0x3b, 0xa1, 0x65, 0x38, 0xcd, 0xf1, 0xad, 0xaa, 0xa7, 0x78, 0xc2, 0xf7, 0x9d, 0x0c,
+	0xb6, 0x37, 0x12, 0xa6, 0xab, 0x50, 0xbc, 0x83, 0x6d, 0xfc, 0xbf, 0xd0, 0x19, 0xaf, 0x52, 0xfd,
+	0x02, 0x30, 0xbb, 0xe6, 0xf2, 0x80, 0xa2, 0xfb, 0x90, 0x71, 0xe6, 0xe0, 0x36, 0x72, 0xb5, 0x19,
+	0xca, 0xf5, 0xe9, 0xfc, 0x5a, 0x40, 0x43, 0xbf, 0x12, 0x28, 0x24, 0x8a, 0xa0, 0x8b, 0xf9, 0xd3,
+	0xe8, 0x97, 0x91, 0x31, 0xb0, 0x16, 0xcc, 0x2b, 0xef, 0x7f, 0xff, 0xf9, 0x38, 0x72, 0x99, 0x5e,
+	0x4a, 0xb4, 0xfc, 0x2e, 0x00, 0x5f, 0xf6, 0x7c, 0xb1, 0x85, 0x4d, 0x25, 0xed, 0x39, 0x3b, 0x54,
+	0xcb, 0x1e, 0xfd, 0x4e, 0xe0, 0x54, 0x5a, 0x90, 0x74, 0x39, 0x7f, 0xb4, 0x0c, 0x21, 0x0f, 0x01,
+	0xbb, 0xa0, 0x61, 0xab, 0x46, 0x65, 0x1f, 0x36, 0x84, 0xb3, 0x0e, 0x60, 0x5e, 0x8c, 0xa4, 0x4e,
+	0x7f, 0x10, 0x98, 0xea, 0x95, 0x3a, 0x5d, 0xc9, 0x1f, 0x3e, 0x73, 0x48, 0x18, 0x43, 0xf4, 0x5b,
+	0x9c, 0x81, 0x59, 0x4e, 0x65, 0xa0, 0x65, 0x92, 0x82, 0xdf, 0xb3, 0x93, 0xa6, 0x5c, 0x4c, 0x64,
+	0x47, 0xbf, 0x11, 0x98, 0x48, 0x8d, 0x02, 0x7a, 0x73, 0xa0, 0x36, 0x39, 0x0e, 0x76, 0x4b, 0xb3,
+	0x57, 0x68, 0xf9, 0xe0, 0x56, 0x49, 0xc0, 0xed, 0xb9, 0x3d, 0xfa, 0x8b, 0xc0, 0x54, 0xef, 0x48,
+	0x1a, 0xa4, 0xe6, 0x99, 0xc3, 0x6c, 0x28, 0xee, 0x55, 0xcd, 0xbd, 0x64, 0xd8, 0xfb, 0xdc, 0x31,
+	0xa7, 0x75, 0x58, 0x02, 0xa9, 0xe2, 0xff, 0x24, 0x30, 0xd9, 0x33, 0x87, 0xe8, 0xad, 0xfc, 0x20,
+	0x59, 0xd3, 0xd2, 0x58, 0x19, 0xda, 0x3e, 0x1c, 0x80, 0x59, 0xaf, 0x71, 0x58, 0x27, 0xd1, 0x4f,
+	0x04, 0xa6, 0x7a, 0xe7, 0xd6, 0x20, 0xaf, 0x91, 0x39, 0xf1, 0x8c, 0xe9, 0xd8, 0x41, 0xfc, 0x9d,
+	0xb7, 0xee, 0x06, 0xdf, 0xf9, 0x98, 0x6d, 0x2e, 0x67, 0xa7, 0xac, 0xbd, 0x78, 0xf6, 0x3c, 0x72,
+	0xe4, 0x88, 0x36, 0xe3, 0x8e, 0x25, 0x7c, 0xc7, 0x76, 0x90, 0x6b, 0xb7, 0x76, 0x78, 0xc4, 0x3c,
+	0x57, 0x1e, 0xfd, 0x4f, 0x64, 0x29, 0xe3, 0xec, 0x2f, 0x21, 0x8d, 0x31, 0xed, 0xea, 0xfa, 0xbf,
+	0x00, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xda, 0x4c, 0x49, 0x53, 0x09, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/datacatalog/v1beta1/datacatalog.pb.go b/googleapis/cloud/datacatalog/v1beta1/datacatalog.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..f549c7e6dc655861021174bd706fe276558978d7
--- /dev/null
+++ b/googleapis/cloud/datacatalog/v1beta1/datacatalog.pb.go
@@ -0,0 +1,524 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/datacatalog/v1beta1/datacatalog.proto
+
+package datacatalog // import "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import _ "google.golang.org/genproto/googleapis/api/annotations"
+
+import (
+	context "golang.org/x/net/context"
+	grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Entry resources in Cloud Data Catalog can be of different types e.g. BigQuery
+// Table entry is of type 'TABLE'. This enum describes all the possible types
+// Cloud Data Catalog contains.
+type EntryType int32
+
+const (
+	// Default unknown type
+	EntryType_ENTRY_TYPE_UNSPECIFIED EntryType = 0
+	// The type of entry that has a GoogleSQL schema, including logical views.
+	EntryType_TABLE EntryType = 2
+	// An entry type which is used for streaming entries. Example - Pub/Sub.
+	EntryType_DATA_STREAM EntryType = 3
+)
+
+var EntryType_name = map[int32]string{
+	0: "ENTRY_TYPE_UNSPECIFIED",
+	2: "TABLE",
+	3: "DATA_STREAM",
+}
+var EntryType_value = map[string]int32{
+	"ENTRY_TYPE_UNSPECIFIED": 0,
+	"TABLE":                  2,
+	"DATA_STREAM":            3,
+}
+
+func (x EntryType) String() string {
+	return proto.EnumName(EntryType_name, int32(x))
+}
+func (EntryType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_datacatalog_4d76c63f2f954384, []int{0}
+}
+
+// Request message for
+// [LookupEntry][google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry].
+type LookupEntryRequest struct {
+	// Represents either the Google Cloud Platform resource or SQL name for a
+	// Google Cloud Platform resource.
+	//
+	// Types that are valid to be assigned to TargetName:
+	//	*LookupEntryRequest_LinkedResource
+	//	*LookupEntryRequest_SqlResource
+	TargetName           isLookupEntryRequest_TargetName `protobuf_oneof:"target_name"`
+	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
+	XXX_unrecognized     []byte                          `json:"-"`
+	XXX_sizecache        int32                           `json:"-"`
+}
+
+func (m *LookupEntryRequest) Reset()         { *m = LookupEntryRequest{} }
+func (m *LookupEntryRequest) String() string { return proto.CompactTextString(m) }
+func (*LookupEntryRequest) ProtoMessage()    {}
+func (*LookupEntryRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_datacatalog_4d76c63f2f954384, []int{0}
+}
+func (m *LookupEntryRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_LookupEntryRequest.Unmarshal(m, b)
+}
+func (m *LookupEntryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_LookupEntryRequest.Marshal(b, m, deterministic)
+}
+func (dst *LookupEntryRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_LookupEntryRequest.Merge(dst, src)
+}
+func (m *LookupEntryRequest) XXX_Size() int {
+	return xxx_messageInfo_LookupEntryRequest.Size(m)
+}
+func (m *LookupEntryRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_LookupEntryRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LookupEntryRequest proto.InternalMessageInfo
+
+type isLookupEntryRequest_TargetName interface {
+	isLookupEntryRequest_TargetName()
+}
+
+type LookupEntryRequest_LinkedResource struct {
+	LinkedResource string `protobuf:"bytes,1,opt,name=linked_resource,json=linkedResource,proto3,oneof"`
+}
+
+type LookupEntryRequest_SqlResource struct {
+	SqlResource string `protobuf:"bytes,3,opt,name=sql_resource,json=sqlResource,proto3,oneof"`
+}
+
+func (*LookupEntryRequest_LinkedResource) isLookupEntryRequest_TargetName() {}
+
+func (*LookupEntryRequest_SqlResource) isLookupEntryRequest_TargetName() {}
+
+func (m *LookupEntryRequest) GetTargetName() isLookupEntryRequest_TargetName {
+	if m != nil {
+		return m.TargetName
+	}
+	return nil
+}
+
+func (m *LookupEntryRequest) GetLinkedResource() string {
+	if x, ok := m.GetTargetName().(*LookupEntryRequest_LinkedResource); ok {
+		return x.LinkedResource
+	}
+	return ""
+}
+
+func (m *LookupEntryRequest) GetSqlResource() string {
+	if x, ok := m.GetTargetName().(*LookupEntryRequest_SqlResource); ok {
+		return x.SqlResource
+	}
+	return ""
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*LookupEntryRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _LookupEntryRequest_OneofMarshaler, _LookupEntryRequest_OneofUnmarshaler, _LookupEntryRequest_OneofSizer, []interface{}{
+		(*LookupEntryRequest_LinkedResource)(nil),
+		(*LookupEntryRequest_SqlResource)(nil),
+	}
+}
+
+func _LookupEntryRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*LookupEntryRequest)
+	// target_name
+	switch x := m.TargetName.(type) {
+	case *LookupEntryRequest_LinkedResource:
+		b.EncodeVarint(1<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.LinkedResource)
+	case *LookupEntryRequest_SqlResource:
+		b.EncodeVarint(3<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.SqlResource)
+	case nil:
+	default:
+		return fmt.Errorf("LookupEntryRequest.TargetName has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _LookupEntryRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*LookupEntryRequest)
+	switch tag {
+	case 1: // target_name.linked_resource
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.TargetName = &LookupEntryRequest_LinkedResource{x}
+		return true, err
+	case 3: // target_name.sql_resource
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.TargetName = &LookupEntryRequest_SqlResource{x}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _LookupEntryRequest_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*LookupEntryRequest)
+	// target_name
+	switch x := m.TargetName.(type) {
+	case *LookupEntryRequest_LinkedResource:
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(len(x.LinkedResource)))
+		n += len(x.LinkedResource)
+	case *LookupEntryRequest_SqlResource:
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(len(x.SqlResource)))
+		n += len(x.SqlResource)
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// Entry Metadata.
+// A Data Catalog Entry resource represents another resource in Google
+// Cloud Platform, such as a BigQuery Dataset or a Pub/Sub Topic. Clients can
+// use the `linked_resource` field in the Entry resource to refer to the
+// original resource id of the source system.
+//
+// An Entry resource contains resource details, such as its schema.
+type Entry struct {
+	// Output only. The Data Catalog resource name of the entry in URL format. For
+	// example,
+	// "projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}".
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// The full name of the cloud resource the entry belongs to. See:
+	// https://cloud.google.com/apis/design/resource_names#full_resource_name
+	//
+	// Data Catalog supports resources from select Google Cloud Platform systems.
+	// `linked_resource` is the full name of the Google Cloud Platform resource.
+	// For example, the `linked_resource` for a table resource from BigQuery is:
+	//
+	// "//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId".
+	LinkedResource string `protobuf:"bytes,9,opt,name=linked_resource,json=linkedResource,proto3" json:"linked_resource,omitempty"`
+	// Type of entry.
+	Type EntryType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.datacatalog.v1beta1.EntryType" json:"type,omitempty"`
+	// Type specification information.
+	//
+	// Types that are valid to be assigned to TypeSpec:
+	//	*Entry_BigqueryTableSpec
+	TypeSpec isEntry_TypeSpec `protobuf_oneof:"type_spec"`
+	// Display information such as title and description.
+	// A short name to identify the entry, for example,
+	// "Analytics Data - Jan 2011".
+	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
+	// Entry description, which can consist of several sentences or paragraphs
+	// that describe entry contents.
+	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+	// Schema of the entry.
+	Schema *Schema `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
+	// Timestamps about the underlying Google Cloud Platform resource -- not about
+	// this Data Catalog Entry.
+	SourceSystemTimestamps *SystemTimestamps `protobuf:"bytes,7,opt,name=source_system_timestamps,json=sourceSystemTimestamps,proto3" json:"source_system_timestamps,omitempty"`
+	XXX_NoUnkeyedLiteral   struct{}          `json:"-"`
+	XXX_unrecognized       []byte            `json:"-"`
+	XXX_sizecache          int32             `json:"-"`
+}
+
+func (m *Entry) Reset()         { *m = Entry{} }
+func (m *Entry) String() string { return proto.CompactTextString(m) }
+func (*Entry) ProtoMessage()    {}
+func (*Entry) Descriptor() ([]byte, []int) {
+	return fileDescriptor_datacatalog_4d76c63f2f954384, []int{1}
+}
+func (m *Entry) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Entry.Unmarshal(m, b)
+}
+func (m *Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Entry.Marshal(b, m, deterministic)
+}
+func (dst *Entry) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Entry.Merge(dst, src)
+}
+func (m *Entry) XXX_Size() int {
+	return xxx_messageInfo_Entry.Size(m)
+}
+func (m *Entry) XXX_DiscardUnknown() {
+	xxx_messageInfo_Entry.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Entry proto.InternalMessageInfo
+
+func (m *Entry) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *Entry) GetLinkedResource() string {
+	if m != nil {
+		return m.LinkedResource
+	}
+	return ""
+}
+
+func (m *Entry) GetType() EntryType {
+	if m != nil {
+		return m.Type
+	}
+	return EntryType_ENTRY_TYPE_UNSPECIFIED
+}
+
+type isEntry_TypeSpec interface {
+	isEntry_TypeSpec()
+}
+
+type Entry_BigqueryTableSpec struct {
+	BigqueryTableSpec *BigQueryTableSpec `protobuf:"bytes,12,opt,name=bigquery_table_spec,json=bigqueryTableSpec,proto3,oneof"`
+}
+
+func (*Entry_BigqueryTableSpec) isEntry_TypeSpec() {}
+
+func (m *Entry) GetTypeSpec() isEntry_TypeSpec {
+	if m != nil {
+		return m.TypeSpec
+	}
+	return nil
+}
+
+func (m *Entry) GetBigqueryTableSpec() *BigQueryTableSpec {
+	if x, ok := m.GetTypeSpec().(*Entry_BigqueryTableSpec); ok {
+		return x.BigqueryTableSpec
+	}
+	return nil
+}
+
+func (m *Entry) GetDisplayName() string {
+	if m != nil {
+		return m.DisplayName
+	}
+	return ""
+}
+
+func (m *Entry) GetDescription() string {
+	if m != nil {
+		return m.Description
+	}
+	return ""
+}
+
+func (m *Entry) GetSchema() *Schema {
+	if m != nil {
+		return m.Schema
+	}
+	return nil
+}
+
+func (m *Entry) GetSourceSystemTimestamps() *SystemTimestamps {
+	if m != nil {
+		return m.SourceSystemTimestamps
+	}
+	return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*Entry) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _Entry_OneofMarshaler, _Entry_OneofUnmarshaler, _Entry_OneofSizer, []interface{}{
+		(*Entry_BigqueryTableSpec)(nil),
+	}
+}
+
+func _Entry_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*Entry)
+	// type_spec
+	switch x := m.TypeSpec.(type) {
+	case *Entry_BigqueryTableSpec:
+		b.EncodeVarint(12<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.BigqueryTableSpec); err != nil {
+			return err
+		}
+	case nil:
+	default:
+		return fmt.Errorf("Entry.TypeSpec has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _Entry_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*Entry)
+	switch tag {
+	case 12: // type_spec.bigquery_table_spec
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(BigQueryTableSpec)
+		err := b.DecodeMessage(msg)
+		m.TypeSpec = &Entry_BigqueryTableSpec{msg}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _Entry_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*Entry)
+	// type_spec
+	switch x := m.TypeSpec.(type) {
+	case *Entry_BigqueryTableSpec:
+		s := proto.Size(x.BigqueryTableSpec)
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+func init() {
+	proto.RegisterType((*LookupEntryRequest)(nil), "google.cloud.datacatalog.v1beta1.LookupEntryRequest")
+	proto.RegisterType((*Entry)(nil), "google.cloud.datacatalog.v1beta1.Entry")
+	proto.RegisterEnum("google.cloud.datacatalog.v1beta1.EntryType", EntryType_name, EntryType_value)
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// DataCatalogClient is the client API for DataCatalog service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type DataCatalogClient interface {
+	// Get an entry by target resource name. This method allows clients to use
+	// the resource name from the source Google Cloud Platform service to get the
+	// Cloud Data Catalog Entry.
+	LookupEntry(ctx context.Context, in *LookupEntryRequest, opts ...grpc.CallOption) (*Entry, error)
+}
+
+type dataCatalogClient struct {
+	cc *grpc.ClientConn
+}
+
+func NewDataCatalogClient(cc *grpc.ClientConn) DataCatalogClient {
+	return &dataCatalogClient{cc}
+}
+
+func (c *dataCatalogClient) LookupEntry(ctx context.Context, in *LookupEntryRequest, opts ...grpc.CallOption) (*Entry, error) {
+	out := new(Entry)
+	err := c.cc.Invoke(ctx, "/google.cloud.datacatalog.v1beta1.DataCatalog/LookupEntry", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// DataCatalogServer is the server API for DataCatalog service.
+type DataCatalogServer interface {
+	// Get an entry by target resource name. This method allows clients to use
+	// the resource name from the source Google Cloud Platform service to get the
+	// Cloud Data Catalog Entry.
+	LookupEntry(context.Context, *LookupEntryRequest) (*Entry, error)
+}
+
+func RegisterDataCatalogServer(s *grpc.Server, srv DataCatalogServer) {
+	s.RegisterService(&_DataCatalog_serviceDesc, srv)
+}
+
+func _DataCatalog_LookupEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LookupEntryRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(DataCatalogServer).LookupEntry(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.datacatalog.v1beta1.DataCatalog/LookupEntry",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(DataCatalogServer).LookupEntry(ctx, req.(*LookupEntryRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _DataCatalog_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.cloud.datacatalog.v1beta1.DataCatalog",
+	HandlerType: (*DataCatalogServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "LookupEntry",
+			Handler:    _DataCatalog_LookupEntry_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/cloud/datacatalog/v1beta1/datacatalog.proto",
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/datacatalog/v1beta1/datacatalog.proto", fileDescriptor_datacatalog_4d76c63f2f954384)
+}
+
+var fileDescriptor_datacatalog_4d76c63f2f954384 = []byte{
+	// 563 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6f, 0xd3, 0x40,
+	0x10, 0x8d, 0xf3, 0x51, 0x94, 0x75, 0x68, 0xc3, 0x22, 0x15, 0x13, 0x55, 0x22, 0x84, 0x43, 0x03,
+	0x08, 0x5b, 0x49, 0x39, 0xc1, 0x01, 0xf2, 0x61, 0xd4, 0x8a, 0x12, 0x05, 0xc7, 0x1c, 0xca, 0xc5,
+	0xda, 0x38, 0x23, 0x63, 0xd5, 0xf6, 0x6e, 0xbc, 0x1b, 0x24, 0x5f, 0xb9, 0x73, 0xe2, 0xcc, 0xaf,
+	0xe2, 0x2f, 0x70, 0xe6, 0xcc, 0xb1, 0xf2, 0xda, 0x4d, 0xa2, 0x56, 0x95, 0x73, 0xb3, 0xde, 0xbc,
+	0xf7, 0x66, 0x76, 0xfc, 0x06, 0xf5, 0x3d, 0x4a, 0xbd, 0x00, 0x0c, 0x37, 0xa0, 0xab, 0x85, 0xb1,
+	0x20, 0x82, 0xb8, 0x44, 0x90, 0x80, 0x7a, 0xc6, 0xf7, 0xde, 0x1c, 0x04, 0xe9, 0x6d, 0x63, 0x3a,
+	0x8b, 0xa9, 0xa0, 0xb8, 0x9d, 0x69, 0x74, 0xa9, 0xd1, 0xb7, 0xeb, 0xb9, 0xa6, 0x75, 0x94, 0xbb,
+	0x12, 0xe6, 0x1b, 0x24, 0x8a, 0xa8, 0x20, 0xc2, 0xa7, 0x11, 0xcf, 0xf4, 0xad, 0x57, 0x85, 0x3d,
+	0xb9, 0xfb, 0x0d, 0x42, 0x92, 0xd3, 0x7b, 0x85, 0x74, 0x41, 0xe6, 0x01, 0x38, 0x9c, 0x81, 0xbb,
+	0xbb, 0xc4, 0x0f, 0x81, 0x0b, 0x12, 0xb2, 0x7c, 0xa8, 0x0e, 0x47, 0xf8, 0x9c, 0xd2, 0xcb, 0x15,
+	0x33, 0x23, 0x11, 0x27, 0x16, 0x2c, 0x57, 0xc0, 0x05, 0x7e, 0x8e, 0x0e, 0x02, 0x3f, 0xba, 0x84,
+	0x85, 0x13, 0x03, 0xa7, 0xab, 0xd8, 0x05, 0x4d, 0x69, 0x2b, 0xdd, 0xfa, 0x69, 0xc9, 0xda, 0xcf,
+	0x0a, 0x56, 0x8e, 0xe3, 0x67, 0xa8, 0xc1, 0x97, 0xc1, 0x86, 0x57, 0xc9, 0x79, 0x2a, 0x5f, 0x06,
+	0xd7, 0xa4, 0xe1, 0x7d, 0xa4, 0x0a, 0x12, 0x7b, 0x20, 0x9c, 0x88, 0x84, 0xd0, 0xf9, 0x57, 0x41,
+	0x35, 0xd9, 0x0f, 0x63, 0x54, 0x4d, 0x91, 0xcc, 0xdd, 0x92, 0xdf, 0xf8, 0xf8, 0x76, 0xf3, 0xba,
+	0x2c, 0xdf, 0x6c, 0xfd, 0x0e, 0x55, 0x45, 0xc2, 0x40, 0x2b, 0xb7, 0x95, 0xee, 0x7e, 0xff, 0xa5,
+	0x5e, 0xf4, 0x7f, 0x74, 0xd9, 0xd3, 0x4e, 0x18, 0x58, 0x52, 0x88, 0x01, 0x3d, 0x9c, 0xfb, 0xde,
+	0x72, 0x05, 0x71, 0xe2, 0x6c, 0x96, 0xa9, 0x35, 0xda, 0x4a, 0x57, 0xed, 0x9f, 0x14, 0xfb, 0x0d,
+	0x7d, 0xef, 0x73, 0x2a, 0xb6, 0x53, 0xed, 0x8c, 0x81, 0x7b, 0x5a, 0xb2, 0x1e, 0x5c, 0x3b, 0xae,
+	0x41, 0xfc, 0x14, 0x35, 0x16, 0x3e, 0x67, 0x01, 0x49, 0xe4, 0xf3, 0xb3, 0x15, 0x59, 0x6a, 0x8e,
+	0x4d, 0xd2, 0x37, 0xb7, 0x91, 0xba, 0x00, 0xee, 0xc6, 0x3e, 0x4b, 0x13, 0xa3, 0x55, 0x73, 0xc6,
+	0x06, 0xc2, 0xef, 0xd1, 0x5e, 0x16, 0x0f, 0xad, 0x26, 0xc7, 0xeb, 0x16, 0x8f, 0x37, 0x93, 0x7c,
+	0x2b, 0xd7, 0xe1, 0x00, 0x69, 0xd9, 0xe2, 0x1c, 0x9e, 0x70, 0x01, 0xa1, 0xb3, 0x09, 0x83, 0x76,
+	0x4f, 0x7a, 0xf6, 0x77, 0xf0, 0x94, 0x52, 0x7b, 0xad, 0xb4, 0x0e, 0x33, 0xcf, 0x9b, 0xf8, 0x50,
+	0x45, 0xf5, 0x74, 0xc7, 0x72, 0xa3, 0x2f, 0x46, 0xa8, 0xbe, 0xde, 0x3d, 0x6e, 0xa1, 0x43, 0x73,
+	0x62, 0x5b, 0x17, 0x8e, 0x7d, 0x31, 0x35, 0x9d, 0x2f, 0x93, 0xd9, 0xd4, 0x1c, 0x9d, 0x7d, 0x38,
+	0x33, 0xc7, 0xcd, 0x12, 0xae, 0xa3, 0x9a, 0x3d, 0x18, 0x9e, 0x9b, 0xcd, 0x32, 0x3e, 0x40, 0xea,
+	0x78, 0x60, 0x0f, 0x9c, 0x99, 0x6d, 0x99, 0x83, 0x4f, 0xcd, 0x4a, 0xff, 0xb7, 0x82, 0xd4, 0x31,
+	0x11, 0x64, 0x94, 0x8d, 0x84, 0x7f, 0x2a, 0x48, 0xdd, 0xca, 0x2e, 0x7e, 0x5d, 0x3c, 0xfd, 0xed,
+	0xa8, 0xb7, 0x8e, 0x77, 0x8c, 0x4d, 0xe7, 0xc9, 0x8f, 0x3f, 0x7f, 0x7f, 0x95, 0x1f, 0xe3, 0x47,
+	0xeb, 0x63, 0x82, 0x48, 0xc4, 0x3e, 0xf0, 0x37, 0x81, 0x74, 0x1d, 0x32, 0x74, 0xe4, 0xd2, 0xf0,
+	0x4e, 0xbb, 0xa9, 0xf2, 0xf5, 0x63, 0x5e, 0xf3, 0x68, 0x40, 0x22, 0x4f, 0xa7, 0xb1, 0x67, 0x78,
+	0x10, 0xc9, 0x43, 0x34, 0xb2, 0x12, 0x61, 0x3e, 0xbf, 0xfb, 0x7c, 0xdf, 0x6e, 0x61, 0xff, 0x15,
+	0x65, 0xbe, 0x27, 0xa5, 0x27, 0x57, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xc1, 0xb0, 0xec, 0xce,
+	0x04, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/datacatalog/v1beta1/schema.pb.go b/googleapis/cloud/datacatalog/v1beta1/schema.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..e229366b93664f22d4d82feaca2861ea18c82dbe
--- /dev/null
+++ b/googleapis/cloud/datacatalog/v1beta1/schema.pb.go
@@ -0,0 +1,168 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/datacatalog/v1beta1/schema.proto
+
+package datacatalog // import "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Represents a schema (e.g. BigQuery, GoogleSQL, Avro schema).
+type Schema struct {
+	// Schema of columns. A maximum of 10,000 columns and sub-columns can be
+	// specified.
+	Columns              []*ColumnSchema `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
+}
+
+func (m *Schema) Reset()         { *m = Schema{} }
+func (m *Schema) String() string { return proto.CompactTextString(m) }
+func (*Schema) ProtoMessage()    {}
+func (*Schema) Descriptor() ([]byte, []int) {
+	return fileDescriptor_schema_3cda8417f7d2d075, []int{0}
+}
+func (m *Schema) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Schema.Unmarshal(m, b)
+}
+func (m *Schema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Schema.Marshal(b, m, deterministic)
+}
+func (dst *Schema) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Schema.Merge(dst, src)
+}
+func (m *Schema) XXX_Size() int {
+	return xxx_messageInfo_Schema.Size(m)
+}
+func (m *Schema) XXX_DiscardUnknown() {
+	xxx_messageInfo_Schema.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Schema proto.InternalMessageInfo
+
+func (m *Schema) GetColumns() []*ColumnSchema {
+	if m != nil {
+		return m.Columns
+	}
+	return nil
+}
+
+// Representation of a column within a schema. Columns could be nested inside
+// other columns.
+type ColumnSchema struct {
+	// Required. Name of the column.
+	Column string `protobuf:"bytes,6,opt,name=column,proto3" json:"column,omitempty"`
+	// Required. Type of the column.
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+	// Description of the column.
+	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+	// A column's mode indicates whether the values in this column are
+	// required, nullable, etc. Only 'NULLABLE', 'REQUIRED' and 'REPEATED' are
+	// supported, default mode is 'NULLABLE'.
+	Mode string `protobuf:"bytes,3,opt,name=mode,proto3" json:"mode,omitempty"`
+	// Schema of sub-columns.
+	Subcolumns           []*ColumnSchema `protobuf:"bytes,7,rep,name=subcolumns,proto3" json:"subcolumns,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
+}
+
+func (m *ColumnSchema) Reset()         { *m = ColumnSchema{} }
+func (m *ColumnSchema) String() string { return proto.CompactTextString(m) }
+func (*ColumnSchema) ProtoMessage()    {}
+func (*ColumnSchema) Descriptor() ([]byte, []int) {
+	return fileDescriptor_schema_3cda8417f7d2d075, []int{1}
+}
+func (m *ColumnSchema) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ColumnSchema.Unmarshal(m, b)
+}
+func (m *ColumnSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ColumnSchema.Marshal(b, m, deterministic)
+}
+func (dst *ColumnSchema) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ColumnSchema.Merge(dst, src)
+}
+func (m *ColumnSchema) XXX_Size() int {
+	return xxx_messageInfo_ColumnSchema.Size(m)
+}
+func (m *ColumnSchema) XXX_DiscardUnknown() {
+	xxx_messageInfo_ColumnSchema.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ColumnSchema proto.InternalMessageInfo
+
+func (m *ColumnSchema) GetColumn() string {
+	if m != nil {
+		return m.Column
+	}
+	return ""
+}
+
+func (m *ColumnSchema) GetType() string {
+	if m != nil {
+		return m.Type
+	}
+	return ""
+}
+
+func (m *ColumnSchema) GetDescription() string {
+	if m != nil {
+		return m.Description
+	}
+	return ""
+}
+
+func (m *ColumnSchema) GetMode() string {
+	if m != nil {
+		return m.Mode
+	}
+	return ""
+}
+
+func (m *ColumnSchema) GetSubcolumns() []*ColumnSchema {
+	if m != nil {
+		return m.Subcolumns
+	}
+	return nil
+}
+
+func init() {
+	proto.RegisterType((*Schema)(nil), "google.cloud.datacatalog.v1beta1.Schema")
+	proto.RegisterType((*ColumnSchema)(nil), "google.cloud.datacatalog.v1beta1.ColumnSchema")
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/datacatalog/v1beta1/schema.proto", fileDescriptor_schema_3cda8417f7d2d075)
+}
+
+var fileDescriptor_schema_3cda8417f7d2d075 = []byte{
+	// 251 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0x31, 0x4b, 0x04, 0x31,
+	0x10, 0x85, 0xc9, 0x9d, 0xec, 0xe1, 0x9c, 0x55, 0x0a, 0x49, 0x61, 0xb1, 0x5c, 0x75, 0x8d, 0x09,
+	0xa7, 0xa5, 0x9d, 0x36, 0x82, 0x20, 0xb2, 0x76, 0x76, 0xd9, 0x6c, 0x88, 0x0b, 0xd9, 0x4c, 0xd8,
+	0x64, 0x05, 0xff, 0x9d, 0x3f, 0xcb, 0x52, 0x2e, 0xd9, 0x83, 0x34, 0x8b, 0x70, 0xdd, 0xe4, 0xbd,
+	0xf7, 0x3d, 0x86, 0x0c, 0xdc, 0x1a, 0x44, 0x63, 0xb5, 0x50, 0x16, 0xa7, 0x4e, 0x74, 0x32, 0x4a,
+	0x25, 0xa3, 0xb4, 0x68, 0xc4, 0xd7, 0xa1, 0xd5, 0x51, 0x1e, 0x44, 0x50, 0x9f, 0x7a, 0x90, 0xdc,
+	0x8f, 0x18, 0x91, 0xd6, 0x39, 0xce, 0x53, 0x9c, 0x17, 0x71, 0x3e, 0xc7, 0x77, 0x0d, 0x54, 0xef,
+	0x89, 0xa0, 0xcf, 0xb0, 0x51, 0x68, 0xa7, 0xc1, 0x05, 0xb6, 0xaa, 0xd7, 0xfb, 0xed, 0x1d, 0xe7,
+	0xff, 0xd1, 0xfc, 0x29, 0x01, 0xb9, 0xa0, 0x39, 0xe1, 0xbb, 0x1f, 0x02, 0x57, 0xa5, 0x43, 0xaf,
+	0xa1, 0xca, 0x1e, 0xab, 0x6a, 0xb2, 0xbf, 0x6c, 0xe6, 0x17, 0xa5, 0x70, 0x11, 0xbf, 0xbd, 0x66,
+	0x24, 0xa9, 0x69, 0xa6, 0x35, 0x6c, 0x3b, 0x1d, 0xd4, 0xd8, 0xfb, 0xd8, 0xa3, 0x63, 0xab, 0x64,
+	0x95, 0xd2, 0x91, 0x1a, 0xb0, 0xd3, 0x6c, 0x9d, 0xa9, 0xe3, 0x4c, 0x5f, 0x01, 0xc2, 0xd4, 0x9e,
+	0xf6, 0xdf, 0x9c, 0xb5, 0x7f, 0xd1, 0xf0, 0xe8, 0xe1, 0x46, 0xe1, 0xb0, 0x58, 0xf0, 0x46, 0x3e,
+	0x5e, 0x66, 0xcf, 0xa0, 0x95, 0xce, 0x70, 0x1c, 0x8d, 0x30, 0xda, 0xa5, 0x6f, 0x17, 0xd9, 0x92,
+	0xbe, 0x0f, 0xcb, 0x87, 0x7a, 0x28, 0xb4, 0x5f, 0x42, 0xda, 0x2a, 0xa1, 0xf7, 0x7f, 0x01, 0x00,
+	0x00, 0xff, 0xff, 0x28, 0x89, 0x34, 0x94, 0xe2, 0x01, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/datacatalog/v1beta1/table_spec.pb.go b/googleapis/cloud/datacatalog/v1beta1/table_spec.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..b4853e28638715bab211f4c57da8e9cf9b7e4b78
--- /dev/null
+++ b/googleapis/cloud/datacatalog/v1beta1/table_spec.pb.go
@@ -0,0 +1,173 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/datacatalog/v1beta1/table_spec.proto
+
+package datacatalog // import "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Table source type.
+type TableSourceType int32
+
+const (
+	// Default unknown type.
+	TableSourceType_TABLE_SOURCE_TYPE_UNSPECIFIED TableSourceType = 0
+	// Table view.
+	TableSourceType_BIGQUERY_VIEW TableSourceType = 2
+	// BigQuery native table.
+	TableSourceType_BIGQUERY_TABLE TableSourceType = 5
+)
+
+var TableSourceType_name = map[int32]string{
+	0: "TABLE_SOURCE_TYPE_UNSPECIFIED",
+	2: "BIGQUERY_VIEW",
+	5: "BIGQUERY_TABLE",
+}
+var TableSourceType_value = map[string]int32{
+	"TABLE_SOURCE_TYPE_UNSPECIFIED": 0,
+	"BIGQUERY_VIEW":                 2,
+	"BIGQUERY_TABLE":                5,
+}
+
+func (x TableSourceType) String() string {
+	return proto.EnumName(TableSourceType_name, int32(x))
+}
+func (TableSourceType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_table_spec_ee8c5c4791953ab0, []int{0}
+}
+
+// Describes a BigQuery table.
+type BigQueryTableSpec struct {
+	// The table source type.
+	TableSourceType TableSourceType `protobuf:"varint,1,opt,name=table_source_type,json=tableSourceType,proto3,enum=google.cloud.datacatalog.v1beta1.TableSourceType" json:"table_source_type,omitempty"`
+	// Table view specification. This field should only be populated if
+	// table_source_type is BIGQUERY_VIEW.
+	ViewSpec             *ViewSpec `protobuf:"bytes,2,opt,name=view_spec,json=viewSpec,proto3" json:"view_spec,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *BigQueryTableSpec) Reset()         { *m = BigQueryTableSpec{} }
+func (m *BigQueryTableSpec) String() string { return proto.CompactTextString(m) }
+func (*BigQueryTableSpec) ProtoMessage()    {}
+func (*BigQueryTableSpec) Descriptor() ([]byte, []int) {
+	return fileDescriptor_table_spec_ee8c5c4791953ab0, []int{0}
+}
+func (m *BigQueryTableSpec) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_BigQueryTableSpec.Unmarshal(m, b)
+}
+func (m *BigQueryTableSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_BigQueryTableSpec.Marshal(b, m, deterministic)
+}
+func (dst *BigQueryTableSpec) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_BigQueryTableSpec.Merge(dst, src)
+}
+func (m *BigQueryTableSpec) XXX_Size() int {
+	return xxx_messageInfo_BigQueryTableSpec.Size(m)
+}
+func (m *BigQueryTableSpec) XXX_DiscardUnknown() {
+	xxx_messageInfo_BigQueryTableSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BigQueryTableSpec proto.InternalMessageInfo
+
+func (m *BigQueryTableSpec) GetTableSourceType() TableSourceType {
+	if m != nil {
+		return m.TableSourceType
+	}
+	return TableSourceType_TABLE_SOURCE_TYPE_UNSPECIFIED
+}
+
+func (m *BigQueryTableSpec) GetViewSpec() *ViewSpec {
+	if m != nil {
+		return m.ViewSpec
+	}
+	return nil
+}
+
+// Table view specification.
+type ViewSpec struct {
+	// The query that defines the table view.
+	ViewQuery            string   `protobuf:"bytes,1,opt,name=view_query,json=viewQuery,proto3" json:"view_query,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ViewSpec) Reset()         { *m = ViewSpec{} }
+func (m *ViewSpec) String() string { return proto.CompactTextString(m) }
+func (*ViewSpec) ProtoMessage()    {}
+func (*ViewSpec) Descriptor() ([]byte, []int) {
+	return fileDescriptor_table_spec_ee8c5c4791953ab0, []int{1}
+}
+func (m *ViewSpec) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ViewSpec.Unmarshal(m, b)
+}
+func (m *ViewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ViewSpec.Marshal(b, m, deterministic)
+}
+func (dst *ViewSpec) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ViewSpec.Merge(dst, src)
+}
+func (m *ViewSpec) XXX_Size() int {
+	return xxx_messageInfo_ViewSpec.Size(m)
+}
+func (m *ViewSpec) XXX_DiscardUnknown() {
+	xxx_messageInfo_ViewSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ViewSpec proto.InternalMessageInfo
+
+func (m *ViewSpec) GetViewQuery() string {
+	if m != nil {
+		return m.ViewQuery
+	}
+	return ""
+}
+
+func init() {
+	proto.RegisterType((*BigQueryTableSpec)(nil), "google.cloud.datacatalog.v1beta1.BigQueryTableSpec")
+	proto.RegisterType((*ViewSpec)(nil), "google.cloud.datacatalog.v1beta1.ViewSpec")
+	proto.RegisterEnum("google.cloud.datacatalog.v1beta1.TableSourceType", TableSourceType_name, TableSourceType_value)
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/datacatalog/v1beta1/table_spec.proto", fileDescriptor_table_spec_ee8c5c4791953ab0)
+}
+
+var fileDescriptor_table_spec_ee8c5c4791953ab0 = []byte{
+	// 319 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xcf, 0x4b, 0x02, 0x41,
+	0x14, 0xc7, 0x1b, 0xa1, 0xd0, 0x89, 0xfc, 0x31, 0x27, 0x0f, 0x09, 0xe6, 0xc9, 0x3c, 0xcc, 0xb2,
+	0x76, 0xec, 0xd4, 0xda, 0x24, 0x4b, 0x51, 0xba, 0xae, 0x86, 0x45, 0x2c, 0xe3, 0xf8, 0x18, 0x16,
+	0x36, 0x67, 0x5a, 0x47, 0xc5, 0xbf, 0xad, 0x7f, 0xac, 0x63, 0x38, 0x6e, 0x61, 0x81, 0x78, 0x1b,
+	0xbe, 0x8f, 0xcf, 0x67, 0xbe, 0x8f, 0x87, 0x5d, 0xa9, 0x94, 0x4c, 0xc0, 0x11, 0x89, 0x5a, 0x4c,
+	0x9d, 0x29, 0x37, 0x5c, 0x70, 0xc3, 0x13, 0x25, 0x9d, 0xa5, 0x3b, 0x01, 0xc3, 0x5d, 0xc7, 0xf0,
+	0x49, 0x02, 0xd1, 0x5c, 0x83, 0xa0, 0x3a, 0x55, 0x46, 0x91, 0xfa, 0x16, 0xa1, 0x16, 0xa1, 0x3b,
+	0x08, 0xcd, 0x90, 0xc6, 0x27, 0xc2, 0x15, 0x2f, 0x96, 0xfd, 0x05, 0xa4, 0xeb, 0x70, 0x83, 0x0f,
+	0x34, 0x08, 0xf2, 0x86, 0x2b, 0x99, 0x4b, 0x2d, 0x52, 0x01, 0x91, 0x59, 0x6b, 0xa8, 0xa2, 0x3a,
+	0x6a, 0x16, 0xdb, 0x2e, 0x3d, 0xe4, 0xa4, 0x5b, 0x8f, 0x25, 0xc3, 0xb5, 0x86, 0xa0, 0x64, 0xfe,
+	0x06, 0xa4, 0x8b, 0x0b, 0xcb, 0x18, 0x56, 0xb6, 0x69, 0x35, 0x57, 0x47, 0xcd, 0xd3, 0x76, 0xeb,
+	0xb0, 0x76, 0x14, 0xc3, 0x6a, 0xd3, 0x2e, 0xc8, 0x2f, 0xb3, 0x57, 0xe3, 0x12, 0xe7, 0x7f, 0x52,
+	0x52, 0xc3, 0xd8, 0x4a, 0x3f, 0x36, 0xab, 0xd8, 0xb2, 0x85, 0xc0, 0x7e, 0x63, 0x77, 0x6b, 0xbd,
+	0xe2, 0xd2, 0xbf, 0x5e, 0xe4, 0x02, 0xd7, 0xc2, 0x1b, 0xef, 0x81, 0x45, 0x83, 0xa7, 0x61, 0xd0,
+	0x61, 0x51, 0x38, 0xee, 0xb1, 0x68, 0xf8, 0x38, 0xe8, 0xb1, 0x8e, 0x7f, 0xe7, 0xb3, 0xdb, 0xf2,
+	0x11, 0xa9, 0xe0, 0x33, 0xcf, 0xef, 0xf6, 0x87, 0x2c, 0x18, 0x47, 0x23, 0x9f, 0x3d, 0x97, 0x73,
+	0x84, 0xe0, 0xe2, 0x6f, 0x64, 0xf1, 0xf2, 0xb1, 0xa7, 0xf1, 0xb9, 0x50, 0xef, 0x7b, 0x57, 0xe8,
+	0xa1, 0x97, 0xfb, 0x6c, 0x26, 0x55, 0xc2, 0x67, 0x92, 0xaa, 0x54, 0x3a, 0x12, 0x66, 0xf6, 0x4a,
+	0xce, 0x76, 0xc4, 0x75, 0x3c, 0xdf, 0x7f, 0xdb, 0xeb, 0x9d, 0xec, 0x0b, 0xa1, 0xc9, 0x89, 0x45,
+	0xaf, 0xbe, 0x03, 0x00, 0x00, 0xff, 0xff, 0x41, 0xe6, 0x4f, 0xb9, 0x15, 0x02, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/datacatalog/v1beta1/timestamps.pb.go b/googleapis/cloud/datacatalog/v1beta1/timestamps.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..66b3a2b5a3959a2a23891d99cfa7f1b37e4d3046
--- /dev/null
+++ b/googleapis/cloud/datacatalog/v1beta1/timestamps.pb.go
@@ -0,0 +1,106 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/datacatalog/v1beta1/timestamps.proto
+
+package datacatalog // import "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import timestamp "github.com/golang/protobuf/ptypes/timestamp"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Timestamps about this resource according to a particular system.
+type SystemTimestamps struct {
+	// Output only. The creation time of the resource within the given system.
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	// Output only. The last-modified time of the resource within the given
+	// system.
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+	// Output only. The expiration time of the resource within the given system.
+	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *SystemTimestamps) Reset()         { *m = SystemTimestamps{} }
+func (m *SystemTimestamps) String() string { return proto.CompactTextString(m) }
+func (*SystemTimestamps) ProtoMessage()    {}
+func (*SystemTimestamps) Descriptor() ([]byte, []int) {
+	return fileDescriptor_timestamps_2c433979acbcfbeb, []int{0}
+}
+func (m *SystemTimestamps) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SystemTimestamps.Unmarshal(m, b)
+}
+func (m *SystemTimestamps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SystemTimestamps.Marshal(b, m, deterministic)
+}
+func (dst *SystemTimestamps) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SystemTimestamps.Merge(dst, src)
+}
+func (m *SystemTimestamps) XXX_Size() int {
+	return xxx_messageInfo_SystemTimestamps.Size(m)
+}
+func (m *SystemTimestamps) XXX_DiscardUnknown() {
+	xxx_messageInfo_SystemTimestamps.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SystemTimestamps proto.InternalMessageInfo
+
+func (m *SystemTimestamps) GetCreateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.CreateTime
+	}
+	return nil
+}
+
+func (m *SystemTimestamps) GetUpdateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.UpdateTime
+	}
+	return nil
+}
+
+func (m *SystemTimestamps) GetExpireTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.ExpireTime
+	}
+	return nil
+}
+
+func init() {
+	proto.RegisterType((*SystemTimestamps)(nil), "google.cloud.datacatalog.v1beta1.SystemTimestamps")
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/datacatalog/v1beta1/timestamps.proto", fileDescriptor_timestamps_2c433979acbcfbeb)
+}
+
+var fileDescriptor_timestamps_2c433979acbcfbeb = []byte{
+	// 229 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0xd1, 0x3f, 0x4b, 0x03, 0x41,
+	0x10, 0x05, 0x70, 0x56, 0xc1, 0x62, 0xd3, 0x48, 0x2a, 0x09, 0x82, 0xc1, 0xca, 0x6a, 0x96, 0xd3,
+	0x32, 0x9d, 0xad, 0x8d, 0xa8, 0x95, 0x8d, 0xcc, 0xdd, 0x8d, 0xcb, 0xc1, 0x6d, 0x66, 0xd9, 0x9d,
+	0x13, 0xfd, 0x88, 0x7e, 0x23, 0x4b, 0xd9, 0x3f, 0xb9, 0xa4, 0x09, 0x69, 0xdf, 0xbc, 0xdf, 0x3b,
+	0xb8, 0xd5, 0x8d, 0x65, 0xb6, 0x23, 0x99, 0x6e, 0xe4, 0xa9, 0x37, 0x3d, 0x0a, 0x76, 0x28, 0x38,
+	0xb2, 0x35, 0x5f, 0x4d, 0x4b, 0x82, 0x8d, 0x91, 0xc1, 0x51, 0x14, 0x74, 0x3e, 0x82, 0x0f, 0x2c,
+	0xbc, 0x5c, 0x17, 0x02, 0x99, 0xc0, 0x01, 0x81, 0x4a, 0x56, 0x37, 0x75, 0x34, 0xf7, 0xdb, 0xe9,
+	0x73, 0xbf, 0x51, 0x26, 0x6e, 0x7f, 0x95, 0xbe, 0x7c, 0xfd, 0x89, 0x42, 0xee, 0x6d, 0x5e, 0x5f,
+	0x6e, 0xf4, 0xa2, 0x0b, 0x84, 0x42, 0x1f, 0xa9, 0x7e, 0xa5, 0xd6, 0xea, 0x6e, 0x71, 0xbf, 0x82,
+	0xfa, 0xb5, 0xdd, 0x16, 0xcc, 0xe2, 0x45, 0x97, 0x7a, 0x0a, 0x12, 0x9e, 0x7c, 0x3f, 0xe3, 0xb3,
+	0xd3, 0xb8, 0xd4, 0x77, 0x98, 0xbe, 0xfd, 0x10, 0x2a, 0x3e, 0x3f, 0x8d, 0x4b, 0x3d, 0x05, 0x8f,
+	0x5e, 0x5f, 0x77, 0xec, 0xe0, 0xd8, 0x4f, 0x79, 0x56, 0xef, 0x4f, 0xf5, 0x66, 0x79, 0xc4, 0xad,
+	0x05, 0x0e, 0xd6, 0x58, 0xda, 0xe6, 0x59, 0x53, 0x4e, 0xe8, 0x87, 0x78, 0xfc, 0x09, 0x36, 0x07,
+	0xd9, 0x9f, 0x52, 0xed, 0x45, 0xa6, 0x0f, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xef, 0x7f, 0xec,
+	0xb8, 0xbc, 0x01, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/dialogflow/v2/session.pb.go b/googleapis/cloud/dialogflow/v2/session.pb.go
index 7b09c0d4a4db90cf90bb466777c75b0c4821071b..26251f6caf10a5510feabf5ddcd20405f1cc87ce 100644
--- a/googleapis/cloud/dialogflow/v2/session.pb.go
+++ b/googleapis/cloud/dialogflow/v2/session.pb.go
@@ -96,7 +96,7 @@ func (x AudioEncoding) String() string {
 	return proto.EnumName(AudioEncoding_name, int32(x))
 }
 func (AudioEncoding) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{0}
+	return fileDescriptor_session_4508b1b03e818872, []int{0}
 }
 
 // Type of the response message.
@@ -132,7 +132,7 @@ func (x StreamingRecognitionResult_MessageType) String() string {
 	return proto.EnumName(StreamingRecognitionResult_MessageType_name, int32(x))
 }
 func (StreamingRecognitionResult_MessageType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{7, 0}
+	return fileDescriptor_session_4508b1b03e818872, []int{7, 0}
 }
 
 // The request to detect user's intent.
@@ -171,7 +171,7 @@ func (m *DetectIntentRequest) Reset()         { *m = DetectIntentRequest{} }
 func (m *DetectIntentRequest) String() string { return proto.CompactTextString(m) }
 func (*DetectIntentRequest) ProtoMessage()    {}
 func (*DetectIntentRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{0}
+	return fileDescriptor_session_4508b1b03e818872, []int{0}
 }
 func (m *DetectIntentRequest) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DetectIntentRequest.Unmarshal(m, b)
@@ -254,7 +254,7 @@ func (m *DetectIntentResponse) Reset()         { *m = DetectIntentResponse{} }
 func (m *DetectIntentResponse) String() string { return proto.CompactTextString(m) }
 func (*DetectIntentResponse) ProtoMessage()    {}
 func (*DetectIntentResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{1}
+	return fileDescriptor_session_4508b1b03e818872, []int{1}
 }
 func (m *DetectIntentResponse) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DetectIntentResponse.Unmarshal(m, b)
@@ -343,7 +343,7 @@ func (m *QueryParameters) Reset()         { *m = QueryParameters{} }
 func (m *QueryParameters) String() string { return proto.CompactTextString(m) }
 func (*QueryParameters) ProtoMessage()    {}
 func (*QueryParameters) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{2}
+	return fileDescriptor_session_4508b1b03e818872, []int{2}
 }
 func (m *QueryParameters) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_QueryParameters.Unmarshal(m, b)
@@ -437,7 +437,7 @@ func (m *QueryInput) Reset()         { *m = QueryInput{} }
 func (m *QueryInput) String() string { return proto.CompactTextString(m) }
 func (*QueryInput) ProtoMessage()    {}
 func (*QueryInput) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{3}
+	return fileDescriptor_session_4508b1b03e818872, []int{3}
 }
 func (m *QueryInput) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_QueryInput.Unmarshal(m, b)
@@ -676,7 +676,7 @@ func (m *QueryResult) Reset()         { *m = QueryResult{} }
 func (m *QueryResult) String() string { return proto.CompactTextString(m) }
 func (*QueryResult) ProtoMessage()    {}
 func (*QueryResult) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{4}
+	return fileDescriptor_session_4508b1b03e818872, []int{4}
 }
 func (m *QueryResult) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_QueryResult.Unmarshal(m, b)
@@ -857,7 +857,7 @@ func (m *StreamingDetectIntentRequest) Reset()         { *m = StreamingDetectInt
 func (m *StreamingDetectIntentRequest) String() string { return proto.CompactTextString(m) }
 func (*StreamingDetectIntentRequest) ProtoMessage()    {}
 func (*StreamingDetectIntentRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{5}
+	return fileDescriptor_session_4508b1b03e818872, []int{5}
 }
 func (m *StreamingDetectIntentRequest) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_StreamingDetectIntentRequest.Unmarshal(m, b)
@@ -956,7 +956,7 @@ func (m *StreamingDetectIntentResponse) Reset()         { *m = StreamingDetectIn
 func (m *StreamingDetectIntentResponse) String() string { return proto.CompactTextString(m) }
 func (*StreamingDetectIntentResponse) ProtoMessage()    {}
 func (*StreamingDetectIntentResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{6}
+	return fileDescriptor_session_4508b1b03e818872, []int{6}
 }
 func (m *StreamingDetectIntentResponse) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_StreamingDetectIntentResponse.Unmarshal(m, b)
@@ -1079,7 +1079,7 @@ func (m *StreamingRecognitionResult) Reset()         { *m = StreamingRecognition
 func (m *StreamingRecognitionResult) String() string { return proto.CompactTextString(m) }
 func (*StreamingRecognitionResult) ProtoMessage()    {}
 func (*StreamingRecognitionResult) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{7}
+	return fileDescriptor_session_4508b1b03e818872, []int{7}
 }
 func (m *StreamingRecognitionResult) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_StreamingRecognitionResult.Unmarshal(m, b)
@@ -1159,7 +1159,7 @@ func (m *InputAudioConfig) Reset()         { *m = InputAudioConfig{} }
 func (m *InputAudioConfig) String() string { return proto.CompactTextString(m) }
 func (*InputAudioConfig) ProtoMessage()    {}
 func (*InputAudioConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{8}
+	return fileDescriptor_session_4508b1b03e818872, []int{8}
 }
 func (m *InputAudioConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InputAudioConfig.Unmarshal(m, b)
@@ -1226,7 +1226,7 @@ func (m *TextInput) Reset()         { *m = TextInput{} }
 func (m *TextInput) String() string { return proto.CompactTextString(m) }
 func (*TextInput) ProtoMessage()    {}
 func (*TextInput) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{9}
+	return fileDescriptor_session_4508b1b03e818872, []int{9}
 }
 func (m *TextInput) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_TextInput.Unmarshal(m, b)
@@ -1284,7 +1284,7 @@ func (m *EventInput) Reset()         { *m = EventInput{} }
 func (m *EventInput) String() string { return proto.CompactTextString(m) }
 func (*EventInput) ProtoMessage()    {}
 func (*EventInput) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{10}
+	return fileDescriptor_session_4508b1b03e818872, []int{10}
 }
 func (m *EventInput) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_EventInput.Unmarshal(m, b)
@@ -1340,7 +1340,7 @@ func (m *SentimentAnalysisRequestConfig) Reset()         { *m = SentimentAnalysi
 func (m *SentimentAnalysisRequestConfig) String() string { return proto.CompactTextString(m) }
 func (*SentimentAnalysisRequestConfig) ProtoMessage()    {}
 func (*SentimentAnalysisRequestConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{11}
+	return fileDescriptor_session_4508b1b03e818872, []int{11}
 }
 func (m *SentimentAnalysisRequestConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SentimentAnalysisRequestConfig.Unmarshal(m, b)
@@ -1381,7 +1381,7 @@ func (m *SentimentAnalysisResult) Reset()         { *m = SentimentAnalysisResult
 func (m *SentimentAnalysisResult) String() string { return proto.CompactTextString(m) }
 func (*SentimentAnalysisResult) ProtoMessage()    {}
 func (*SentimentAnalysisResult) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{12}
+	return fileDescriptor_session_4508b1b03e818872, []int{12}
 }
 func (m *SentimentAnalysisResult) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SentimentAnalysisResult.Unmarshal(m, b)
@@ -1426,7 +1426,7 @@ func (m *Sentiment) Reset()         { *m = Sentiment{} }
 func (m *Sentiment) String() string { return proto.CompactTextString(m) }
 func (*Sentiment) ProtoMessage()    {}
 func (*Sentiment) Descriptor() ([]byte, []int) {
-	return fileDescriptor_session_32b76551dbbad967, []int{13}
+	return fileDescriptor_session_4508b1b03e818872, []int{13}
 }
 func (m *Sentiment) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Sentiment.Unmarshal(m, b)
@@ -1632,10 +1632,10 @@ var _Sessions_serviceDesc = grpc.ServiceDesc{
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/dialogflow/v2/session.proto", fileDescriptor_session_32b76551dbbad967)
+	proto.RegisterFile("google/cloud/dialogflow/v2/session.proto", fileDescriptor_session_4508b1b03e818872)
 }
 
-var fileDescriptor_session_32b76551dbbad967 = []byte{
+var fileDescriptor_session_4508b1b03e818872 = []byte{
 	// 1791 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x73, 0x23, 0x47,
 	0x15, 0xdf, 0x91, 0xff, 0xea, 0x49, 0xb6, 0xb5, 0x6d, 0x27, 0x96, 0xff, 0xac, 0xd9, 0x55, 0x6a,
diff --git a/googleapis/cloud/securitycenter/v1/asset.pb.go b/googleapis/cloud/securitycenter/v1/asset.pb.go
index a36f60aad9f88cf14877e126a3b9e13c383ceaa2..730d4820ef4d55a901f29bcb73f5868dae1da494 100644
--- a/googleapis/cloud/securitycenter/v1/asset.pb.go
+++ b/googleapis/cloud/securitycenter/v1/asset.pb.go
@@ -60,7 +60,7 @@ func (m *Asset) Reset()         { *m = Asset{} }
 func (m *Asset) String() string { return proto.CompactTextString(m) }
 func (*Asset) ProtoMessage()    {}
 func (*Asset) Descriptor() ([]byte, []int) {
-	return fileDescriptor_asset_2192ac43e502418e, []int{0}
+	return fileDescriptor_asset_6429e78996bd9cc5, []int{0}
 }
 func (m *Asset) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Asset.Unmarshal(m, b)
@@ -158,7 +158,7 @@ func (m *Asset_SecurityCenterProperties) Reset()         { *m = Asset_SecurityCe
 func (m *Asset_SecurityCenterProperties) String() string { return proto.CompactTextString(m) }
 func (*Asset_SecurityCenterProperties) ProtoMessage()    {}
 func (*Asset_SecurityCenterProperties) Descriptor() ([]byte, []int) {
-	return fileDescriptor_asset_2192ac43e502418e, []int{0, 0}
+	return fileDescriptor_asset_6429e78996bd9cc5, []int{0, 0}
 }
 func (m *Asset_SecurityCenterProperties) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Asset_SecurityCenterProperties.Unmarshal(m, b)
@@ -230,7 +230,7 @@ func (m *Asset_IamPolicy) Reset()         { *m = Asset_IamPolicy{} }
 func (m *Asset_IamPolicy) String() string { return proto.CompactTextString(m) }
 func (*Asset_IamPolicy) ProtoMessage()    {}
 func (*Asset_IamPolicy) Descriptor() ([]byte, []int) {
-	return fileDescriptor_asset_2192ac43e502418e, []int{0, 1}
+	return fileDescriptor_asset_6429e78996bd9cc5, []int{0, 1}
 }
 func (m *Asset_IamPolicy) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Asset_IamPolicy.Unmarshal(m, b)
@@ -265,45 +265,46 @@ func init() {
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/securitycenter/v1/asset.proto", fileDescriptor_asset_2192ac43e502418e)
+	proto.RegisterFile("google/cloud/securitycenter/v1/asset.proto", fileDescriptor_asset_6429e78996bd9cc5)
 }
 
-var fileDescriptor_asset_2192ac43e502418e = []byte{
-	// 564 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xed, 0x6a, 0xd4, 0x40,
-	0x14, 0x25, 0xdd, 0xd6, 0xba, 0x77, 0xed, 0x07, 0x23, 0x68, 0x08, 0xd2, 0x2e, 0xf5, 0x87, 0xab,
-	0xd4, 0x84, 0x6d, 0xff, 0x88, 0x45, 0xc1, 0x16, 0x11, 0x41, 0xeb, 0x12, 0x97, 0xfd, 0x21, 0x2b,
-	0xcb, 0x6c, 0x7a, 0x0d, 0xb1, 0xc9, 0x4c, 0x98, 0x99, 0xac, 0x04, 0x7c, 0x12, 0x1f, 0xc1, 0x07,
-	0xf0, 0x21, 0x7c, 0x0b, 0xdf, 0x44, 0x32, 0x93, 0xa4, 0x89, 0x65, 0xdd, 0xfe, 0x9b, 0x9c, 0x7b,
-	0xce, 0xb9, 0x73, 0xe7, 0xdc, 0x5d, 0x78, 0x12, 0x72, 0x1e, 0xc6, 0xe8, 0x05, 0x31, 0xcf, 0x2e,
-	0x3c, 0x89, 0x41, 0x26, 0x22, 0x95, 0x07, 0xc8, 0x14, 0x0a, 0x6f, 0x31, 0xf4, 0xa8, 0x94, 0xa8,
-	0xdc, 0x54, 0x70, 0xc5, 0xc9, 0x9e, 0xe1, 0xba, 0x9a, 0xeb, 0xb6, 0xb9, 0xee, 0x62, 0xe8, 0x3c,
-	0x28, 0xbd, 0x68, 0x1a, 0x79, 0x94, 0x31, 0xae, 0xa8, 0x8a, 0x38, 0x93, 0x46, 0xed, 0x1c, 0xaf,
-	0xe8, 0x54, 0x21, 0xb3, 0x84, 0x8a, 0xcb, 0x4a, 0x54, 0x59, 0xea, 0xaf, 0x79, 0xf6, 0xc5, 0x93,
-	0x4a, 0x64, 0x41, 0x79, 0x21, 0x67, 0xff, 0xdf, 0xaa, 0x8a, 0x12, 0x94, 0x8a, 0x26, 0xa9, 0x21,
-	0x1c, 0xfc, 0xd8, 0x84, 0x8d, 0x57, 0xc5, 0x04, 0x84, 0xc0, 0x3a, 0xa3, 0x09, 0xda, 0x56, 0xdf,
-	0x1a, 0x74, 0x7d, 0x7d, 0x26, 0xdf, 0xc1, 0xa9, 0x9b, 0x9a, 0x7b, 0xcc, 0x52, 0xc1, 0x53, 0x14,
-	0x2a, 0x42, 0x69, 0xaf, 0xf5, 0xad, 0x41, 0xef, 0xe8, 0xa5, 0xfb, 0xff, 0xa1, 0x5d, 0x6d, 0xef,
-	0x7e, 0x2c, 0xf1, 0x33, 0x8d, 0x8f, 0x6a, 0x17, 0xdf, 0x96, 0x4b, 0x2a, 0x84, 0xc1, 0x5d, 0x81,
-	0x92, 0x67, 0x22, 0xc0, 0x66, 0xdb, 0xcd, 0x7e, 0x67, 0xd0, 0x3b, 0x7a, 0x71, 0xb3, 0xb6, 0x7e,
-	0x69, 0x70, 0x65, 0xfb, 0x9a, 0x29, 0x91, 0xfb, 0x44, 0x5c, 0x2b, 0x90, 0x31, 0x6c, 0xb7, 0x9f,
-	0xd8, 0xbe, 0xad, 0x27, 0x7c, 0xba, 0xaa, 0x55, 0x35, 0xdb, 0xfb, 0x42, 0xe4, 0x6f, 0xc9, 0xe6,
-	0x27, 0x39, 0x81, 0x5e, 0x20, 0x90, 0x2a, 0x9c, 0x15, 0x6f, 0x6f, 0x77, 0xb5, 0xa5, 0x53, 0x59,
-	0x56, 0xc1, 0xb8, 0xe3, 0x2a, 0x18, 0x1f, 0x0c, 0xbd, 0x00, 0x0a, 0x71, 0x96, 0x5e, 0xd4, 0x62,
-	0x58, 0x2d, 0x36, 0x74, 0x2d, 0x3e, 0x07, 0x88, 0x68, 0x32, 0x4b, 0x79, 0x1c, 0x05, 0xb9, 0xdd,
-	0xd3, 0x5a, 0xef, 0x66, 0xcf, 0xf6, 0x96, 0x26, 0x23, 0x2d, 0xf3, 0xbb, 0x51, 0x75, 0x74, 0xfe,
-	0x58, 0x60, 0x2f, 0x8b, 0x91, 0x3c, 0x84, 0xad, 0x3a, 0xac, 0xc6, 0x1e, 0xdd, 0xa9, 0xc0, 0xf3,
-	0x62, 0x9f, 0x9a, 0x24, 0x95, 0xa7, 0xa8, 0x57, 0xa8, 0x41, 0x1a, 0xe7, 0x29, 0x92, 0x47, 0xb0,
-	0x73, 0x15, 0x3b, 0x15, 0xc8, 0x94, 0xdd, 0xd1, 0xb4, 0xed, 0x3a, 0x33, 0x8d, 0x92, 0xc7, 0xb0,
-	0xdb, 0xdc, 0x8f, 0xaf, 0x18, 0x28, 0x7b, 0x5d, 0x33, 0x77, 0x1a, 0xe9, 0x16, 0x70, 0xcb, 0x93,
-	0x7f, 0x63, 0x28, 0xa4, 0xbd, 0xd1, 0xef, 0x34, 0x3d, 0x3f, 0x68, 0xd4, 0x39, 0x84, 0x6e, 0x3d,
-	0x3b, 0xd9, 0x87, 0x9e, 0x79, 0xbc, 0xd9, 0x3c, 0xe6, 0xf3, 0x72, 0x22, 0x30, 0xd0, 0x69, 0xcc,
-	0xe7, 0xce, 0x67, 0xb8, 0xbf, 0x64, 0xc1, 0xc8, 0x2e, 0x74, 0x2e, 0x31, 0x2f, 0x35, 0xc5, 0x91,
-	0x1c, 0xc2, 0xc6, 0x82, 0xc6, 0x19, 0x96, 0xbf, 0x9b, 0x7b, 0xd7, 0x52, 0x9c, 0x14, 0x55, 0xdf,
-	0x90, 0x9e, 0xaf, 0x3d, 0xb3, 0x4e, 0x7f, 0x59, 0x70, 0x10, 0xf0, 0x64, 0x45, 0x64, 0x23, 0xeb,
-	0xd3, 0xbb, 0x92, 0x11, 0xf2, 0x98, 0xb2, 0xd0, 0xe5, 0x22, 0xf4, 0x42, 0x64, 0xda, 0xd8, 0x33,
-	0x25, 0x9a, 0x46, 0x72, 0xd9, 0x1f, 0xcb, 0x49, 0x1b, 0xf9, 0xb9, 0xb6, 0xf7, 0xc6, 0xd8, 0x9d,
-	0xe9, 0x86, 0xed, 0xc8, 0xdd, 0xc9, 0xf0, 0x77, 0x45, 0x98, 0x6a, 0xc2, 0xb4, 0x4d, 0x98, 0x4e,
-	0x86, 0xf3, 0x5b, 0xba, 0xf5, 0xf1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x45, 0x2f, 0x7d,
-	0x3c, 0x05, 0x00, 0x00,
+var fileDescriptor_asset_6429e78996bd9cc5 = []byte{
+	// 581 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0xd3, 0x4c,
+	0x14, 0x95, 0x93, 0xe6, 0xeb, 0x97, 0x1b, 0xfa, 0xa3, 0x41, 0x02, 0xcb, 0x42, 0x6d, 0x28, 0x0b,
+	0x02, 0x2a, 0xb6, 0xd2, 0x6e, 0x90, 0x2b, 0x90, 0x68, 0x85, 0x10, 0x12, 0x94, 0xc8, 0x44, 0x59,
+	0xa0, 0xa0, 0x68, 0xec, 0x0e, 0x96, 0xa9, 0x3d, 0x63, 0xcd, 0x8c, 0x83, 0x2c, 0xf1, 0x24, 0x3c,
+	0x02, 0x8f, 0xc2, 0x23, 0xb0, 0x63, 0xcb, 0x53, 0x20, 0xcf, 0xd8, 0xae, 0x4d, 0x15, 0xd2, 0xdd,
+	0xf8, 0xdc, 0x73, 0xce, 0x9d, 0x3b, 0xe7, 0x26, 0xf0, 0x38, 0x64, 0x2c, 0x8c, 0x89, 0x13, 0xc4,
+	0x2c, 0xbb, 0x70, 0x04, 0x09, 0x32, 0x1e, 0xc9, 0x3c, 0x20, 0x54, 0x12, 0xee, 0x2c, 0xc7, 0x0e,
+	0x16, 0x82, 0x48, 0x3b, 0xe5, 0x4c, 0x32, 0xb4, 0xa7, 0xb9, 0xb6, 0xe2, 0xda, 0x6d, 0xae, 0xbd,
+	0x1c, 0x5b, 0xf7, 0x4a, 0x2f, 0x9c, 0x46, 0x0e, 0xa6, 0x94, 0x49, 0x2c, 0x23, 0x46, 0x85, 0x56,
+	0x5b, 0xc7, 0x6b, 0x3a, 0x55, 0xc8, 0x22, 0xc1, 0xfc, 0xb2, 0x12, 0x55, 0x96, 0xea, 0xcb, 0xcf,
+	0x3e, 0x39, 0x42, 0xf2, 0x2c, 0x28, 0x2f, 0x64, 0xed, 0xff, 0x5d, 0x95, 0x51, 0x42, 0x84, 0xc4,
+	0x49, 0xaa, 0x09, 0x07, 0xdf, 0x36, 0xa1, 0xf7, 0xa2, 0x98, 0x00, 0x21, 0xd8, 0xa0, 0x38, 0x21,
+	0xa6, 0x31, 0x34, 0x46, 0x7d, 0x4f, 0x9d, 0xd1, 0x57, 0xb0, 0xea, 0xa6, 0xfa, 0x1e, 0x8b, 0x94,
+	0xb3, 0x94, 0x70, 0x19, 0x11, 0x61, 0x76, 0x86, 0xc6, 0x68, 0x70, 0xf4, 0xdc, 0xfe, 0xf7, 0xd0,
+	0xb6, 0xb2, 0xb7, 0xdf, 0x97, 0xf8, 0x99, 0xc2, 0x27, 0xb5, 0x8b, 0x67, 0x8a, 0x15, 0x15, 0x44,
+	0xe1, 0x36, 0x27, 0x82, 0x65, 0x3c, 0x20, 0xcd, 0xb6, 0x9b, 0xc3, 0xee, 0x68, 0x70, 0xf4, 0xec,
+	0x66, 0x6d, 0xbd, 0xd2, 0xe0, 0xca, 0xf6, 0x25, 0x95, 0x3c, 0xf7, 0x10, 0xbf, 0x56, 0x40, 0x53,
+	0xd8, 0x6e, 0x3f, 0xb1, 0xf9, 0xbf, 0x9a, 0xf0, 0xc9, 0xba, 0x56, 0xd5, 0x6c, 0x6f, 0x0b, 0x91,
+	0xb7, 0x25, 0x9a, 0x9f, 0xe8, 0x04, 0x06, 0x01, 0x27, 0x58, 0x92, 0x45, 0xf1, 0xf6, 0x66, 0x5f,
+	0x59, 0x5a, 0x95, 0x65, 0x15, 0x8c, 0x3d, 0xad, 0x82, 0xf1, 0x40, 0xd3, 0x0b, 0xa0, 0x10, 0x67,
+	0xe9, 0x45, 0x2d, 0x86, 0xf5, 0x62, 0x4d, 0x57, 0xe2, 0x73, 0x80, 0x08, 0x27, 0x8b, 0x94, 0xc5,
+	0x51, 0x90, 0x9b, 0x03, 0xa5, 0x75, 0x6e, 0xf6, 0x6c, 0xaf, 0x71, 0x32, 0x51, 0x32, 0xaf, 0x1f,
+	0x55, 0x47, 0xeb, 0x97, 0x01, 0xe6, 0xaa, 0x18, 0xd1, 0x03, 0xd8, 0xaa, 0xc3, 0x6a, 0xec, 0xd1,
+	0xad, 0x0a, 0x3c, 0x2f, 0xf6, 0xa9, 0x49, 0x92, 0x79, 0x4a, 0xd4, 0x0a, 0x35, 0x48, 0xd3, 0x3c,
+	0x25, 0xe8, 0x21, 0xec, 0x5c, 0xc5, 0x8e, 0x39, 0xa1, 0xd2, 0xec, 0x2a, 0xda, 0x76, 0x9d, 0x99,
+	0x42, 0xd1, 0x23, 0xd8, 0x6d, 0xee, 0xc7, 0x67, 0x12, 0x48, 0x73, 0x43, 0x31, 0x77, 0x1a, 0xe9,
+	0x16, 0x70, 0xcb, 0x93, 0x7d, 0xa1, 0x84, 0x0b, 0xb3, 0x37, 0xec, 0x36, 0x3d, 0xdf, 0x29, 0xd4,
+	0x3a, 0x84, 0x7e, 0x3d, 0x3b, 0xda, 0x87, 0x81, 0x7e, 0xbc, 0x85, 0x1f, 0x33, 0xbf, 0x9c, 0x08,
+	0x34, 0x74, 0x1a, 0x33, 0xdf, 0xfa, 0x08, 0x77, 0x57, 0x2c, 0x18, 0xda, 0x85, 0xee, 0x25, 0xc9,
+	0x4b, 0x4d, 0x71, 0x44, 0x87, 0xd0, 0x5b, 0xe2, 0x38, 0x23, 0xe5, 0xef, 0xe6, 0xce, 0xb5, 0x14,
+	0x67, 0x45, 0xd5, 0xd3, 0x24, 0xb7, 0xf3, 0xd4, 0x38, 0xfd, 0x69, 0xc0, 0x41, 0xc0, 0x92, 0x35,
+	0x91, 0x4d, 0x8c, 0x0f, 0x6f, 0x4a, 0x46, 0xc8, 0x62, 0x4c, 0x43, 0x9b, 0xf1, 0xd0, 0x09, 0x09,
+	0x55, 0xc6, 0x8e, 0x2e, 0xe1, 0x34, 0x12, 0xab, 0xfe, 0x58, 0x4e, 0xda, 0xc8, 0xf7, 0xce, 0xde,
+	0x2b, 0x6d, 0x77, 0xa6, 0x1a, 0xb6, 0x23, 0xb7, 0x67, 0xe3, 0x1f, 0x15, 0x61, 0xae, 0x08, 0xf3,
+	0x36, 0x61, 0x3e, 0x1b, 0xff, 0xee, 0xdc, 0xd7, 0x04, 0xd7, 0x55, 0x0c, 0xd7, 0x6d, 0x53, 0x5c,
+	0x77, 0x36, 0xf6, 0xff, 0x53, 0xd7, 0x3b, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x31, 0xef, 0x3d,
+	0x00, 0x60, 0x05, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/securitycenter/v1/finding.pb.go b/googleapis/cloud/securitycenter/v1/finding.pb.go
index fd05069974d89ffa7e120066a6ed99d5ac0f6f84..a0c7c2c85ae0ae3c586665ff4decdc4785d58680 100644
--- a/googleapis/cloud/securitycenter/v1/finding.pb.go
+++ b/googleapis/cloud/securitycenter/v1/finding.pb.go
@@ -49,7 +49,7 @@ func (x Finding_State) String() string {
 	return proto.EnumName(Finding_State_name, int32(x))
 }
 func (Finding_State) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_finding_4ab2eb5034cd1ddd, []int{0, 0}
+	return fileDescriptor_finding_d1c4af5da1a4f432, []int{0, 0}
 }
 
 // Cloud Security Command Center (Cloud SCC) finding.
@@ -109,7 +109,7 @@ func (m *Finding) Reset()         { *m = Finding{} }
 func (m *Finding) String() string { return proto.CompactTextString(m) }
 func (*Finding) ProtoMessage()    {}
 func (*Finding) Descriptor() ([]byte, []int) {
-	return fileDescriptor_finding_4ab2eb5034cd1ddd, []int{0}
+	return fileDescriptor_finding_d1c4af5da1a4f432, []int{0}
 }
 func (m *Finding) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Finding.Unmarshal(m, b)
@@ -206,43 +206,44 @@ func init() {
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/securitycenter/v1/finding.proto", fileDescriptor_finding_4ab2eb5034cd1ddd)
-}
-
-var fileDescriptor_finding_4ab2eb5034cd1ddd = []byte{
-	// 537 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6f, 0xda, 0x40,
-	0x10, 0xad, 0x21, 0x10, 0x18, 0x48, 0x44, 0x56, 0x4a, 0x64, 0xa1, 0x2a, 0xa5, 0xf4, 0xc2, 0x21,
-	0xb5, 0x05, 0xb9, 0xa4, 0x8d, 0x7a, 0x48, 0x29, 0xa9, 0x90, 0x5a, 0x84, 0x0c, 0xe1, 0xd0, 0x22,
-	0xa1, 0x8d, 0x33, 0xb1, 0xdc, 0xe0, 0x5d, 0x6b, 0xbd, 0x46, 0xe5, 0x2f, 0xf5, 0xd2, 0x5b, 0x7f,
-	0x44, 0x7f, 0x55, 0xe5, 0x5d, 0x6f, 0x54, 0xd2, 0x0f, 0x72, 0xf3, 0xbc, 0x79, 0x6f, 0xde, 0xec,
-	0xbe, 0x35, 0x9c, 0x04, 0x9c, 0x07, 0x4b, 0x74, 0xfd, 0x25, 0x4f, 0x6f, 0xdc, 0x04, 0xfd, 0x54,
-	0x84, 0x72, 0xed, 0x23, 0x93, 0x28, 0xdc, 0x55, 0xd7, 0xbd, 0x0d, 0xd9, 0x4d, 0xc8, 0x02, 0x27,
-	0x16, 0x5c, 0x72, 0x72, 0xac, 0xd9, 0x8e, 0x62, 0x3b, 0x9b, 0x6c, 0x67, 0xd5, 0x6d, 0x3e, 0xcd,
-	0xa7, 0xd1, 0x38, 0x74, 0x29, 0x63, 0x5c, 0x52, 0x19, 0x72, 0x96, 0x68, 0x75, 0xf3, 0x74, 0x8b,
-	0x97, 0x41, 0x16, 0x11, 0x15, 0x77, 0x46, 0x64, 0x46, 0xaa, 0xea, 0x3a, 0xbd, 0x75, 0x13, 0x29,
-	0x52, 0x5f, 0xe6, 0xdd, 0x67, 0x0f, 0xbb, 0x32, 0x8c, 0x30, 0x91, 0x34, 0x8a, 0x35, 0xa1, 0xfd,
-	0xbd, 0x04, 0xbb, 0x97, 0xfa, 0x0c, 0x84, 0xc0, 0x0e, 0xa3, 0x11, 0xda, 0x56, 0xcb, 0xea, 0x54,
-	0x3d, 0xf5, 0x4d, 0x8e, 0xa0, 0x1c, 0x53, 0x81, 0x4c, 0xda, 0x05, 0x85, 0xe6, 0x15, 0x79, 0x01,
-	0x7b, 0x02, 0x13, 0x9e, 0x0a, 0x1f, 0x17, 0x4a, 0x54, 0x54, 0xed, 0xba, 0x01, 0x47, 0x99, 0xb8,
-	0x0f, 0xa5, 0x44, 0x52, 0x89, 0xf6, 0x4e, 0xcb, 0xea, 0xec, 0xf7, 0x5e, 0x3a, 0xff, 0xbf, 0x1e,
-	0x27, 0x5f, 0xc4, 0x99, 0x64, 0x22, 0x4f, 0x6b, 0x49, 0x13, 0x2a, 0x3e, 0x95, 0x18, 0x70, 0xb1,
-	0xb6, 0x4b, 0xca, 0xe4, 0xbe, 0x26, 0xcf, 0xa1, 0x8e, 0x5f, 0x25, 0x0a, 0x46, 0x97, 0x8b, 0x54,
-	0x84, 0x76, 0x59, 0xf5, 0x6b, 0x06, 0xbb, 0x12, 0x21, 0xf9, 0x02, 0x07, 0xf9, 0x9a, 0xb1, 0xe0,
-	0x31, 0x0a, 0x19, 0x62, 0x62, 0xef, 0xb6, 0x8a, 0x9d, 0x5a, 0xef, 0xcd, 0xa3, 0xf7, 0x51, 0x03,
-	0xc6, 0xf7, 0xfa, 0x01, 0x93, 0x62, 0xed, 0x35, 0x92, 0x07, 0x30, 0x99, 0xc2, 0xfe, 0x66, 0x46,
-	0x76, 0xa5, 0x65, 0x75, 0x6a, 0xdb, 0x0f, 0x3e, 0xc9, 0x91, 0x8f, 0x99, 0xc8, 0xdb, 0x4b, 0x7e,
-	0x2f, 0xc9, 0x2b, 0x00, 0x5c, 0x21, 0x93, 0x8b, 0x2c, 0x3b, 0xbb, 0xaa, 0x26, 0x36, 0xcd, 0x44,
-	0x13, 0xac, 0x33, 0x35, 0xc1, 0x7a, 0x55, 0xc5, 0xce, 0x6a, 0x72, 0x0e, 0x35, 0x5f, 0x20, 0x95,
-	0xa8, 0xb5, 0xb0, 0x55, 0x0b, 0x9a, 0x9e, 0x01, 0xcd, 0xcf, 0x70, 0xf8, 0xd7, 0x83, 0x93, 0x06,
-	0x14, 0xef, 0x70, 0x9d, 0x3f, 0x93, 0xec, 0x93, 0x9c, 0x40, 0x69, 0x45, 0x97, 0x29, 0xaa, 0x47,
-	0x52, 0xeb, 0x1d, 0xfd, 0xe1, 0x30, 0xcb, 0xba, 0x9e, 0x26, 0xbd, 0x2e, 0x9c, 0x59, 0xed, 0x33,
-	0x28, 0xa9, 0x94, 0xc9, 0x21, 0x1c, 0x4c, 0xa6, 0x17, 0xd3, 0xc1, 0xe2, 0x6a, 0x34, 0x19, 0x0f,
-	0xfa, 0xc3, 0xcb, 0xe1, 0xe0, 0x5d, 0xe3, 0x09, 0x01, 0x28, 0x5f, 0xf4, 0xa7, 0xc3, 0xd9, 0xa0,
-	0x61, 0x91, 0x3a, 0x54, 0x86, 0xa3, 0xbc, 0x2a, 0xbc, 0xfd, 0x61, 0x41, 0xdb, 0xe7, 0xd1, 0x96,
-	0x2b, 0x1d, 0x5b, 0x9f, 0x3e, 0xe4, 0x8c, 0x80, 0x2f, 0x29, 0x0b, 0x1c, 0x2e, 0x02, 0x37, 0x40,
-	0xa6, 0x56, 0x72, 0x75, 0x8b, 0xc6, 0x61, 0xf2, 0xaf, 0xbf, 0xed, 0x7c, 0x13, 0xf9, 0x56, 0x38,
-	0x7e, 0xaf, 0xc7, 0xf5, 0x95, 0xa1, 0x49, 0xac, 0xaf, 0x0d, 0x67, 0xdd, 0x9f, 0x86, 0x30, 0x57,
-	0x84, 0xf9, 0x26, 0x61, 0x3e, 0xeb, 0x5e, 0x97, 0x95, 0xf5, 0xe9, 0xaf, 0x00, 0x00, 0x00, 0xff,
-	0xff, 0xa8, 0x59, 0x16, 0x98, 0x53, 0x04, 0x00, 0x00,
+	proto.RegisterFile("google/cloud/securitycenter/v1/finding.proto", fileDescriptor_finding_d1c4af5da1a4f432)
+}
+
+var fileDescriptor_finding_d1c4af5da1a4f432 = []byte{
+	// 555 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcf, 0x6e, 0xda, 0x40,
+	0x10, 0xc6, 0x6b, 0x08, 0x04, 0x06, 0x12, 0x91, 0x95, 0x12, 0x59, 0xa8, 0x4a, 0x09, 0xbd, 0x70,
+	0x48, 0x6d, 0x41, 0x2e, 0xa9, 0xa3, 0x1e, 0x52, 0x4a, 0x2a, 0xa4, 0x16, 0x21, 0x43, 0x38, 0xb4,
+	0x48, 0x68, 0xe3, 0x4c, 0x2c, 0x37, 0xb0, 0x6b, 0xad, 0xd7, 0xa8, 0xbc, 0x52, 0x2f, 0x7d, 0x8f,
+	0x3e, 0x42, 0x1f, 0xa1, 0x4f, 0x51, 0x79, 0xd7, 0x8e, 0xea, 0xf4, 0x0f, 0xbd, 0x79, 0xbe, 0xf9,
+	0x7d, 0x33, 0xb3, 0x3b, 0x6b, 0x38, 0xf5, 0x39, 0xf7, 0x97, 0x68, 0x7b, 0x4b, 0x1e, 0xdf, 0xda,
+	0x11, 0x7a, 0xb1, 0x08, 0xe4, 0xc6, 0x43, 0x26, 0x51, 0xd8, 0xeb, 0xae, 0x7d, 0x17, 0xb0, 0xdb,
+	0x80, 0xf9, 0x56, 0x28, 0xb8, 0xe4, 0xe4, 0x58, 0xd3, 0x96, 0xa2, 0xad, 0x3c, 0x6d, 0xad, 0xbb,
+	0xcd, 0xa7, 0x69, 0x35, 0x1a, 0x06, 0x36, 0x65, 0x8c, 0x4b, 0x2a, 0x03, 0xce, 0x22, 0xed, 0x6e,
+	0x9e, 0x6d, 0xe9, 0x95, 0x29, 0x8b, 0x15, 0x15, 0xf7, 0x99, 0x29, 0x2b, 0xa9, 0xa2, 0x9b, 0xf8,
+	0xce, 0x8e, 0xa4, 0x88, 0x3d, 0x99, 0x66, 0x9f, 0x3d, 0xce, 0xca, 0x60, 0x85, 0x91, 0xa4, 0xab,
+	0x50, 0x03, 0xed, 0xaf, 0x25, 0xd8, 0xbd, 0xd2, 0x67, 0x20, 0x04, 0x76, 0x18, 0x5d, 0xa1, 0x69,
+	0xb4, 0x8c, 0x4e, 0xd5, 0x55, 0xdf, 0xe4, 0x08, 0xca, 0x21, 0x15, 0xc8, 0xa4, 0x59, 0x50, 0x6a,
+	0x1a, 0x91, 0xe7, 0xb0, 0x27, 0x30, 0xe2, 0xb1, 0xf0, 0x70, 0xa1, 0x4c, 0x45, 0x95, 0xae, 0x67,
+	0xe2, 0x28, 0x31, 0xf7, 0xa1, 0x14, 0x49, 0x2a, 0xd1, 0xdc, 0x69, 0x19, 0x9d, 0xfd, 0xde, 0x0b,
+	0xeb, 0xdf, 0xd7, 0x63, 0xa5, 0x83, 0x58, 0x93, 0xc4, 0xe4, 0x6a, 0x2f, 0x69, 0x42, 0xc5, 0xa3,
+	0x12, 0x7d, 0x2e, 0x36, 0x66, 0x49, 0x35, 0x79, 0x88, 0xc9, 0x09, 0xd4, 0xf1, 0xb3, 0x44, 0xc1,
+	0xe8, 0x72, 0x11, 0x8b, 0xc0, 0x2c, 0xab, 0x7c, 0x2d, 0xd3, 0xae, 0x45, 0x40, 0x3e, 0xc1, 0x41,
+	0x3a, 0x66, 0x28, 0x78, 0x88, 0x42, 0x06, 0x18, 0x99, 0xbb, 0xad, 0x62, 0xa7, 0xd6, 0x7b, 0xf5,
+	0xdf, 0xf3, 0xa8, 0x02, 0xe3, 0x07, 0xff, 0x80, 0x49, 0xb1, 0x71, 0x1b, 0xd1, 0x23, 0x99, 0x4c,
+	0x61, 0x3f, 0xbf, 0x23, 0xb3, 0xd2, 0x32, 0x3a, 0xb5, 0xed, 0x07, 0x9f, 0xa4, 0xca, 0xfb, 0xc4,
+	0xe4, 0xee, 0x45, 0xbf, 0x86, 0xe4, 0x25, 0x00, 0xae, 0x91, 0xc9, 0x45, 0xb2, 0x3b, 0xb3, 0xaa,
+	0x2a, 0x36, 0xb3, 0x8a, 0xd9, 0x62, 0xad, 0x69, 0xb6, 0x58, 0xb7, 0xaa, 0xe8, 0x24, 0x26, 0x17,
+	0x50, 0xf3, 0x04, 0x52, 0x89, 0xda, 0x0b, 0x5b, 0xbd, 0xa0, 0xf1, 0x44, 0x68, 0x7e, 0x84, 0xc3,
+	0x3f, 0x1e, 0x9c, 0x34, 0xa0, 0x78, 0x8f, 0x9b, 0xf4, 0x99, 0x24, 0x9f, 0xe4, 0x14, 0x4a, 0x6b,
+	0xba, 0x8c, 0x51, 0x3d, 0x92, 0x5a, 0xef, 0xe8, 0xb7, 0x0e, 0xb3, 0x24, 0xeb, 0x6a, 0xc8, 0x29,
+	0x9c, 0x1b, 0xed, 0x73, 0x28, 0xa9, 0x2d, 0x93, 0x43, 0x38, 0x98, 0x4c, 0x2f, 0xa7, 0x83, 0xc5,
+	0xf5, 0x68, 0x32, 0x1e, 0xf4, 0x87, 0x57, 0xc3, 0xc1, 0x9b, 0xc6, 0x13, 0x02, 0x50, 0xbe, 0xec,
+	0x4f, 0x87, 0xb3, 0x41, 0xc3, 0x20, 0x75, 0xa8, 0x0c, 0x47, 0x69, 0x54, 0x78, 0xfd, 0xdd, 0x80,
+	0xb6, 0xc7, 0x57, 0x5b, 0xae, 0x74, 0x6c, 0x7c, 0x78, 0x97, 0x12, 0x3e, 0x5f, 0x52, 0xe6, 0x5b,
+	0x5c, 0xf8, 0xb6, 0x8f, 0x4c, 0x8d, 0x64, 0xeb, 0x14, 0x0d, 0x83, 0xe8, 0x6f, 0x7f, 0xdb, 0x45,
+	0x5e, 0xf9, 0x52, 0x38, 0x7e, 0xab, 0xcb, 0xf5, 0x55, 0xc3, 0x6c, 0x63, 0x7d, 0xdd, 0x70, 0xd6,
+	0xfd, 0x96, 0x01, 0x73, 0x05, 0xcc, 0xf3, 0xc0, 0x7c, 0xd6, 0xfd, 0x51, 0x38, 0xd1, 0x80, 0xe3,
+	0x28, 0xc2, 0x71, 0xf2, 0x88, 0xe3, 0xcc, 0xba, 0x37, 0x65, 0x35, 0xde, 0xd9, 0xcf, 0x00, 0x00,
+	0x00, 0xff, 0xff, 0x39, 0x58, 0x82, 0xa6, 0x77, 0x04, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/securitycenter/v1/organization_settings.pb.go b/googleapis/cloud/securitycenter/v1/organization_settings.pb.go
index 7eed49daf8e1268afd99f0802c60f8acc0f250f6..2e9788715e94fba96fffb6d9bf13927e1609c090 100644
--- a/googleapis/cloud/securitycenter/v1/organization_settings.pb.go
+++ b/googleapis/cloud/securitycenter/v1/organization_settings.pb.go
@@ -56,7 +56,7 @@ func (x OrganizationSettings_AssetDiscoveryConfig_InclusionMode) String() string
 	return proto.EnumName(OrganizationSettings_AssetDiscoveryConfig_InclusionMode_name, int32(x))
 }
 func (OrganizationSettings_AssetDiscoveryConfig_InclusionMode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_organization_settings_b59e0a7b2dd79a5c, []int{0, 0, 0}
+	return fileDescriptor_organization_settings_e500bf2ff9b3c18d, []int{0, 0, 0}
 }
 
 // User specified settings that are attached to the Cloud Security Command
@@ -83,7 +83,7 @@ func (m *OrganizationSettings) Reset()         { *m = OrganizationSettings{} }
 func (m *OrganizationSettings) String() string { return proto.CompactTextString(m) }
 func (*OrganizationSettings) ProtoMessage()    {}
 func (*OrganizationSettings) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_settings_b59e0a7b2dd79a5c, []int{0}
+	return fileDescriptor_organization_settings_e500bf2ff9b3c18d, []int{0}
 }
 func (m *OrganizationSettings) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_OrganizationSettings.Unmarshal(m, b)
@@ -141,7 +141,7 @@ func (m *OrganizationSettings_AssetDiscoveryConfig) Reset() {
 func (m *OrganizationSettings_AssetDiscoveryConfig) String() string { return proto.CompactTextString(m) }
 func (*OrganizationSettings_AssetDiscoveryConfig) ProtoMessage()    {}
 func (*OrganizationSettings_AssetDiscoveryConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_settings_b59e0a7b2dd79a5c, []int{0, 0}
+	return fileDescriptor_organization_settings_e500bf2ff9b3c18d, []int{0, 0}
 }
 func (m *OrganizationSettings_AssetDiscoveryConfig) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_OrganizationSettings_AssetDiscoveryConfig.Unmarshal(m, b)
@@ -182,37 +182,38 @@ func init() {
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/securitycenter/v1/organization_settings.proto", fileDescriptor_organization_settings_b59e0a7b2dd79a5c)
-}
-
-var fileDescriptor_organization_settings_b59e0a7b2dd79a5c = []byte{
-	// 434 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x52, 0xcf, 0x6e, 0xd3, 0x30,
-	0x18, 0x27, 0x6d, 0x37, 0x3a, 0x97, 0x4d, 0x91, 0x55, 0x4d, 0x55, 0x85, 0x4a, 0xd5, 0x53, 0x4f,
-	0x8e, 0x3a, 0x38, 0xc1, 0x09, 0xd2, 0x80, 0x32, 0x75, 0xe9, 0x94, 0x6a, 0xe3, 0x8f, 0x2a, 0x45,
-	0x9e, 0x63, 0x2c, 0xa3, 0xd4, 0x5f, 0x14, 0xbb, 0x95, 0xc6, 0x01, 0x8e, 0xbc, 0x0b, 0x0f, 0xc0,
-	0x43, 0xf0, 0x42, 0x5c, 0xd1, 0x9c, 0x54, 0x6a, 0x50, 0x81, 0xcb, 0x6e, 0xc9, 0xef, 0xef, 0xf7,
-	0x59, 0x1f, 0x7a, 0x2e, 0x00, 0x44, 0xc6, 0x3d, 0x96, 0xc1, 0x3a, 0xf5, 0x34, 0x67, 0xeb, 0x42,
-	0x9a, 0x5b, 0xc6, 0x95, 0xe1, 0x85, 0xb7, 0x99, 0x78, 0x50, 0x08, 0xaa, 0xe4, 0x67, 0x6a, 0x24,
-	0xa8, 0x44, 0x73, 0x63, 0xa4, 0x12, 0x9a, 0xe4, 0x05, 0x18, 0xc0, 0x83, 0xd2, 0x4b, 0xac, 0x97,
-	0xd4, 0xbd, 0x64, 0x33, 0xe9, 0x3f, 0xae, 0xb2, 0x69, 0x2e, 0x3d, 0xaa, 0x14, 0x18, 0x9b, 0x52,
-	0xb9, 0x47, 0xbf, 0x9a, 0xa8, 0x3b, 0xdf, 0x49, 0x5f, 0x54, 0xe1, 0x18, 0xa3, 0x96, 0xa2, 0x2b,
-	0xde, 0x73, 0x86, 0xce, 0xf8, 0x28, 0xb6, 0xdf, 0xf8, 0x19, 0x3a, 0xe5, 0x8a, 0xde, 0x64, 0x3c,
-	0xa1, 0x5a, 0x73, 0x93, 0xa4, 0x52, 0x33, 0xd8, 0xf0, 0xe2, 0xb6, 0xd7, 0x18, 0x3a, 0xe3, 0x76,
-	0xdc, 0x2d, 0xd9, 0x97, 0x77, 0xe4, 0x74, 0xcb, 0xe1, 0xaf, 0xe8, 0xf4, 0x0f, 0x79, 0xc2, 0x40,
-	0x7d, 0x94, 0xa2, 0xd7, 0x1c, 0x3a, 0xe3, 0xce, 0x59, 0x48, 0xfe, 0xbd, 0x01, 0xd9, 0x37, 0x1f,
-	0xa9, 0x97, 0xf8, 0x36, 0x30, 0xee, 0xd2, 0x3d, 0x68, 0xff, 0x5b, 0x03, 0x75, 0xf7, 0xc9, 0xf1,
-	0x13, 0xd4, 0xc9, 0x0b, 0xf8, 0xc4, 0x99, 0x49, 0x64, 0xaa, 0x7b, 0xce, 0xb0, 0x39, 0x3e, 0x8a,
-	0x51, 0x05, 0x85, 0xa9, 0xc6, 0x5f, 0xd0, 0x89, 0x54, 0x2c, 0x5b, 0xeb, 0xbb, 0x77, 0x5f, 0x41,
-	0xca, 0xed, 0xa2, 0x27, 0x67, 0x6f, 0xef, 0x6d, 0x64, 0x12, 0x6e, 0xf3, 0x2f, 0x20, 0xe5, 0xf1,
-	0xb1, 0xdc, 0xfd, 0x1d, 0x45, 0xe8, 0xb8, 0xc6, 0xe3, 0x01, 0xea, 0x87, 0x91, 0x3f, 0xbb, 0x5a,
-	0x84, 0xf3, 0x28, 0xb9, 0x98, 0x4f, 0x83, 0xe4, 0x2a, 0x5a, 0x5c, 0x06, 0x7e, 0xf8, 0x3a, 0x0c,
-	0xa6, 0xee, 0x03, 0xec, 0xa2, 0x47, 0x96, 0x9f, 0x06, 0xc9, 0x3c, 0x9a, 0xbd, 0x77, 0x1d, 0xdc,
-	0x41, 0x0f, 0x83, 0x77, 0x16, 0x71, 0x1b, 0xe7, 0xad, 0x76, 0xcb, 0x3d, 0x38, 0x6f, 0xb5, 0x0f,
-	0xdc, 0xc3, 0x57, 0x3f, 0x1c, 0x34, 0x62, 0xb0, 0xfa, 0xcf, 0x26, 0x97, 0xce, 0x87, 0x59, 0xa5,
-	0x10, 0x90, 0x51, 0x25, 0x08, 0x14, 0xc2, 0x13, 0x5c, 0xd9, 0xf3, 0xf1, 0x4a, 0x8a, 0xe6, 0x52,
-	0xff, 0xed, 0x76, 0x5f, 0xd4, 0x91, 0xef, 0x8d, 0xc1, 0x9b, 0x32, 0xce, 0xb7, 0x85, 0x8b, 0x8a,
-	0xf5, 0xcb, 0xc2, 0xeb, 0xc9, 0xcf, 0xad, 0x60, 0x69, 0x05, 0xcb, 0xba, 0x60, 0x79, 0x3d, 0xb9,
-	0x39, 0xb4, 0xd5, 0x4f, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x01, 0xcb, 0xb6, 0x35, 0x03,
-	0x00, 0x00,
+	proto.RegisterFile("google/cloud/securitycenter/v1/organization_settings.proto", fileDescriptor_organization_settings_e500bf2ff9b3c18d)
+}
+
+var fileDescriptor_organization_settings_e500bf2ff9b3c18d = []byte{
+	// 454 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x92, 0xdf, 0x6e, 0xd3, 0x30,
+	0x14, 0xc6, 0x49, 0xda, 0x8d, 0xce, 0x65, 0x53, 0x64, 0x55, 0x53, 0x55, 0xa1, 0x52, 0x7a, 0xd5,
+	0x2b, 0x47, 0x19, 0x5c, 0x85, 0x2b, 0x48, 0x03, 0xca, 0xd4, 0xa5, 0x53, 0xaa, 0x95, 0x3f, 0xaa,
+	0x14, 0x79, 0x8e, 0xb1, 0x8c, 0x52, 0x3b, 0x8a, 0xdd, 0x4a, 0xe3, 0x02, 0x2e, 0x79, 0x17, 0x1e,
+	0x85, 0x47, 0xe0, 0x11, 0x78, 0x01, 0x6e, 0xd1, 0x9c, 0x54, 0x5a, 0x50, 0x81, 0x1b, 0xee, 0x92,
+	0xf3, 0xfd, 0xbe, 0xef, 0x9c, 0x63, 0x1d, 0xe0, 0x33, 0x29, 0x59, 0x4e, 0x5d, 0x92, 0xcb, 0x4d,
+	0xe6, 0x2a, 0x4a, 0x36, 0x25, 0xd7, 0x37, 0x84, 0x0a, 0x4d, 0x4b, 0x77, 0xeb, 0xb9, 0xb2, 0x64,
+	0x58, 0xf0, 0x8f, 0x58, 0x73, 0x29, 0x52, 0x45, 0xb5, 0xe6, 0x82, 0x29, 0x54, 0x94, 0x52, 0x4b,
+	0x38, 0xac, 0xbc, 0xc8, 0x78, 0x51, 0xd3, 0x8b, 0xb6, 0xde, 0xe0, 0x61, 0x9d, 0x8d, 0x0b, 0xee,
+	0x62, 0x21, 0xa4, 0x36, 0x29, 0xb5, 0x7b, 0xfc, 0xb3, 0x05, 0x7a, 0xf3, 0x3b, 0xe9, 0x8b, 0x3a,
+	0x1c, 0x42, 0xd0, 0x16, 0x78, 0x4d, 0xfb, 0xd6, 0xc8, 0x9a, 0x1c, 0x25, 0xe6, 0x1b, 0x3e, 0x05,
+	0xa7, 0x54, 0xe0, 0xeb, 0x9c, 0xa6, 0x58, 0x29, 0xaa, 0xd3, 0x8c, 0x2b, 0x22, 0xb7, 0xb4, 0xbc,
+	0xe9, 0xdb, 0x23, 0x6b, 0xd2, 0x49, 0x7a, 0x95, 0xfa, 0xfc, 0x56, 0x9c, 0xee, 0x34, 0xf8, 0x19,
+	0x9c, 0xfe, 0x86, 0xa7, 0x44, 0x8a, 0xf7, 0x9c, 0xf5, 0x5b, 0x23, 0x6b, 0xd2, 0x3d, 0x8b, 0xd0,
+	0xdf, 0x37, 0x40, 0xfb, 0xe6, 0x43, 0xcd, 0x26, 0x81, 0x09, 0x4c, 0x7a, 0x78, 0x4f, 0x75, 0xf0,
+	0xc5, 0x06, 0xbd, 0x7d, 0x38, 0x7c, 0x04, 0xba, 0x45, 0x29, 0x3f, 0x50, 0xa2, 0x53, 0x9e, 0xa9,
+	0xbe, 0x35, 0x6a, 0x4d, 0x8e, 0x12, 0x50, 0x97, 0xa2, 0x4c, 0xc1, 0x4f, 0xe0, 0x84, 0x0b, 0x92,
+	0x6f, 0xd4, 0xed, 0xbb, 0xaf, 0x65, 0x46, 0xcd, 0xa2, 0x27, 0x67, 0xaf, 0xff, 0xdb, 0xc8, 0x28,
+	0xda, 0xe5, 0x5f, 0xc8, 0x8c, 0x26, 0xc7, 0xfc, 0xee, 0xef, 0x38, 0x06, 0xc7, 0x0d, 0x1d, 0x0e,
+	0xc1, 0x20, 0x8a, 0x83, 0xd9, 0xd5, 0x22, 0x9a, 0xc7, 0xe9, 0xc5, 0x7c, 0x1a, 0xa6, 0x57, 0xf1,
+	0xe2, 0x32, 0x0c, 0xa2, 0x97, 0x51, 0x38, 0x75, 0xee, 0x41, 0x07, 0x3c, 0x30, 0xfa, 0x34, 0x4c,
+	0xe7, 0xf1, 0xec, 0xad, 0x63, 0xc1, 0x2e, 0xb8, 0x1f, 0xbe, 0x31, 0x15, 0xc7, 0x3e, 0x6f, 0x77,
+	0xda, 0xce, 0xc1, 0x79, 0xbb, 0x73, 0xe0, 0x1c, 0xbe, 0xf8, 0x6e, 0x81, 0x31, 0x91, 0xeb, 0x7f,
+	0x6c, 0x72, 0x69, 0xbd, 0x9b, 0xd5, 0x04, 0x93, 0x39, 0x16, 0x0c, 0xc9, 0x92, 0xb9, 0x8c, 0x0a,
+	0x73, 0x3e, 0x6e, 0x25, 0xe1, 0x82, 0xab, 0x3f, 0xdd, 0xee, 0xb3, 0x66, 0xe5, 0xab, 0x3d, 0x7c,
+	0x55, 0xc5, 0x05, 0xa6, 0xe1, 0xa2, 0x56, 0x83, 0xaa, 0xe1, 0xd2, 0xfb, 0xb6, 0x03, 0x56, 0x06,
+	0x58, 0x35, 0x81, 0xd5, 0xd2, 0xfb, 0x61, 0x3f, 0xae, 0x00, 0xdf, 0x37, 0x84, 0xef, 0x37, 0x11,
+	0xdf, 0x5f, 0x7a, 0xd7, 0x87, 0x66, 0xbc, 0x27, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x57,
+	0x11, 0xc7, 0x59, 0x03, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/securitycenter/v1/security_marks.pb.go b/googleapis/cloud/securitycenter/v1/security_marks.pb.go
index 36dbda784370e58a1869c0557707cb2845d29fc0..5098ea0090dec3ebf3ef969d925bf87ecf40bf8f 100644
--- a/googleapis/cloud/securitycenter/v1/security_marks.pb.go
+++ b/googleapis/cloud/securitycenter/v1/security_marks.pb.go
@@ -47,7 +47,7 @@ func (m *SecurityMarks) Reset()         { *m = SecurityMarks{} }
 func (m *SecurityMarks) String() string { return proto.CompactTextString(m) }
 func (*SecurityMarks) ProtoMessage()    {}
 func (*SecurityMarks) Descriptor() ([]byte, []int) {
-	return fileDescriptor_security_marks_361910062f4ea814, []int{0}
+	return fileDescriptor_security_marks_837e7f79b9854771, []int{0}
 }
 func (m *SecurityMarks) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SecurityMarks.Unmarshal(m, b)
@@ -87,11 +87,11 @@ func init() {
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/securitycenter/v1/security_marks.proto", fileDescriptor_security_marks_361910062f4ea814)
+	proto.RegisterFile("google/cloud/securitycenter/v1/security_marks.proto", fileDescriptor_security_marks_837e7f79b9854771)
 }
 
-var fileDescriptor_security_marks_361910062f4ea814 = []byte{
-	// 278 bytes of a gzipped FileDescriptorProto
+var fileDescriptor_security_marks_837e7f79b9854771 = []byte{
+	// 295 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f,
 	0xcf, 0x49, 0xd5, 0x4f, 0xce, 0xc9, 0x2f, 0x4d, 0xd1, 0x2f, 0x4e, 0x4d, 0x2e, 0x2d, 0xca, 0x2c,
 	0xa9, 0x4c, 0x4e, 0xcd, 0x2b, 0x49, 0x2d, 0xd2, 0x2f, 0x33, 0x84, 0x8b, 0xc4, 0xe7, 0x26, 0x16,
@@ -103,11 +103,12 @@ var fileDescriptor_security_marks_361910062f4ea814 = []byte{
 	0x83, 0xdb, 0xc8, 0x42, 0x0f, 0xbf, 0x9d, 0x7a, 0x28, 0x26, 0xea, 0x81, 0x49, 0xd7, 0xbc, 0x92,
 	0xa2, 0xca, 0x20, 0x88, 0x31, 0x52, 0x16, 0x5c, 0x5c, 0x08, 0x41, 0x21, 0x01, 0x2e, 0xe6, 0xec,
 	0xd4, 0x4a, 0xa8, 0x85, 0x20, 0xa6, 0x90, 0x08, 0x17, 0x6b, 0x59, 0x62, 0x4e, 0x69, 0xaa, 0x04,
-	0x13, 0x58, 0x0c, 0xc2, 0xb1, 0x62, 0xb2, 0x60, 0x74, 0xda, 0xc6, 0xc8, 0xa5, 0x94, 0x9c, 0x9f,
+	0x13, 0x58, 0x0c, 0xc2, 0xb1, 0x62, 0xb2, 0x60, 0x74, 0xba, 0xc5, 0xc8, 0xa5, 0x94, 0x9c, 0x9f,
 	0x4b, 0xc0, 0x01, 0x01, 0x8c, 0x51, 0x3e, 0x50, 0x15, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a,
 	0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x4f, 0xeb, 0x43, 0xa4, 0x12, 0x0b, 0x32, 0x8b,
 	0x71, 0x05, 0xb5, 0x35, 0xaa, 0xc8, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x71, 0xce, 0x60, 0x0b, 0x61,
 	0xfe, 0x73, 0x86, 0x58, 0x18, 0x66, 0x78, 0x0a, 0xa6, 0x20, 0x06, 0xac, 0x20, 0x06, 0x55, 0x41,
-	0x4c, 0x98, 0x61, 0x12, 0x1b, 0xd8, 0x6a, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x04,
-	0x8b, 0x20, 0xe4, 0x01, 0x00, 0x00,
+	0x4c, 0x98, 0xe1, 0x2b, 0x26, 0x45, 0x88, 0x02, 0x2b, 0x2b, 0xb0, 0x0a, 0x2b, 0x2b, 0x54, 0x25,
+	0x56, 0x56, 0x61, 0x86, 0x49, 0x6c, 0x60, 0xe7, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x57,
+	0x70, 0x68, 0x8e, 0x08, 0x02, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/securitycenter/v1/source.pb.go b/googleapis/cloud/securitycenter/v1/source.pb.go
index 69f09381aa476962f0477a53fb17b9bf76b5ce63..58d735ad46515d3fce70d6409399450e6b0291e5 100644
--- a/googleapis/cloud/securitycenter/v1/source.pb.go
+++ b/googleapis/cloud/securitycenter/v1/source.pb.go
@@ -53,7 +53,7 @@ func (m *Source) Reset()         { *m = Source{} }
 func (m *Source) String() string { return proto.CompactTextString(m) }
 func (*Source) ProtoMessage()    {}
 func (*Source) Descriptor() ([]byte, []int) {
-	return fileDescriptor_source_9289be609709d799, []int{0}
+	return fileDescriptor_source_9aec8c6f7cdc88bb, []int{0}
 }
 func (m *Source) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Source.Unmarshal(m, b)
@@ -99,25 +99,26 @@ func init() {
 }
 
 func init() {
-	proto.RegisterFile("google/cloud/securitycenter/v1/source.proto", fileDescriptor_source_9289be609709d799)
+	proto.RegisterFile("google/cloud/securitycenter/v1/source.proto", fileDescriptor_source_9aec8c6f7cdc88bb)
 }
 
-var fileDescriptor_source_9289be609709d799 = []byte{
-	// 255 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0x03, 0x31,
-	0x18, 0x84, 0xd9, 0xba, 0x16, 0x4d, 0x3d, 0xc8, 0x9e, 0x8a, 0x48, 0xa9, 0x3d, 0x09, 0x42, 0xc2,
-	0xe2, 0xd1, 0x9b, 0x3d, 0x08, 0x22, 0x22, 0x16, 0x7a, 0x90, 0x05, 0x89, 0xd9, 0x9f, 0x10, 0xd8,
-	0xe6, 0x0f, 0x49, 0xb6, 0xd0, 0x57, 0xf2, 0x01, 0x7c, 0x08, 0x9f, 0x4a, 0xfa, 0x27, 0x22, 0x7b,
-	0xb0, 0xb7, 0x30, 0xf3, 0x65, 0x66, 0xf8, 0xd9, 0x8d, 0x46, 0xd4, 0x1d, 0x08, 0xd5, 0x61, 0xdf,
-	0x8a, 0x00, 0xaa, 0xf7, 0x26, 0xee, 0x14, 0xd8, 0x08, 0x5e, 0x6c, 0x6b, 0x11, 0xb0, 0xf7, 0x0a,
-	0xb8, 0xf3, 0x18, 0xb1, 0x9a, 0x25, 0x98, 0x13, 0xcc, 0x87, 0x30, 0xdf, 0xd6, 0x17, 0x97, 0x39,
-	0x4c, 0x3a, 0x23, 0xa4, 0xb5, 0x18, 0x65, 0x34, 0x68, 0x43, 0xfa, 0xbd, 0xd0, 0x6c, 0xbc, 0xa2,
-	0xb4, 0xaa, 0x62, 0xa5, 0x95, 0x1b, 0x98, 0x16, 0xf3, 0xe2, 0xfa, 0xf4, 0x95, 0xde, 0xd5, 0x15,
-	0x3b, 0x6b, 0x4d, 0x70, 0x9d, 0xdc, 0xbd, 0x93, 0x37, 0x22, 0x6f, 0x92, 0xb5, 0xe7, 0x3d, 0x32,
-	0x67, 0x93, 0x16, 0x82, 0xf2, 0xc6, 0xed, 0x63, 0xa7, 0x47, 0x99, 0xf8, 0x93, 0x1e, 0xcb, 0x93,
-	0xf2, 0xfc, 0xf8, 0xfe, 0xab, 0x60, 0x0b, 0x85, 0x1b, 0x7e, 0x78, 0xed, 0x4b, 0xf1, 0xf6, 0x94,
-	0x09, 0x8d, 0x9d, 0xb4, 0x9a, 0xa3, 0xd7, 0x42, 0x83, 0xa5, 0xb5, 0x22, 0x59, 0xd2, 0x99, 0xf0,
-	0xdf, 0x6d, 0xee, 0x86, 0xca, 0xe7, 0x68, 0xf6, 0x90, 0xe2, 0x96, 0x54, 0xb8, 0xca, 0xee, 0x32,
-	0x15, 0xae, 0xeb, 0xef, 0x5f, 0xa0, 0x21, 0xa0, 0x19, 0x02, 0xcd, 0xba, 0xfe, 0x18, 0x53, 0xf5,
-	0xed, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x06, 0x4b, 0x57, 0x95, 0x01, 0x00, 0x00,
+var fileDescriptor_source_9aec8c6f7cdc88bb = []byte{
+	// 272 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0xd0, 0x41, 0x4a, 0xf4, 0x30,
+	0x14, 0x07, 0x70, 0xda, 0xaf, 0xdf, 0xa0, 0x19, 0x17, 0xd2, 0xd5, 0x20, 0x32, 0xcc, 0xcc, 0x4a,
+	0x10, 0x12, 0x8a, 0xbb, 0xb8, 0x73, 0x16, 0x82, 0x88, 0x88, 0x03, 0x5d, 0x48, 0x41, 0x62, 0x1a,
+	0x42, 0xa0, 0x93, 0x57, 0x92, 0x74, 0x60, 0xae, 0xe4, 0x51, 0x3c, 0x82, 0x47, 0xf0, 0x14, 0x32,
+	0x2f, 0x11, 0xe9, 0x42, 0x77, 0xe5, 0xfd, 0x7f, 0xfd, 0xbf, 0x47, 0xc8, 0xa5, 0x06, 0xd0, 0x9d,
+	0x62, 0xb2, 0x83, 0xa1, 0x65, 0x5e, 0xc9, 0xc1, 0x99, 0xb0, 0x97, 0xca, 0x06, 0xe5, 0xd8, 0xae,
+	0x62, 0x1e, 0x06, 0x27, 0x15, 0xed, 0x1d, 0x04, 0x28, 0xe7, 0x11, 0x53, 0xc4, 0x74, 0x8c, 0xe9,
+	0xae, 0x3a, 0x3b, 0x4f, 0x65, 0xa2, 0x37, 0x4c, 0x58, 0x0b, 0x41, 0x04, 0x03, 0xd6, 0xc7, 0xbf,
+	0x57, 0x9a, 0x4c, 0x36, 0xd8, 0x56, 0x96, 0xa4, 0xb0, 0x62, 0xab, 0x66, 0xd9, 0x22, 0xbb, 0x38,
+	0x7e, 0xc2, 0xef, 0x72, 0x49, 0x4e, 0x5a, 0xe3, 0xfb, 0x4e, 0xec, 0x5f, 0x30, 0xcb, 0x31, 0x9b,
+	0xa6, 0xd9, 0xc3, 0x81, 0x2c, 0xc8, 0xb4, 0x55, 0x5e, 0x3a, 0xd3, 0x1f, 0x6a, 0x67, 0xff, 0x92,
+	0xf8, 0x19, 0xdd, 0x15, 0x47, 0xc5, 0xe9, 0xff, 0x9b, 0x8f, 0x8c, 0xac, 0x24, 0x6c, 0xe9, 0xdf,
+	0xd7, 0x3e, 0x66, 0xcf, 0xf7, 0x49, 0x68, 0xe8, 0x84, 0xd5, 0x14, 0x9c, 0x66, 0x5a, 0x59, 0xbc,
+	0x96, 0xc5, 0x48, 0xf4, 0xc6, 0xff, 0xf6, 0x36, 0xd7, 0xe3, 0xc9, 0x5b, 0x3e, 0xbf, 0x8d, 0x75,
+	0x6b, 0x5c, 0xb8, 0x49, 0xe9, 0x3a, 0x2e, 0xac, 0xab, 0xf7, 0x6f, 0xd0, 0x20, 0x68, 0xc6, 0xa0,
+	0xa9, 0xab, 0xcf, 0x7c, 0x19, 0x01, 0xe7, 0x28, 0x38, 0x1f, 0x13, 0xce, 0xeb, 0xea, 0x75, 0x82,
+	0xe7, 0x5d, 0x7d, 0x05, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x8f, 0xba, 0x1a, 0xb9, 0x01, 0x00, 0x00,
 }
diff --git a/googleapis/firebase/fcm/connection/v1alpha1/connection_api.pb.go b/googleapis/firebase/fcm/connection/v1alpha1/connection_api.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..1115b54001a85aed7722fbf81da34d00a310ccd4
--- /dev/null
+++ b/googleapis/firebase/fcm/connection/v1alpha1/connection_api.pb.go
@@ -0,0 +1,541 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/firebase/fcm/connection/v1alpha1/connection_api.proto
+
+package connection // import "google.golang.org/genproto/googleapis/firebase/fcm/connection/v1alpha1"
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import timestamp "github.com/golang/protobuf/ptypes/timestamp"
+import _ "google.golang.org/genproto/googleapis/api/annotations"
+
+import (
+	context "golang.org/x/net/context"
+	grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Request sent to FCM from the connected client.
+type UpstreamRequest struct {
+	// The type of request the client is making to FCM.
+	//
+	// Types that are valid to be assigned to RequestType:
+	//	*UpstreamRequest_Ack
+	RequestType          isUpstreamRequest_RequestType `protobuf_oneof:"request_type"`
+	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
+	XXX_unrecognized     []byte                        `json:"-"`
+	XXX_sizecache        int32                         `json:"-"`
+}
+
+func (m *UpstreamRequest) Reset()         { *m = UpstreamRequest{} }
+func (m *UpstreamRequest) String() string { return proto.CompactTextString(m) }
+func (*UpstreamRequest) ProtoMessage()    {}
+func (*UpstreamRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_connection_api_e2e68185fc0238ce, []int{0}
+}
+func (m *UpstreamRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpstreamRequest.Unmarshal(m, b)
+}
+func (m *UpstreamRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpstreamRequest.Marshal(b, m, deterministic)
+}
+func (dst *UpstreamRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpstreamRequest.Merge(dst, src)
+}
+func (m *UpstreamRequest) XXX_Size() int {
+	return xxx_messageInfo_UpstreamRequest.Size(m)
+}
+func (m *UpstreamRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpstreamRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpstreamRequest proto.InternalMessageInfo
+
+type isUpstreamRequest_RequestType interface {
+	isUpstreamRequest_RequestType()
+}
+
+type UpstreamRequest_Ack struct {
+	Ack *Ack `protobuf:"bytes,1,opt,name=ack,proto3,oneof"`
+}
+
+func (*UpstreamRequest_Ack) isUpstreamRequest_RequestType() {}
+
+func (m *UpstreamRequest) GetRequestType() isUpstreamRequest_RequestType {
+	if m != nil {
+		return m.RequestType
+	}
+	return nil
+}
+
+func (m *UpstreamRequest) GetAck() *Ack {
+	if x, ok := m.GetRequestType().(*UpstreamRequest_Ack); ok {
+		return x.Ack
+	}
+	return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*UpstreamRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _UpstreamRequest_OneofMarshaler, _UpstreamRequest_OneofUnmarshaler, _UpstreamRequest_OneofSizer, []interface{}{
+		(*UpstreamRequest_Ack)(nil),
+	}
+}
+
+func _UpstreamRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*UpstreamRequest)
+	// request_type
+	switch x := m.RequestType.(type) {
+	case *UpstreamRequest_Ack:
+		b.EncodeVarint(1<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.Ack); err != nil {
+			return err
+		}
+	case nil:
+	default:
+		return fmt.Errorf("UpstreamRequest.RequestType has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _UpstreamRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*UpstreamRequest)
+	switch tag {
+	case 1: // request_type.ack
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(Ack)
+		err := b.DecodeMessage(msg)
+		m.RequestType = &UpstreamRequest_Ack{msg}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _UpstreamRequest_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*UpstreamRequest)
+	// request_type
+	switch x := m.RequestType.(type) {
+	case *UpstreamRequest_Ack:
+		s := proto.Size(x.Ack)
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// Response sent to the connected client from FCM.
+type DownstreamResponse struct {
+	// The type of response FCM is sending to the client.
+	//
+	// Types that are valid to be assigned to ResponseType:
+	//	*DownstreamResponse_Message
+	ResponseType         isDownstreamResponse_ResponseType `protobuf_oneof:"response_type"`
+	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
+	XXX_unrecognized     []byte                            `json:"-"`
+	XXX_sizecache        int32                             `json:"-"`
+}
+
+func (m *DownstreamResponse) Reset()         { *m = DownstreamResponse{} }
+func (m *DownstreamResponse) String() string { return proto.CompactTextString(m) }
+func (*DownstreamResponse) ProtoMessage()    {}
+func (*DownstreamResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_connection_api_e2e68185fc0238ce, []int{1}
+}
+func (m *DownstreamResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DownstreamResponse.Unmarshal(m, b)
+}
+func (m *DownstreamResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DownstreamResponse.Marshal(b, m, deterministic)
+}
+func (dst *DownstreamResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DownstreamResponse.Merge(dst, src)
+}
+func (m *DownstreamResponse) XXX_Size() int {
+	return xxx_messageInfo_DownstreamResponse.Size(m)
+}
+func (m *DownstreamResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_DownstreamResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DownstreamResponse proto.InternalMessageInfo
+
+type isDownstreamResponse_ResponseType interface {
+	isDownstreamResponse_ResponseType()
+}
+
+type DownstreamResponse_Message struct {
+	Message *Message `protobuf:"bytes,1,opt,name=message,proto3,oneof"`
+}
+
+func (*DownstreamResponse_Message) isDownstreamResponse_ResponseType() {}
+
+func (m *DownstreamResponse) GetResponseType() isDownstreamResponse_ResponseType {
+	if m != nil {
+		return m.ResponseType
+	}
+	return nil
+}
+
+func (m *DownstreamResponse) GetMessage() *Message {
+	if x, ok := m.GetResponseType().(*DownstreamResponse_Message); ok {
+		return x.Message
+	}
+	return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*DownstreamResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _DownstreamResponse_OneofMarshaler, _DownstreamResponse_OneofUnmarshaler, _DownstreamResponse_OneofSizer, []interface{}{
+		(*DownstreamResponse_Message)(nil),
+	}
+}
+
+func _DownstreamResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*DownstreamResponse)
+	// response_type
+	switch x := m.ResponseType.(type) {
+	case *DownstreamResponse_Message:
+		b.EncodeVarint(1<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.Message); err != nil {
+			return err
+		}
+	case nil:
+	default:
+		return fmt.Errorf("DownstreamResponse.ResponseType has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _DownstreamResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*DownstreamResponse)
+	switch tag {
+	case 1: // response_type.message
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(Message)
+		err := b.DecodeMessage(msg)
+		m.ResponseType = &DownstreamResponse_Message{msg}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _DownstreamResponse_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*DownstreamResponse)
+	// response_type
+	switch x := m.ResponseType.(type) {
+	case *DownstreamResponse_Message:
+		s := proto.Size(x.Message)
+		n += 1 // tag and wire
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// Acknowledgement to indicate a client successfully received an FCM message.
+//
+// If a message is not acked, FCM will continously resend the message until
+// it expires. Duplicate delivery in this case is working as intended.
+type Ack struct {
+	// Id of message being acknowledged
+	MessageId            string   `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Ack) Reset()         { *m = Ack{} }
+func (m *Ack) String() string { return proto.CompactTextString(m) }
+func (*Ack) ProtoMessage()    {}
+func (*Ack) Descriptor() ([]byte, []int) {
+	return fileDescriptor_connection_api_e2e68185fc0238ce, []int{2}
+}
+func (m *Ack) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Ack.Unmarshal(m, b)
+}
+func (m *Ack) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Ack.Marshal(b, m, deterministic)
+}
+func (dst *Ack) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Ack.Merge(dst, src)
+}
+func (m *Ack) XXX_Size() int {
+	return xxx_messageInfo_Ack.Size(m)
+}
+func (m *Ack) XXX_DiscardUnknown() {
+	xxx_messageInfo_Ack.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Ack proto.InternalMessageInfo
+
+func (m *Ack) GetMessageId() string {
+	if m != nil {
+		return m.MessageId
+	}
+	return ""
+}
+
+// Message created through the [Send
+// API](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#resource-message).
+type Message struct {
+	// The identifier of the message. Used to ack the message.
+	MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
+	// Time the message was received in FCM.
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	// Expiry time of the message. Currently it is always 4 weeks.
+	ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
+	// The arbitrary payload set in the [Send
+	// API](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#resource-message).
+	Data                 map[string]string `protobuf:"bytes,4,rep,name=data,proto3" json:"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:"-"`
+}
+
+func (m *Message) Reset()         { *m = Message{} }
+func (m *Message) String() string { return proto.CompactTextString(m) }
+func (*Message) ProtoMessage()    {}
+func (*Message) Descriptor() ([]byte, []int) {
+	return fileDescriptor_connection_api_e2e68185fc0238ce, []int{3}
+}
+func (m *Message) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Message.Unmarshal(m, b)
+}
+func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Message.Marshal(b, m, deterministic)
+}
+func (dst *Message) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Message.Merge(dst, src)
+}
+func (m *Message) XXX_Size() int {
+	return xxx_messageInfo_Message.Size(m)
+}
+func (m *Message) XXX_DiscardUnknown() {
+	xxx_messageInfo_Message.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Message proto.InternalMessageInfo
+
+func (m *Message) GetMessageId() string {
+	if m != nil {
+		return m.MessageId
+	}
+	return ""
+}
+
+func (m *Message) GetCreateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.CreateTime
+	}
+	return nil
+}
+
+func (m *Message) GetExpireTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.ExpireTime
+	}
+	return nil
+}
+
+func (m *Message) GetData() map[string]string {
+	if m != nil {
+		return m.Data
+	}
+	return nil
+}
+
+func init() {
+	proto.RegisterType((*UpstreamRequest)(nil), "google.firebase.fcm.connection.v1alpha1.UpstreamRequest")
+	proto.RegisterType((*DownstreamResponse)(nil), "google.firebase.fcm.connection.v1alpha1.DownstreamResponse")
+	proto.RegisterType((*Ack)(nil), "google.firebase.fcm.connection.v1alpha1.Ack")
+	proto.RegisterType((*Message)(nil), "google.firebase.fcm.connection.v1alpha1.Message")
+	proto.RegisterMapType((map[string]string)(nil), "google.firebase.fcm.connection.v1alpha1.Message.DataEntry")
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// ConnectionApiClient is the client API for ConnectionApi service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ConnectionApiClient interface {
+	// Creates a streaming connection with FCM to send messages and their
+	// respective ACKs.
+	//
+	// The client credentials need to be passed in the [gRPC
+	// Metadata](https://grpc.io/docs/guides/concepts.html#metadata). The Format
+	// of the header is:
+	//   Key: "authorization"
+	//   Value: "Checkin [client_id:secret]"
+	//
+	//
+	// The project's API key also needs to be sent to authorize the project.
+	// That can be set in the X-Goog-Api-Key Metadata header.
+	Connect(ctx context.Context, opts ...grpc.CallOption) (ConnectionApi_ConnectClient, error)
+}
+
+type connectionApiClient struct {
+	cc *grpc.ClientConn
+}
+
+func NewConnectionApiClient(cc *grpc.ClientConn) ConnectionApiClient {
+	return &connectionApiClient{cc}
+}
+
+func (c *connectionApiClient) Connect(ctx context.Context, opts ...grpc.CallOption) (ConnectionApi_ConnectClient, error) {
+	stream, err := c.cc.NewStream(ctx, &_ConnectionApi_serviceDesc.Streams[0], "/google.firebase.fcm.connection.v1alpha1.ConnectionApi/Connect", opts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &connectionApiConnectClient{stream}
+	return x, nil
+}
+
+type ConnectionApi_ConnectClient interface {
+	Send(*UpstreamRequest) error
+	Recv() (*DownstreamResponse, error)
+	grpc.ClientStream
+}
+
+type connectionApiConnectClient struct {
+	grpc.ClientStream
+}
+
+func (x *connectionApiConnectClient) Send(m *UpstreamRequest) error {
+	return x.ClientStream.SendMsg(m)
+}
+
+func (x *connectionApiConnectClient) Recv() (*DownstreamResponse, error) {
+	m := new(DownstreamResponse)
+	if err := x.ClientStream.RecvMsg(m); err != nil {
+		return nil, err
+	}
+	return m, nil
+}
+
+// ConnectionApiServer is the server API for ConnectionApi service.
+type ConnectionApiServer interface {
+	// Creates a streaming connection with FCM to send messages and their
+	// respective ACKs.
+	//
+	// The client credentials need to be passed in the [gRPC
+	// Metadata](https://grpc.io/docs/guides/concepts.html#metadata). The Format
+	// of the header is:
+	//   Key: "authorization"
+	//   Value: "Checkin [client_id:secret]"
+	//
+	//
+	// The project's API key also needs to be sent to authorize the project.
+	// That can be set in the X-Goog-Api-Key Metadata header.
+	Connect(ConnectionApi_ConnectServer) error
+}
+
+func RegisterConnectionApiServer(s *grpc.Server, srv ConnectionApiServer) {
+	s.RegisterService(&_ConnectionApi_serviceDesc, srv)
+}
+
+func _ConnectionApi_Connect_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(ConnectionApiServer).Connect(&connectionApiConnectServer{stream})
+}
+
+type ConnectionApi_ConnectServer interface {
+	Send(*DownstreamResponse) error
+	Recv() (*UpstreamRequest, error)
+	grpc.ServerStream
+}
+
+type connectionApiConnectServer struct {
+	grpc.ServerStream
+}
+
+func (x *connectionApiConnectServer) Send(m *DownstreamResponse) error {
+	return x.ServerStream.SendMsg(m)
+}
+
+func (x *connectionApiConnectServer) Recv() (*UpstreamRequest, error) {
+	m := new(UpstreamRequest)
+	if err := x.ServerStream.RecvMsg(m); err != nil {
+		return nil, err
+	}
+	return m, nil
+}
+
+var _ConnectionApi_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.firebase.fcm.connection.v1alpha1.ConnectionApi",
+	HandlerType: (*ConnectionApiServer)(nil),
+	Methods:     []grpc.MethodDesc{},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "Connect",
+			Handler:       _ConnectionApi_Connect_Handler,
+			ServerStreams: true,
+			ClientStreams: true,
+		},
+	},
+	Metadata: "google/firebase/fcm/connection/v1alpha1/connection_api.proto",
+}
+
+func init() {
+	proto.RegisterFile("google/firebase/fcm/connection/v1alpha1/connection_api.proto", fileDescriptor_connection_api_e2e68185fc0238ce)
+}
+
+var fileDescriptor_connection_api_e2e68185fc0238ce = []byte{
+	// 453 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xc1, 0x6e, 0x13, 0x31,
+	0x10, 0x86, 0xb3, 0xd9, 0x42, 0x94, 0x09, 0xa5, 0xc8, 0xe2, 0x10, 0xad, 0x40, 0x54, 0x11, 0x12,
+	0x91, 0x40, 0xde, 0x36, 0x1c, 0xa8, 0x1a, 0x0e, 0x24, 0x14, 0xa9, 0x48, 0x80, 0x60, 0x05, 0x17,
+	0x2e, 0xd1, 0xc4, 0x71, 0x16, 0x2b, 0x59, 0xdb, 0xd8, 0x4e, 0x21, 0x57, 0x0e, 0x3c, 0x03, 0xef,
+	0xc0, 0x4b, 0xa2, 0x5d, 0x7b, 0x5b, 0x04, 0x87, 0x6c, 0x6f, 0xf1, 0xcc, 0xff, 0xfd, 0xff, 0x78,
+	0xe2, 0x85, 0xe7, 0xb9, 0x52, 0xf9, 0x9a, 0xa7, 0x4b, 0x61, 0xf8, 0x1c, 0x2d, 0x4f, 0x97, 0xac,
+	0x48, 0x99, 0x92, 0x92, 0x33, 0x27, 0x94, 0x4c, 0x2f, 0x8e, 0x71, 0xad, 0xbf, 0xe0, 0xf1, 0x5f,
+	0xb5, 0x19, 0x6a, 0x41, 0xb5, 0x51, 0x4e, 0x91, 0x47, 0x9e, 0xa6, 0x35, 0x4d, 0x97, 0xac, 0xa0,
+	0x57, 0x4a, 0x5a, 0xd3, 0xc9, 0xbd, 0x10, 0x83, 0x5a, 0xa4, 0x28, 0xa5, 0x72, 0x58, 0xf6, 0xad,
+	0xb7, 0x49, 0x1e, 0x84, 0x6e, 0x75, 0x9a, 0x6f, 0x96, 0xa9, 0x13, 0x05, 0xb7, 0x0e, 0x0b, 0xed,
+	0x05, 0x03, 0x06, 0x07, 0x9f, 0xb4, 0x75, 0x86, 0x63, 0x91, 0xf1, 0xaf, 0x1b, 0x6e, 0x1d, 0x79,
+	0x01, 0x31, 0xb2, 0x55, 0x3f, 0x3a, 0x8c, 0x86, 0xbd, 0xd1, 0x13, 0xda, 0x70, 0x10, 0x3a, 0x61,
+	0xab, 0xf3, 0x56, 0x56, 0xa2, 0xd3, 0xdb, 0x70, 0xcb, 0x78, 0xb3, 0x99, 0xdb, 0x6a, 0x3e, 0xb0,
+	0x40, 0xce, 0xd4, 0x37, 0x59, 0xc7, 0x58, 0xad, 0xa4, 0xe5, 0xe4, 0x0d, 0x74, 0x0a, 0x6e, 0x2d,
+	0xe6, 0x3c, 0x64, 0x1d, 0x35, 0xce, 0x7a, 0xeb, 0xb9, 0xf3, 0x56, 0x56, 0x5b, 0x4c, 0x0f, 0x60,
+	0xdf, 0x04, 0x67, 0x1f, 0xfa, 0x10, 0xe2, 0x09, 0x5b, 0x91, 0xfb, 0x00, 0x41, 0x32, 0x13, 0x8b,
+	0x2a, 0xa8, 0x9b, 0x75, 0x43, 0xe5, 0xf5, 0x62, 0xf0, 0xbb, 0x0d, 0x9d, 0xe0, 0xb6, 0x43, 0x4a,
+	0xc6, 0xd0, 0x63, 0x86, 0xa3, 0xe3, 0xb3, 0x72, 0x89, 0xfd, 0x76, 0x35, 0x73, 0x52, 0xcf, 0x5c,
+	0x6f, 0x98, 0x7e, 0xac, 0x37, 0x9c, 0x81, 0x97, 0x97, 0x85, 0x12, 0xe6, 0xdf, 0xb5, 0x30, 0x01,
+	0x8e, 0x77, 0xc3, 0x5e, 0x5e, 0xc1, 0xef, 0x60, 0x6f, 0x81, 0x0e, 0xfb, 0x7b, 0x87, 0xf1, 0xb0,
+	0x37, 0x3a, 0xbd, 0xee, 0x9a, 0xe8, 0x19, 0x3a, 0x7c, 0x25, 0x9d, 0xd9, 0x66, 0x95, 0x4f, 0xf2,
+	0x0c, 0xba, 0x97, 0x25, 0x72, 0x07, 0xe2, 0x15, 0xdf, 0x86, 0xeb, 0x96, 0x3f, 0xc9, 0x5d, 0xb8,
+	0x71, 0x81, 0xeb, 0x8d, 0xbf, 0x62, 0x37, 0xf3, 0x87, 0xd3, 0xf6, 0x49, 0x34, 0xfa, 0x15, 0xc1,
+	0xfe, 0xcb, 0xcb, 0xa0, 0x89, 0x16, 0xe4, 0x67, 0x04, 0x9d, 0x50, 0x21, 0x27, 0x8d, 0x07, 0xfb,
+	0xe7, 0xc9, 0x25, 0xe3, 0xc6, 0xe4, 0xff, 0xef, 0x68, 0xd0, 0x1a, 0x46, 0x47, 0xd1, 0xf4, 0x47,
+	0x04, 0x8f, 0x99, 0x2a, 0x9a, 0x1a, 0xbd, 0x8f, 0x3e, 0x7f, 0x08, 0xd2, 0x5c, 0xad, 0x51, 0xe6,
+	0x54, 0x99, 0x3c, 0xcd, 0xb9, 0xac, 0xfe, 0x8a, 0xd4, 0xb7, 0x50, 0x0b, 0xbb, 0xf3, 0xfb, 0x1d,
+	0x5f, 0xd5, 0xe6, 0x37, 0x2b, 0xfa, 0xe9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x30, 0x40,
+	0x1a, 0xfc, 0x03, 0x00, 0x00,
+}
diff --git a/protobuf/ptype/type.pb.go b/protobuf/ptype/type.pb.go
index 519faab82dd9e50dfc4a4a01a2d94bf2ee522cbf..db59fce9761254a169c2d75c6f02cb9307687dfc 100644
--- a/protobuf/ptype/type.pb.go
+++ b/protobuf/ptype/type.pb.go
@@ -43,7 +43,7 @@ func (x Syntax) String() string {
 	return proto.EnumName(Syntax_name, int32(x))
 }
 func (Syntax) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{0}
+	return fileDescriptor_type_d42eba12d866f154, []int{0}
 }
 
 // Basic field types.
@@ -137,7 +137,7 @@ func (x Field_Kind) String() string {
 	return proto.EnumName(Field_Kind_name, int32(x))
 }
 func (Field_Kind) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{1, 0}
+	return fileDescriptor_type_d42eba12d866f154, []int{1, 0}
 }
 
 // Whether a field is optional, required, or repeated.
@@ -171,7 +171,7 @@ func (x Field_Cardinality) String() string {
 	return proto.EnumName(Field_Cardinality_name, int32(x))
 }
 func (Field_Cardinality) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{1, 1}
+	return fileDescriptor_type_d42eba12d866f154, []int{1, 1}
 }
 
 // A protocol buffer message type.
@@ -197,7 +197,7 @@ func (m *Type) Reset()         { *m = Type{} }
 func (m *Type) String() string { return proto.CompactTextString(m) }
 func (*Type) ProtoMessage()    {}
 func (*Type) Descriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{0}
+	return fileDescriptor_type_d42eba12d866f154, []int{0}
 }
 func (m *Type) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Type.Unmarshal(m, b)
@@ -292,7 +292,7 @@ func (m *Field) Reset()         { *m = Field{} }
 func (m *Field) String() string { return proto.CompactTextString(m) }
 func (*Field) ProtoMessage()    {}
 func (*Field) Descriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{1}
+	return fileDescriptor_type_d42eba12d866f154, []int{1}
 }
 func (m *Field) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Field.Unmarshal(m, b)
@@ -403,7 +403,7 @@ func (m *Enum) Reset()         { *m = Enum{} }
 func (m *Enum) String() string { return proto.CompactTextString(m) }
 func (*Enum) ProtoMessage()    {}
 func (*Enum) Descriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{2}
+	return fileDescriptor_type_d42eba12d866f154, []int{2}
 }
 func (m *Enum) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Enum.Unmarshal(m, b)
@@ -475,7 +475,7 @@ func (m *EnumValue) Reset()         { *m = EnumValue{} }
 func (m *EnumValue) String() string { return proto.CompactTextString(m) }
 func (*EnumValue) ProtoMessage()    {}
 func (*EnumValue) Descriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{3}
+	return fileDescriptor_type_d42eba12d866f154, []int{3}
 }
 func (m *EnumValue) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_EnumValue.Unmarshal(m, b)
@@ -538,7 +538,7 @@ func (m *Option) Reset()         { *m = Option{} }
 func (m *Option) String() string { return proto.CompactTextString(m) }
 func (*Option) ProtoMessage()    {}
 func (*Option) Descriptor() ([]byte, []int) {
-	return fileDescriptor_type_de958d9f8682c896, []int{4}
+	return fileDescriptor_type_d42eba12d866f154, []int{4}
 }
 func (m *Option) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Option.Unmarshal(m, b)
@@ -583,9 +583,9 @@ func init() {
 	proto.RegisterEnum("google.protobuf.Field_Cardinality", Field_Cardinality_name, Field_Cardinality_value)
 }
 
-func init() { proto.RegisterFile("google/protobuf/type.proto", fileDescriptor_type_de958d9f8682c896) }
+func init() { proto.RegisterFile("google/protobuf/type.proto", fileDescriptor_type_d42eba12d866f154) }
 
-var fileDescriptor_type_de958d9f8682c896 = []byte{
+var fileDescriptor_type_d42eba12d866f154 = []byte{
 	// 810 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x8e, 0xda, 0x56,
 	0x14, 0x8e, 0x8d, 0xf1, 0xe0, 0xc3, 0xc0, 0xdc, 0xdc, 0x44, 0x89, 0x33, 0x91, 0x52, 0x44, 0xbb,