Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: generated/googleapis/lib/serviceuser/v1.dart

Issue 2824163002: Api-roll 48: 2017-04-18 (Closed)
Patch Set: Revert changes to pubspecs Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « generated/googleapis/lib/servicemanagement/v1.dart ('k') | generated/googleapis/lib/sheets/v4.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: generated/googleapis/lib/serviceuser/v1.dart
diff --git a/generated/googleapis/lib/serviceuser/v1.dart b/generated/googleapis/lib/serviceuser/v1.dart
index 8641cbf0e938f9006b7408fcf89d8943df3e15a3..35401f7b6e705a0d10637b887ff81d3199b60f12 100644
--- a/generated/googleapis/lib/serviceuser/v1.dart
+++ b/generated/googleapis/lib/serviceuser/v1.dart
@@ -1237,6 +1237,14 @@ class Endpoint {
core.List<core.String> features;
/** The canonical name of this endpoint. */
core.String name;
+ /**
+ * The specification of an Internet routable address of API frontend that will
+ * handle requests to this [API
+ * Endpoint](https://cloud.google.com/apis/design/glossary).
+ * It should be either a valid IPv4 address or a fully-qualified domain name.
+ * For example, "8.8.8.8" or "myservice.appspot.com".
+ */
+ core.String target;
Endpoint();
@@ -1256,6 +1264,9 @@ class Endpoint {
if (_json.containsKey("name")) {
name = _json["name"];
}
+ if (_json.containsKey("target")) {
+ target = _json["target"];
+ }
}
core.Map toJson() {
@@ -1275,6 +1286,9 @@ class Endpoint {
if (name != null) {
_json["name"] = name;
}
+ if (target != null) {
+ _json["target"] = target;
+ }
return _json;
}
}
@@ -1539,6 +1553,15 @@ class Field {
*/
class Http {
/**
+ * When set to true, URL path parmeters will be fully URI-decoded except in
+ * cases of single segment matches in reserved expansion, where "%2F" will be
+ * left encoded.
+ *
+ * The default behavior is to not decode RFC 6570 reserved characters in multi
+ * segment matches.
+ */
+ core.bool fullyDecodeReservedExpansion;
+ /**
* A list of HTTP configuration rules that apply to individual API methods.
*
* **NOTE:** All service configuration rules follow "last one wins" order.
@@ -1548,6 +1571,9 @@ class Http {
Http();
Http.fromJson(core.Map _json) {
+ if (_json.containsKey("fullyDecodeReservedExpansion")) {
+ fullyDecodeReservedExpansion = _json["fullyDecodeReservedExpansion"];
+ }
if (_json.containsKey("rules")) {
rules = _json["rules"].map((value) => new HttpRule.fromJson(value)).toList();
}
@@ -1555,6 +1581,9 @@ class Http {
core.Map toJson() {
var _json = new core.Map();
+ if (fullyDecodeReservedExpansion != null) {
+ _json["fullyDecodeReservedExpansion"] = fullyDecodeReservedExpansion;
+ }
if (rules != null) {
_json["rules"] = rules.map((value) => (value).toJson()).toList();
}
@@ -2525,6 +2554,53 @@ class MetricDescriptor {
}
/**
+ * Bind API methods to metrics. Binding a method to a metric causes that
+ * metric's configured quota, billing, and monitoring behaviors to apply to the
+ * method call.
+ *
+ * Used by metric-based quotas only.
+ */
+class MetricRule {
+ /**
+ * Metrics to update when the selected methods are called, and the associated
+ * cost applied to each metric.
+ *
+ * The key of the map is the metric name, and the values are the amount
+ * increased for the metric against which the quota limits are defined.
+ * The value must not be negative.
+ */
+ core.Map<core.String, core.String> metricCosts;
+ /**
+ * Selects the methods to which this rule applies.
+ *
+ * Refer to selector for syntax details.
+ */
+ core.String selector;
+
+ MetricRule();
+
+ MetricRule.fromJson(core.Map _json) {
+ if (_json.containsKey("metricCosts")) {
+ metricCosts = _json["metricCosts"];
+ }
+ if (_json.containsKey("selector")) {
+ selector = _json["selector"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (metricCosts != null) {
+ _json["metricCosts"] = metricCosts;
+ }
+ if (selector != null) {
+ _json["selector"] = selector;
+ }
+ return _json;
+ }
+}
+
+/**
* Declares an API to be included in this API. The including API must
* redeclare all the methods from the included API, but documentation
* and options are inherited as follows:
@@ -3169,6 +3245,328 @@ class PublishedService {
}
}
+/**
+ * Quota configuration helps to achieve fairness and budgeting in service
+ * usage.
+ *
+ * The quota configuration works this way:
+ * - The service configuration defines a set of metrics.
+ * - For API calls, the quota.metric_rules maps methods to metrics with
+ * corresponding costs.
+ * - The quota.limits defines limits on the metrics, which will be used for
+ * quota checks at runtime.
+ *
+ * An example quota configuration in yaml format:
+ *
+ * quota:
+ *
+ * - name: apiWriteQpsPerProject
+ * metric: library.googleapis.com/write_calls
+ * unit: "1/min/{project}" # rate limit for consumer projects
+ * values:
+ * STANDARD: 10000
+ *
+ *
+ * # The metric rules bind all methods to the read_calls metric,
+ * # except for the UpdateBook and DeleteBook methods. These two methods
+ * # are mapped to the write_calls metric, with the UpdateBook method
+ * # consuming at twice rate as the DeleteBook method.
+ * metric_rules:
+ * - selector: "*"
+ * metric_costs:
+ * library.googleapis.com/read_calls: 1
+ * - selector: google.example.library.v1.LibraryService.UpdateBook
+ * metric_costs:
+ * library.googleapis.com/write_calls: 2
+ * - selector: google.example.library.v1.LibraryService.DeleteBook
+ * metric_costs:
+ * library.googleapis.com/write_calls: 1
+ *
+ * Corresponding Metric definition:
+ *
+ * metrics:
+ * - name: library.googleapis.com/read_calls
+ * display_name: Read requests
+ * metric_kind: DELTA
+ * value_type: INT64
+ *
+ * - name: library.googleapis.com/write_calls
+ * display_name: Write requests
+ * metric_kind: DELTA
+ * value_type: INT64
+ */
+class Quota {
+ /**
+ * List of `QuotaLimit` definitions for the service.
+ *
+ * Used by metric-based quotas only.
+ */
+ core.List<QuotaLimit> limits;
+ /**
+ * List of `MetricRule` definitions, each one mapping a selected method to one
+ * or more metrics.
+ *
+ * Used by metric-based quotas only.
+ */
+ core.List<MetricRule> metricRules;
+
+ Quota();
+
+ Quota.fromJson(core.Map _json) {
+ if (_json.containsKey("limits")) {
+ limits = _json["limits"].map((value) => new QuotaLimit.fromJson(value)).toList();
+ }
+ if (_json.containsKey("metricRules")) {
+ metricRules = _json["metricRules"].map((value) => new MetricRule.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (limits != null) {
+ _json["limits"] = limits.map((value) => (value).toJson()).toList();
+ }
+ if (metricRules != null) {
+ _json["metricRules"] = metricRules.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/**
+ * `QuotaLimit` defines a specific limit that applies over a specified duration
+ * for a limit type. There can be at most one limit for a duration and limit
+ * type combination defined within a `QuotaGroup`.
+ */
+class QuotaLimit {
+ /**
+ * Default number of tokens that can be consumed during the specified
+ * duration. This is the number of tokens assigned when a client
+ * application developer activates the service for his/her project.
+ *
+ * Specifying a value of 0 will block all requests. This can be used if you
+ * are provisioning quota to selected consumers and blocking others.
+ * Similarly, a value of -1 will indicate an unlimited quota. No other
+ * negative values are allowed.
+ *
+ * Used by group-based quotas only.
+ */
+ core.String defaultLimit;
+ /**
+ * Optional. User-visible, extended description for this quota limit.
+ * Should be used only when more context is needed to understand this limit
+ * than provided by the limit's display name (see: `display_name`).
+ */
+ core.String description;
+ /**
+ * User-visible display name for this limit.
+ * Optional. If not set, the UI will provide a default display name based on
+ * the quota configuration. This field can be used to override the default
+ * display name generated from the configuration.
+ */
+ core.String displayName;
+ /**
+ * Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+ * For duration longer than a day, only multiple of days is supported. We
+ * support only "100s" and "1d" for now. Additional support will be added in
+ * the future. "0" indicates indefinite duration.
+ *
+ * Used by group-based quotas only.
+ */
+ core.String duration;
+ /**
+ * Free tier value displayed in the Developers Console for this limit.
+ * The free tier is the number of tokens that will be subtracted from the
+ * billed amount when billing is enabled.
+ * This field can only be set on a limit with duration "1d", in a billable
+ * group; it is invalid on any other limit. If this field is not set, it
+ * defaults to 0, indicating that there is no free tier for this service.
+ *
+ * Used by group-based quotas only.
+ */
+ core.String freeTier;
+ /**
+ * Maximum number of tokens that can be consumed during the specified
+ * duration. Client application developers can override the default limit up
+ * to this maximum. If specified, this value cannot be set to a value less
+ * than the default limit. If not specified, it is set to the default limit.
+ *
+ * To allow clients to apply overrides with no upper bound, set this to -1,
+ * indicating unlimited maximum quota.
+ *
+ * Used by group-based quotas only.
+ */
+ core.String maxLimit;
+ /**
+ * The name of the metric this quota limit applies to. The quota limits with
+ * the same metric will be checked together during runtime. The metric must be
+ * defined within the service config.
+ *
+ * Used by metric-based quotas only.
+ */
+ core.String metric;
+ /**
+ * Name of the quota limit. The name is used to refer to the limit when
+ * overriding the default limit on per-consumer basis.
+ *
+ * For group-based quota limits, the name must be unique within the quota
+ * group. If a name is not provided, it will be generated from the limit_by
+ * and duration fields.
+ *
+ * For metric-based quota limits, the name must be provided, and it must be
+ * unique within the service. The name can only include alphanumeric
+ * characters as well as '-'.
+ *
+ * The maximum length of the limit name is 64 characters.
+ *
+ * The name of a limit is used as a unique identifier for this limit.
+ * Therefore, once a limit has been put into use, its name should be
+ * immutable. You can use the display_name field to provide a user-friendly
+ * name for the limit. The display name can be evolved over time without
+ * affecting the identity of the limit.
+ */
+ core.String name;
+ /**
+ * Specify the unit of the quota limit. It uses the same syntax as
+ * Metric.unit. The supported unit kinds are determined by the quota
+ * backend system.
+ *
+ * The [Google Service Control](https://cloud.google.com/service-control)
+ * supports the following unit components:
+ * * One of the time intevals:
+ * * "/min" for quota every minute.
+ * * "/d" for quota every 24 hours, starting 00:00 US Pacific Time.
+ * * Otherwise the quota won't be reset by time, such as storage limit.
+ * * One and only one of the granted containers:
+ * * "/{organization}" quota for an organization.
+ * * "/{project}" quota for a project.
+ * * "/{folder}" quota for a folder.
+ * * "/{resource}" quota for a universal resource.
+ * * Zero or more quota segmentation dimension. Not all combos are valid.
+ * * "/{region}" quota for every region. Not to be used with time intervals.
+ * * Otherwise the resources granted on the target is not segmented.
+ * * "/{zone}" quota for every zone. Not to be used with time intervals.
+ * * Otherwise the resources granted on the target is not segmented.
+ * * "/{resource}" quota for a resource associated with a project or org.
+ *
+ * Here are some examples:
+ * * "1/min/{project}" for quota per minute per project.
+ * * "1/min/{user}" for quota per minute per user.
+ * * "1/min/{organization}" for quota per minute per organization.
+ *
+ * Note: the order of unit components is insignificant.
+ * The "1" at the beginning is required to follow the metric unit syntax.
+ *
+ * Used by metric-based quotas only.
+ */
+ core.String unit;
+ /**
+ * Tiered limit values. Also allows for regional or zone overrides for these
+ * values if "/{region}" or "/{zone}" is specified in the unit field.
+ *
+ * Currently supported tiers from low to high:
+ * VERY_LOW, LOW, STANDARD, HIGH, VERY_HIGH
+ *
+ * To apply different limit values for users according to their tiers, specify
+ * the values for the tiers you want to differentiate. For example:
+ * {LOW:100, STANDARD:500, HIGH:1000, VERY_HIGH:5000}
+ *
+ * The limit value for each tier is optional except for the tier STANDARD.
+ * The limit value for an unspecified tier falls to the value of its next
+ * tier towards tier STANDARD. For the above example, the limit value for tier
+ * STANDARD is 500.
+ *
+ * To apply the same limit value for all users, just specify limit value for
+ * tier STANDARD. For example: {STANDARD:500}.
+ *
+ * To apply a regional overide for a tier, add a map entry with key
+ * "<TIER>/<region>", where <region> is a region name. Similarly, for a zone
+ * override, add a map entry with key "<TIER>/{zone}".
+ * Further, a wildcard can be used at the end of a zone name in order to
+ * specify zone level overrides. For example:
+ * LOW: 10, STANDARD: 50, HIGH: 100,
+ * LOW/us-central1: 20, STANDARD/us-central1: 60, HIGH/us-central1: 200,
+ * LOW/us-central1-*: 10, STANDARD/us-central1-*: 20, HIGH/us-central1-*: 80
+ *
+ * The regional overrides tier set for each region must be the same as
+ * the tier set for default limit values. Same rule applies for zone overrides
+ * tier as well.
+ *
+ * Used by metric-based quotas only.
+ */
+ core.Map<core.String, core.String> values;
+
+ QuotaLimit();
+
+ QuotaLimit.fromJson(core.Map _json) {
+ if (_json.containsKey("defaultLimit")) {
+ defaultLimit = _json["defaultLimit"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("duration")) {
+ duration = _json["duration"];
+ }
+ if (_json.containsKey("freeTier")) {
+ freeTier = _json["freeTier"];
+ }
+ if (_json.containsKey("maxLimit")) {
+ maxLimit = _json["maxLimit"];
+ }
+ if (_json.containsKey("metric")) {
+ metric = _json["metric"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("unit")) {
+ unit = _json["unit"];
+ }
+ if (_json.containsKey("values")) {
+ values = _json["values"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (defaultLimit != null) {
+ _json["defaultLimit"] = defaultLimit;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (duration != null) {
+ _json["duration"] = duration;
+ }
+ if (freeTier != null) {
+ _json["freeTier"] = freeTier;
+ }
+ if (maxLimit != null) {
+ _json["maxLimit"] = maxLimit;
+ }
+ if (metric != null) {
+ _json["metric"] = metric;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (unit != null) {
+ _json["unit"] = unit;
+ }
+ if (values != null) {
+ _json["values"] = values;
+ }
+ return _json;
+ }
+}
+
/** Response message for SearchServices method. */
class SearchServicesResponse {
/**
@@ -3305,6 +3703,8 @@ class Service {
* manage consumption of the service, etc.
*/
core.String producerProjectId;
+ /** Quota configuration. */
+ Quota quota;
/**
* Output only. The source information for this configuration if available.
*/
@@ -3400,6 +3800,9 @@ class Service {
if (_json.containsKey("producerProjectId")) {
producerProjectId = _json["producerProjectId"];
}
+ if (_json.containsKey("quota")) {
+ quota = new Quota.fromJson(_json["quota"]);
+ }
if (_json.containsKey("sourceInfo")) {
sourceInfo = new SourceInfo.fromJson(_json["sourceInfo"]);
}
@@ -3485,6 +3888,9 @@ class Service {
if (producerProjectId != null) {
_json["producerProjectId"] = producerProjectId;
}
+ if (quota != null) {
+ _json["quota"] = (quota).toJson();
+ }
if (sourceInfo != null) {
_json["sourceInfo"] = (sourceInfo).toJson();
}
« no previous file with comments | « generated/googleapis/lib/servicemanagement/v1.dart ('k') | generated/googleapis/lib/sheets/v4.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698