| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- // Copyright 2016 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.api;
- import "google/api/annotations.proto";
- import "google/api/metric.proto";
- option java_multiple_files = true;
- option java_outer_classname = "BillingProto";
- option java_package = "com.google.api";
- // Billing related configuration of the service.
- //
- // The following example shows how to configure metrics for billing:
- //
- // metrics:
- // - name: library.googleapis.com/read_calls
- // metric_kind: DELTA
- // value_type: INT64
- // - name: library.googleapis.com/write_calls
- // 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.
- //
- 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;
- // A list of billing status rules for configuring billing status check.
- repeated BillingStatusRule rules = 5;
- }
- // 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;
- }
|