Synchronize new proto changes.
diff --git a/google/api/billing.proto b/google/api/billing.proto
index 6ecffd5..efba179 100644
--- a/google/api/billing.proto
+++ b/google/api/billing.proto
@@ -1,4 +1,4 @@
-// Copyright 2016 Google Inc.
+// Copyright 2017 Google Inc.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -23,76 +23,45 @@
 option java_multiple_files = true;
 option java_outer_classname = "BillingProto";
 option java_package = "com.google.api";
+option objc_class_prefix = "GAPI";
 
 
 // Billing related configuration of the service.
 //
-// The following example shows how to configure metrics for billing:
-//
+// The following example shows how to configure monitored resources and metrics
+// for billing:
+//     monitored_resources:
+//     - type: library.googleapis.com/branch
+//       labels:
+//       - key: /city
+//         description: The city where the library branch is located in.
+//       - key: /name
+//         description: The name of the branch.
 //     metrics:
-//     - name: library.googleapis.com/read_calls
-//       metric_kind: DELTA
-//       value_type: INT64
-//     - name: library.googleapis.com/write_calls
+//     - name: library.googleapis.com/book/borrowed_count
 //       metric_kind: DELTA
 //       value_type: INT64
 //     billing:
-//       metrics:
-//       - library.googleapis.com/read_calls
-//       - library.googleapis.com/write_calls
-//
-// The next example shows how to enable billing status check and customize the
-// check behavior. It makes sure billing status check is included in the `Check`
-// method of [Service Control API](https://cloud.google.com/service-control/).
-// In the example, "google.storage.Get" method can be served when the billing
-// status is either `current` or `delinquent`, while "google.storage.Write"
-// method can only be served when the billing status is `current`:
-//
-//     billing:
-//       rules:
-//       - selector: google.storage.Get
-//         allowed_statuses:
-//         - current
-//         - delinquent
-//       - selector: google.storage.Write
-//         allowed_statuses: current
-//
-// Mostly services should only allow `current` status when serving requests.
-// In addition, services can choose to allow both `current` and `delinquent`
-// statuses when serving read-only requests to resources. If there's no
-// matching selector for operation, no billing status check will be performed.
-//
+//       consumer_destinations:
+//       - monitored_resource: library.googleapis.com/branch
+//         metrics:
+//         - library.googleapis.com/book/borrowed_count
 message Billing {
-  // Names of the metrics to report to billing. Each name must
-  // be defined in [Service.metrics][google.api.Service.metrics] section.
-  repeated string metrics = 1;
+  // Configuration of a specific billing destination (Currently only support
+  // bill against consumer project).
+  message BillingDestination {
+    // The monitored resource type. The type must be defined in
+    // [Service.monitored_resources][google.api.Service.monitored_resources] section.
+    string monitored_resource = 1;
 
-  // A list of billing status rules for configuring billing status check.
-  repeated BillingStatusRule rules = 5;
-}
+    // Names of the metrics to report to this billing destination.
+    // Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+    repeated string metrics = 2;
+  }
 
-// Defines the billing status requirements for operations.
-//
-// When used with
-// [Service Control API](https://cloud.google.com/service-control/), the
-// following statuses are supported:
-//
-// - **current**: the associated billing account is up to date and capable of
-//                paying for resource usages.
-// - **delinquent**: the associated billing account has a correctable problem,
-//                   such as late payment.
-//
-// Mostly services should only allow `current` status when serving requests.
-// In addition, services can choose to allow both `current` and `delinquent`
-// statuses when serving read-only requests to resources. If the list of
-// allowed_statuses is empty, it means no billing requirement.
-//
-message BillingStatusRule {
-  // Selects the operation names to which this rule applies.
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
-  string selector = 1;
-
-  // Allowed billing statuses. The billing status check passes if the actual
-  // billing status matches any of the provided values here.
-  repeated string allowed_statuses = 2;
+  // Billing configurations for sending metrics to the consumer project.
+  // There can be multiple consumer destinations per service, each one must have
+  // a different monitored resource type. A metric can be used in at most
+  // one consumer destination.
+  repeated BillingDestination consumer_destinations = 8;
 }
diff --git a/google/api/service.proto b/google/api/service.proto
index 04c7fd7..87fba7b 100644
--- a/google/api/service.proto
+++ b/google/api/service.proto
@@ -19,6 +19,7 @@
 import "google/api/annotations.proto";
 import "google/api/auth.proto";
 import "google/api/backend.proto";
+import "google/api/billing.proto";
 import "google/api/context.proto";
 import "google/api/control.proto";
 import "google/api/documentation.proto";
@@ -71,10 +72,10 @@
 //         requirements:
 //           provider_id: google_calendar_auth
 message Service {
-  // The version of the service configuration. The config version may
-  // influence interpretation of the configuration, for example, to
-  // determine defaults. This is documented together with applicable
-  // options. The current default for the config version itself is `3`.
+  // The semantic version of the service configuration. The config version
+  // affects the interpretation of the service configuration. For example,
+  // certain features are enabled by default for certain config versions.
+  // The latest config version is `3`.
   google.protobuf.UInt32Value config_version = 20;
 
   // The DNS address at which this service is available,
@@ -86,12 +87,10 @@
   // generate one instead.
   string id = 33;
 
-  // The product title associated with this service.
+  // The product title for this service.
   string title = 2;
 
-  // The id of the Google developer project that owns the service.
-  // Members of this project can manage the service configuration,
-  // manage consumption of the service, etc.
+  // The Google project that owns this service.
   string producer_project_id = 22;
 
   // A list of API interfaces exported by this service. Only the `name` field
@@ -159,6 +158,9 @@
   // by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
   repeated MonitoredResourceDescriptor monitored_resources = 25;
 
+  // Billing configuration.
+  Billing billing = 26;
+
   // Logging configuration.
   Logging logging = 27;