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

Unified Diff: generated/googleapis/lib/servicemanagement/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/runtimeconfig/v1.dart ('k') | generated/googleapis/lib/serviceuser/v1.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: generated/googleapis/lib/servicemanagement/v1.dart
diff --git a/generated/googleapis/lib/servicemanagement/v1.dart b/generated/googleapis/lib/servicemanagement/v1.dart
index 46b97a37d9a609e70b7400b0cb8536920351c43f..499540d99bca0c3e40f079078476aefbb86d8501 100644
--- a/generated/googleapis/lib/servicemanagement/v1.dart
+++ b/generated/googleapis/lib/servicemanagement/v1.dart
@@ -96,10 +96,6 @@ class OperationsResourceApi {
*
* Request parameters:
*
- * [name] - Not used.
- *
- * [pageToken] - The standard list page token.
- *
* [pageSize] - The maximum number of operations to return. If unspecified,
* defaults to
* 50. The maximum value is 100.
@@ -126,6 +122,10 @@ class OperationsResourceApi {
* * `serviceName={some-service}.googleapis.com AND (status=done OR
* startTime>="2017-02-01")`
*
+ * [name] - Not used.
+ *
+ * [pageToken] - The standard list page token.
+ *
* Completes with a [ListOperationsResponse].
*
* Completes with a [commons.ApiRequestError] if the API endpoint returned an
@@ -134,7 +134,7 @@ class OperationsResourceApi {
* If the used [http_1.Client] completes with an error when making a REST
* call, this method will complete with the same error.
*/
- async.Future<ListOperationsResponse> list({core.String name, core.String pageToken, core.int pageSize, core.String filter}) {
+ async.Future<ListOperationsResponse> list({core.int pageSize, core.String filter, core.String name, core.String pageToken}) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
@@ -142,18 +142,18 @@ class OperationsResourceApi {
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
- if (name != null) {
- _queryParams["name"] = [name];
- }
- if (pageToken != null) {
- _queryParams["pageToken"] = [pageToken];
- }
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
if (filter != null) {
_queryParams["filter"] = [filter];
}
+ if (name != null) {
+ _queryParams["name"] = [name];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
_url = 'v1/operations';
@@ -577,8 +577,6 @@ class ServicesResourceApi {
*
* Request parameters:
*
- * [producerProjectId] - Include services produced by the specified project.
- *
* [consumerId] - Include services consumed by the specified consumer.
*
* The Google Service Management implementation accepts the following
@@ -591,6 +589,8 @@ class ServicesResourceApi {
*
* [pageSize] - Requested size of the next page of data.
*
+ * [producerProjectId] - Include services produced by the specified project.
+ *
* Completes with a [ListServicesResponse].
*
* Completes with a [commons.ApiRequestError] if the API endpoint returned an
@@ -599,7 +599,7 @@ class ServicesResourceApi {
* If the used [http_1.Client] completes with an error when making a REST
* call, this method will complete with the same error.
*/
- async.Future<ListServicesResponse> list({core.String producerProjectId, core.String consumerId, core.String pageToken, core.int pageSize}) {
+ async.Future<ListServicesResponse> list({core.String consumerId, core.String pageToken, core.int pageSize, core.String producerProjectId}) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
@@ -607,9 +607,6 @@ class ServicesResourceApi {
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
- if (producerProjectId != null) {
- _queryParams["producerProjectId"] = [producerProjectId];
- }
if (consumerId != null) {
_queryParams["consumerId"] = [consumerId];
}
@@ -619,6 +616,9 @@ class ServicesResourceApi {
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
+ if (producerProjectId != null) {
+ _queryParams["producerProjectId"] = [producerProjectId];
+ }
_url = 'v1/services';
@@ -1119,10 +1119,10 @@ class ServicesRolloutsResourceApi {
* [overview](/service-management/overview)
* for naming requirements. For example: `example.googleapis.com`.
*
- * [pageSize] - The max number of items to include in the response list.
- *
* [pageToken] - The token of the page to retrieve.
*
+ * [pageSize] - The max number of items to include in the response list.
+ *
* Completes with a [ListServiceRolloutsResponse].
*
* Completes with a [commons.ApiRequestError] if the API endpoint returned an
@@ -1131,7 +1131,7 @@ class ServicesRolloutsResourceApi {
* If the used [http_1.Client] completes with an error when making a REST
* call, this method will complete with the same error.
*/
- async.Future<ListServiceRolloutsResponse> list(core.String serviceName, {core.int pageSize, core.String pageToken}) {
+ async.Future<ListServiceRolloutsResponse> list(core.String serviceName, {core.String pageToken, core.int pageSize}) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
@@ -1142,12 +1142,12 @@ class ServicesRolloutsResourceApi {
if (serviceName == null) {
throw new core.ArgumentError("Parameter serviceName is required.");
}
- if (pageSize != null) {
- _queryParams["pageSize"] = ["${pageSize}"];
- }
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
_url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/rollouts';
@@ -1305,42 +1305,45 @@ class Api {
* the union of the two AuditConfigs is used for that service: the log_types
* specified in each AuditConfig are enabled, and the exempted_members in each
* AuditConfig are exempted.
+ *
* Example Policy with multiple AuditConfigs:
- * {
- * "audit_configs": [
+ *
* {
- * "service": "allServices"
- * "audit_log_configs": [
+ * "audit_configs": [
* {
- * "log_type": "DATA_READ",
- * "exempted_members": [
- * "user:foo@gmail.com"
+ * "service": "allServices"
+ * "audit_log_configs": [
+ * {
+ * "log_type": "DATA_READ",
+ * "exempted_members": [
+ * "user:foo@gmail.com"
+ * ]
+ * },
+ * {
+ * "log_type": "DATA_WRITE",
+ * },
+ * {
+ * "log_type": "ADMIN_READ",
+ * }
* ]
* },
* {
- * "log_type": "DATA_WRITE",
- * },
- * {
- * "log_type": "ADMIN_READ",
- * }
- * ]
- * },
- * {
- * "service": "fooservice@googleapis.com"
- * "audit_log_configs": [
- * {
- * "log_type": "DATA_READ",
- * },
- * {
- * "log_type": "DATA_WRITE",
- * "exempted_members": [
- * "user:bar@gmail.com"
+ * "service": "fooservice.googleapis.com"
+ * "audit_log_configs": [
+ * {
+ * "log_type": "DATA_READ",
+ * },
+ * {
+ * "log_type": "DATA_WRITE",
+ * "exempted_members": [
+ * "user:bar@gmail.com"
+ * ]
+ * }
* ]
* }
* ]
* }
- * ]
- * }
+ *
* For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
* logging. It also exempts foo@gmail.com from DATA_READ logging, and
* bar@gmail.com from DATA_WRITE logging.
@@ -2874,6 +2877,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();
@@ -2893,6 +2904,9 @@ class Endpoint {
if (_json.containsKey("name")) {
name = _json["name"];
}
+ if (_json.containsKey("target")) {
+ target = _json["target"];
+ }
}
core.Map toJson() {
@@ -2912,6 +2926,9 @@ class Endpoint {
if (name != null) {
_json["name"] = name;
}
+ if (target != null) {
+ _json["target"] = target;
+ }
return _json;
}
}
@@ -3200,8 +3217,6 @@ class FlowOperationMetadata {
* Must be equal to the "name" field for a FlowName enum.
*/
core.String flowName;
- /** Is the update for the operation persisted? */
- core.bool isPersisted;
/**
* The full name of the resources that this flow is directly associated with.
*/
@@ -3221,9 +3236,6 @@ class FlowOperationMetadata {
if (_json.containsKey("flowName")) {
flowName = _json["flowName"];
}
- if (_json.containsKey("isPersisted")) {
- isPersisted = _json["isPersisted"];
- }
if (_json.containsKey("resourceNames")) {
resourceNames = _json["resourceNames"];
}
@@ -3243,9 +3255,6 @@ class FlowOperationMetadata {
if (flowName != null) {
_json["flowName"] = flowName;
}
- if (isPersisted != null) {
- _json["isPersisted"] = isPersisted;
- }
if (resourceNames != null) {
_json["resourceNames"] = resourceNames;
}
@@ -3378,6 +3387,15 @@ class GetIamPolicyRequest {
*/
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.
@@ -3387,6 +3405,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();
}
@@ -3394,6 +3415,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();
}
@@ -4527,6 +4551,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:
@@ -5259,6 +5330,328 @@ class Policy {
}
/**
+ * 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;
+ }
+}
+
+/**
* A rollout resource that defines how service configuration versions are pushed
* to control plane systems. Typically, you create a new version of the
* service config, and then create a Rollout to push the service config.
@@ -5562,6 +5955,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.
*/
@@ -5657,6 +6052,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"]);
}
@@ -5742,6 +6140,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/runtimeconfig/v1.dart ('k') | generated/googleapis/lib/serviceuser/v1.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698