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

Side by Side Diff: generated/googleapis/lib/serviceuser/v1.dart

Issue 3006323002: Api-Roll 54: 2017-09-11 (Closed)
Patch Set: use 2.0.0-dev.infinity sdk constraint in pubspecs Created 3 years, 3 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 unified diff | Download patch
OLDNEW
1 // This is a generated file (see the discoveryapis_generator project). 1 // This is a generated file (see the discoveryapis_generator project).
2 2
3 library googleapis.serviceuser.v1; 3 library googleapis.serviceuser.v1;
4 4
5 import 'dart:core' as core; 5 import 'dart:core' as core;
6 import 'dart:async' as async; 6 import 'dart:async' as async;
7 import 'dart:convert' as convert; 7 import 'dart:convert' as convert;
8 8
9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; 9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
10 import 'package:http/http.dart' as http_1; 10 import 'package:http/http.dart' as http_1;
11 11
12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show 12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
13 ApiRequestError, DetailedApiRequestError; 13 show ApiRequestError, DetailedApiRequestError;
14 14
15 const core.String USER_AGENT = 'dart-api-client serviceuser/v1'; 15 const core.String USER_AGENT = 'dart-api-client serviceuser/v1';
16 16
17 /** 17 /// Enables services that service consumers want to use on Google Cloud
18 * Enables services that service consumers want to use on Google Cloud Platform, 18 /// Platform, lists the available or enabled services, or disables services
19 * lists the available or enabled services, or disables services that service 19 /// that service consumers no longer use.
20 * consumers no longer use.
21 */
22 class ServiceuserApi { 20 class ServiceuserApi {
23 /** View and manage your data across Google Cloud Platform services */ 21 /// View and manage your data across Google Cloud Platform services
24 static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platf orm"; 22 static const CloudPlatformScope =
23 "https://www.googleapis.com/auth/cloud-platform";
25 24
26 /** View your data across Google Cloud Platform services */ 25 /// View your data across Google Cloud Platform services
27 static const CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/clo ud-platform.read-only"; 26 static const CloudPlatformReadOnlyScope =
27 "https://www.googleapis.com/auth/cloud-platform.read-only";
28 28
29 /** Manage your Google API service configuration */ 29 /// Manage your Google API service configuration
30 static const ServiceManagementScope = "https://www.googleapis.com/auth/service .management"; 30 static const ServiceManagementScope =
31 31 "https://www.googleapis.com/auth/service.management";
32 32
33 final commons.ApiRequester _requester; 33 final commons.ApiRequester _requester;
34 34
35 ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); 35 ProjectsResourceApi get projects => new ProjectsResourceApi(_requester);
36 ServicesResourceApi get services => new ServicesResourceApi(_requester); 36 ServicesResourceApi get services => new ServicesResourceApi(_requester);
37 37
38 ServiceuserApi(http_1.Client client, {core.String rootUrl: "https://serviceuse r.googleapis.com/", core.String servicePath: ""}) : 38 ServiceuserApi(http_1.Client client,
39 _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_A GENT); 39 {core.String rootUrl: "https://serviceuser.googleapis.com/",
40 core.String servicePath: ""})
41 : _requester =
42 new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
40 } 43 }
41 44
42
43 class ProjectsResourceApi { 45 class ProjectsResourceApi {
44 final commons.ApiRequester _requester; 46 final commons.ApiRequester _requester;
45 47
46 ProjectsServicesResourceApi get services => new ProjectsServicesResourceApi(_r equester); 48 ProjectsServicesResourceApi get services =>
49 new ProjectsServicesResourceApi(_requester);
47 50
48 ProjectsResourceApi(commons.ApiRequester client) : 51 ProjectsResourceApi(commons.ApiRequester client) : _requester = client;
49 _requester = client;
50 } 52 }
51 53
52
53 class ProjectsServicesResourceApi { 54 class ProjectsServicesResourceApi {
54 final commons.ApiRequester _requester; 55 final commons.ApiRequester _requester;
55 56
56 ProjectsServicesResourceApi(commons.ApiRequester client) : 57 ProjectsServicesResourceApi(commons.ApiRequester client)
57 _requester = client; 58 : _requester = client;
58 59
59 /** 60 /// Disable a service so it can no longer be used with a
60 * Disable a service so it can no longer be used with a 61 /// project. This prevents unintended usage that may cause unexpected billing
61 * project. This prevents unintended usage that may cause unexpected billing 62 /// charges or security leaks.
62 * charges or security leaks. 63 ///
63 * 64 /// Operation<response: google.protobuf.Empty>
64 * Operation<response: google.protobuf.Empty> 65 ///
65 * 66 /// [request] - The metadata request object.
66 * [request] - The metadata request object. 67 ///
67 * 68 /// Request parameters:
68 * Request parameters: 69 ///
69 * 70 /// [name] - Name of the consumer and the service to disable for that
70 * [name] - Name of the consumer and the service to disable for that consumer. 71 /// consumer.
71 * 72 ///
72 * The Service User implementation accepts the following forms for consumer: 73 /// The Service User implementation accepts the following forms for consumer:
73 * - "project:<project_id>" 74 /// - "project:<project_id>"
74 * 75 ///
75 * A valid path would be: 76 /// A valid path would be:
76 * - /v1/projects/my-project/services/servicemanagement.googleapis.com:disable 77 /// -
77 * Value must have pattern "^projects/[^/]+/services/[^/]+$". 78 /// /v1/projects/my-project/services/servicemanagement.googleapis.com:disable
78 * 79 /// Value must have pattern "^projects/[^/]+/services/[^/]+$".
79 * Completes with a [Operation]. 80 ///
80 * 81 /// Completes with a [Operation].
81 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 82 ///
82 * error. 83 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
83 * 84 /// an error.
84 * If the used [http_1.Client] completes with an error when making a REST 85 ///
85 * call, this method will complete with the same error. 86 /// If the used [http_1.Client] completes with an error when making a REST
86 */ 87 /// call, this method will complete with the same error.
87 async.Future<Operation> disable(DisableServiceRequest request, core.String nam e) { 88 async.Future<Operation> disable(
89 DisableServiceRequest request, core.String name) {
88 var _url = null; 90 var _url = null;
89 var _queryParams = new core.Map(); 91 var _queryParams = new core.Map();
90 var _uploadMedia = null; 92 var _uploadMedia = null;
91 var _uploadOptions = null; 93 var _uploadOptions = null;
92 var _downloadOptions = commons.DownloadOptions.Metadata; 94 var _downloadOptions = commons.DownloadOptions.Metadata;
93 var _body = null; 95 var _body = null;
94 96
95 if (request != null) { 97 if (request != null) {
96 _body = convert.JSON.encode((request).toJson()); 98 _body = convert.JSON.encode((request).toJson());
97 } 99 }
98 if (name == null) { 100 if (name == null) {
99 throw new core.ArgumentError("Parameter name is required."); 101 throw new core.ArgumentError("Parameter name is required.");
100 } 102 }
101 103
102 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':disable'; 104 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':disable';
103 105
104 var _response = _requester.request(_url, 106 var _response = _requester.request(_url, "POST",
105 "POST", 107 body: _body,
106 body: _body, 108 queryParams: _queryParams,
107 queryParams: _queryParams, 109 uploadOptions: _uploadOptions,
108 uploadOptions: _uploadOptions, 110 uploadMedia: _uploadMedia,
109 uploadMedia: _uploadMedia, 111 downloadOptions: _downloadOptions);
110 downloadOptions: _downloadOptions);
111 return _response.then((data) => new Operation.fromJson(data)); 112 return _response.then((data) => new Operation.fromJson(data));
112 } 113 }
113 114
114 /** 115 /// Enable a service so it can be used with a project.
115 * Enable a service so it can be used with a project. 116 /// See [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for
116 * See [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for 117 /// more information.
117 * more information. 118 ///
118 * 119 /// Operation<response: google.protobuf.Empty>
119 * Operation<response: google.protobuf.Empty> 120 ///
120 * 121 /// [request] - The metadata request object.
121 * [request] - The metadata request object. 122 ///
122 * 123 /// Request parameters:
123 * Request parameters: 124 ///
124 * 125 /// [name] - Name of the consumer and the service to enable for that
125 * [name] - Name of the consumer and the service to enable for that consumer. 126 /// consumer.
126 * 127 ///
127 * A valid path would be: 128 /// A valid path would be:
128 * - /v1/projects/my-project/services/servicemanagement.googleapis.com:enable 129 /// -
129 * Value must have pattern "^projects/[^/]+/services/[^/]+$". 130 /// /v1/projects/my-project/services/servicemanagement.googleapis.com:enable
130 * 131 /// Value must have pattern "^projects/[^/]+/services/[^/]+$".
131 * Completes with a [Operation]. 132 ///
132 * 133 /// Completes with a [Operation].
133 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 134 ///
134 * error. 135 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
135 * 136 /// an error.
136 * If the used [http_1.Client] completes with an error when making a REST 137 ///
137 * call, this method will complete with the same error. 138 /// If the used [http_1.Client] completes with an error when making a REST
138 */ 139 /// call, this method will complete with the same error.
139 async.Future<Operation> enable(EnableServiceRequest request, core.String name) { 140 async.Future<Operation> enable(
141 EnableServiceRequest request, core.String name) {
140 var _url = null; 142 var _url = null;
141 var _queryParams = new core.Map(); 143 var _queryParams = new core.Map();
142 var _uploadMedia = null; 144 var _uploadMedia = null;
143 var _uploadOptions = null; 145 var _uploadOptions = null;
144 var _downloadOptions = commons.DownloadOptions.Metadata; 146 var _downloadOptions = commons.DownloadOptions.Metadata;
145 var _body = null; 147 var _body = null;
146 148
147 if (request != null) { 149 if (request != null) {
148 _body = convert.JSON.encode((request).toJson()); 150 _body = convert.JSON.encode((request).toJson());
149 } 151 }
150 if (name == null) { 152 if (name == null) {
151 throw new core.ArgumentError("Parameter name is required."); 153 throw new core.ArgumentError("Parameter name is required.");
152 } 154 }
153 155
154 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':enable'; 156 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':enable';
155 157
156 var _response = _requester.request(_url, 158 var _response = _requester.request(_url, "POST",
157 "POST", 159 body: _body,
158 body: _body, 160 queryParams: _queryParams,
159 queryParams: _queryParams, 161 uploadOptions: _uploadOptions,
160 uploadOptions: _uploadOptions, 162 uploadMedia: _uploadMedia,
161 uploadMedia: _uploadMedia, 163 downloadOptions: _downloadOptions);
162 downloadOptions: _downloadOptions);
163 return _response.then((data) => new Operation.fromJson(data)); 164 return _response.then((data) => new Operation.fromJson(data));
164 } 165 }
165 166
166 /** 167 /// List enabled services for the specified consumer.
167 * List enabled services for the specified consumer. 168 ///
168 * 169 /// Request parameters:
169 * Request parameters: 170 ///
170 * 171 /// [parent] - List enabled services for the specified parent.
171 * [parent] - List enabled services for the specified parent. 172 ///
172 * 173 /// An example valid parent would be:
173 * An example valid parent would be: 174 /// - projects/my-project
174 * - projects/my-project 175 /// Value must have pattern "^projects/[^/]+$".
175 * Value must have pattern "^projects/[^/]+$". 176 ///
176 * 177 /// [pageSize] - Requested size of the next page of data.
177 * [pageToken] - Token identifying which result to start with; returned by a 178 ///
178 * previous list 179 /// [pageToken] - Token identifying which result to start with; returned by a
179 * call. 180 /// previous list
180 * 181 /// call.
181 * [pageSize] - Requested size of the next page of data. 182 ///
182 * 183 /// Completes with a [ListEnabledServicesResponse].
183 * Completes with a [ListEnabledServicesResponse]. 184 ///
184 * 185 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
185 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 186 /// an error.
186 * error. 187 ///
187 * 188 /// If the used [http_1.Client] completes with an error when making a REST
188 * If the used [http_1.Client] completes with an error when making a REST 189 /// call, this method will complete with the same error.
189 * call, this method will complete with the same error. 190 async.Future<ListEnabledServicesResponse> list(core.String parent,
190 */ 191 {core.int pageSize, core.String pageToken}) {
191 async.Future<ListEnabledServicesResponse> list(core.String parent, {core.Strin g pageToken, core.int pageSize}) {
192 var _url = null; 192 var _url = null;
193 var _queryParams = new core.Map(); 193 var _queryParams = new core.Map();
194 var _uploadMedia = null; 194 var _uploadMedia = null;
195 var _uploadOptions = null; 195 var _uploadOptions = null;
196 var _downloadOptions = commons.DownloadOptions.Metadata; 196 var _downloadOptions = commons.DownloadOptions.Metadata;
197 var _body = null; 197 var _body = null;
198 198
199 if (parent == null) { 199 if (parent == null) {
200 throw new core.ArgumentError("Parameter parent is required."); 200 throw new core.ArgumentError("Parameter parent is required.");
201 } 201 }
202 if (pageSize != null) {
203 _queryParams["pageSize"] = ["${pageSize}"];
204 }
202 if (pageToken != null) { 205 if (pageToken != null) {
203 _queryParams["pageToken"] = [pageToken]; 206 _queryParams["pageToken"] = [pageToken];
204 } 207 }
205 if (pageSize != null) {
206 _queryParams["pageSize"] = ["${pageSize}"];
207 }
208 208
209 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/services '; 209 _url =
210 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/services';
210 211
211 var _response = _requester.request(_url, 212 var _response = _requester.request(_url, "GET",
212 "GET", 213 body: _body,
213 body: _body, 214 queryParams: _queryParams,
214 queryParams: _queryParams, 215 uploadOptions: _uploadOptions,
215 uploadOptions: _uploadOptions, 216 uploadMedia: _uploadMedia,
216 uploadMedia: _uploadMedia, 217 downloadOptions: _downloadOptions);
217 downloadOptions: _downloadOptions); 218 return _response
218 return _response.then((data) => new ListEnabledServicesResponse.fromJson(dat a)); 219 .then((data) => new ListEnabledServicesResponse.fromJson(data));
219 } 220 }
220
221 } 221 }
222 222
223
224 class ServicesResourceApi { 223 class ServicesResourceApi {
225 final commons.ApiRequester _requester; 224 final commons.ApiRequester _requester;
226 225
227 ServicesResourceApi(commons.ApiRequester client) : 226 ServicesResourceApi(commons.ApiRequester client) : _requester = client;
228 _requester = client;
229 227
230 /** 228 /// Search available services.
231 * Search available services. 229 ///
232 * 230 /// When no filter is specified, returns all accessible services. For
233 * When no filter is specified, returns all accessible services. For 231 /// authenticated users, also returns all services the calling user has
234 * authenticated users, also returns all services the calling user has 232 /// "servicemanagement.services.bind" permission for.
235 * "servicemanagement.services.bind" permission for. 233 ///
236 * 234 /// Request parameters:
237 * Request parameters: 235 ///
238 * 236 /// [pageToken] - Token identifying which result to start with; returned by a
239 * [pageToken] - Token identifying which result to start with; returned by a 237 /// previous list
240 * previous list 238 /// call.
241 * call. 239 ///
242 * 240 /// [pageSize] - Requested size of the next page of data.
243 * [pageSize] - Requested size of the next page of data. 241 ///
244 * 242 /// Completes with a [SearchServicesResponse].
245 * Completes with a [SearchServicesResponse]. 243 ///
246 * 244 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
247 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 245 /// an error.
248 * error. 246 ///
249 * 247 /// If the used [http_1.Client] completes with an error when making a REST
250 * If the used [http_1.Client] completes with an error when making a REST 248 /// call, this method will complete with the same error.
251 * call, this method will complete with the same error. 249 async.Future<SearchServicesResponse> search(
252 */ 250 {core.String pageToken, core.int pageSize}) {
253 async.Future<SearchServicesResponse> search({core.String pageToken, core.int p ageSize}) {
254 var _url = null; 251 var _url = null;
255 var _queryParams = new core.Map(); 252 var _queryParams = new core.Map();
256 var _uploadMedia = null; 253 var _uploadMedia = null;
257 var _uploadOptions = null; 254 var _uploadOptions = null;
258 var _downloadOptions = commons.DownloadOptions.Metadata; 255 var _downloadOptions = commons.DownloadOptions.Metadata;
259 var _body = null; 256 var _body = null;
260 257
261 if (pageToken != null) { 258 if (pageToken != null) {
262 _queryParams["pageToken"] = [pageToken]; 259 _queryParams["pageToken"] = [pageToken];
263 } 260 }
264 if (pageSize != null) { 261 if (pageSize != null) {
265 _queryParams["pageSize"] = ["${pageSize}"]; 262 _queryParams["pageSize"] = ["${pageSize}"];
266 } 263 }
267 264
268 _url = 'v1/services:search'; 265 _url = 'v1/services:search';
269 266
270 var _response = _requester.request(_url, 267 var _response = _requester.request(_url, "GET",
271 "GET", 268 body: _body,
272 body: _body, 269 queryParams: _queryParams,
273 queryParams: _queryParams, 270 uploadOptions: _uploadOptions,
274 uploadOptions: _uploadOptions, 271 uploadMedia: _uploadMedia,
275 uploadMedia: _uploadMedia, 272 downloadOptions: _downloadOptions);
276 downloadOptions: _downloadOptions);
277 return _response.then((data) => new SearchServicesResponse.fromJson(data)); 273 return _response.then((data) => new SearchServicesResponse.fromJson(data));
278 } 274 }
279
280 } 275 }
281 276
277 /// Api is a light-weight descriptor for an API Interface.
278 ///
279 /// Interfaces are also described as "protocol buffer services" in some
280 /// contexts,
281 /// such as by the "service" keyword in a .proto file, but they are different
282 /// from API Services, which represent a concrete implementation of an
283 /// interface
284 /// as opposed to simply a description of methods and bindings. They are also
285 /// sometimes simply referred to as "APIs" in other contexts, such as the name
286 /// of
287 /// this message itself. See https://cloud.google.com/apis/design/glossary for
288 /// detailed terminology.
289 class Api {
290 /// The methods of this interface, in unspecified order.
291 core.List<Method> methods;
282 292
293 /// Included interfaces. See Mixin.
294 core.List<Mixin> mixins;
283 295
284 /** 296 /// The fully qualified name of this interface, including package name
285 * Api is a light-weight descriptor for an API Interface. 297 /// followed by the interface's simple name.
286 *
287 * Interfaces are also described as "protocol buffer services" in some contexts,
288 * such as by the "service" keyword in a .proto file, but they are different
289 * from API Services, which represent a concrete implementation of an interface
290 * as opposed to simply a description of methods and bindings. They are also
291 * sometimes simply referred to as "APIs" in other contexts, such as the name of
292 * this message itself. See https://cloud.google.com/apis/design/glossary for
293 * detailed terminology.
294 */
295 class Api {
296 /** The methods of this interface, in unspecified order. */
297 core.List<Method> methods;
298 /** Included interfaces. See Mixin. */
299 core.List<Mixin> mixins;
300 /**
301 * The fully qualified name of this interface, including package name
302 * followed by the interface's simple name.
303 */
304 core.String name; 298 core.String name;
305 /** Any metadata attached to the interface. */ 299
300 /// Any metadata attached to the interface.
306 core.List<Option> options; 301 core.List<Option> options;
307 /** 302
308 * Source context for the protocol buffer service represented by this 303 /// Source context for the protocol buffer service represented by this
309 * message. 304 /// message.
310 */
311 SourceContext sourceContext; 305 SourceContext sourceContext;
312 /** 306
313 * The source syntax of the service. 307 /// The source syntax of the service.
314 * Possible string values are: 308 /// Possible string values are:
315 * - "SYNTAX_PROTO2" : Syntax `proto2`. 309 /// - "SYNTAX_PROTO2" : Syntax `proto2`.
316 * - "SYNTAX_PROTO3" : Syntax `proto3`. 310 /// - "SYNTAX_PROTO3" : Syntax `proto3`.
317 */
318 core.String syntax; 311 core.String syntax;
319 /** 312
320 * A version string for this interface. If specified, must have the form 313 /// A version string for this interface. If specified, must have the form
321 * `major-version.minor-version`, as in `1.10`. If the minor version is 314 /// `major-version.minor-version`, as in `1.10`. If the minor version is
322 * omitted, it defaults to zero. If the entire version field is empty, the 315 /// omitted, it defaults to zero. If the entire version field is empty, the
323 * major version is derived from the package name, as outlined below. If the 316 /// major version is derived from the package name, as outlined below. If the
324 * field is not empty, the version in the package name will be verified to be 317 /// field is not empty, the version in the package name will be verified to
325 * consistent with what is provided here. 318 /// be
326 * 319 /// consistent with what is provided here.
327 * The versioning schema uses [semantic 320 ///
328 * versioning](http://semver.org) where the major version number 321 /// The versioning schema uses [semantic
329 * indicates a breaking change and the minor version an additive, 322 /// versioning](http://semver.org) where the major version number
330 * non-breaking change. Both version numbers are signals to users 323 /// indicates a breaking change and the minor version an additive,
331 * what to expect from different versions, and should be carefully 324 /// non-breaking change. Both version numbers are signals to users
332 * chosen based on the product plan. 325 /// what to expect from different versions, and should be carefully
333 * 326 /// chosen based on the product plan.
334 * The major version is also reflected in the package name of the 327 ///
335 * interface, which must end in `v<major-version>`, as in 328 /// The major version is also reflected in the package name of the
336 * `google.feature.v1`. For major versions 0 and 1, the suffix can 329 /// interface, which must end in `v<major-version>`, as in
337 * be omitted. Zero major versions must only be used for 330 /// `google.feature.v1`. For major versions 0 and 1, the suffix can
338 * experimental, non-GA interfaces. 331 /// be omitted. Zero major versions must only be used for
339 */ 332 /// experimental, non-GA interfaces.
340 core.String version; 333 core.String version;
341 334
342 Api(); 335 Api();
343 336
344 Api.fromJson(core.Map _json) { 337 Api.fromJson(core.Map _json) {
345 if (_json.containsKey("methods")) { 338 if (_json.containsKey("methods")) {
346 methods = _json["methods"].map((value) => new Method.fromJson(value)).toLi st(); 339 methods =
340 _json["methods"].map((value) => new Method.fromJson(value)).toList();
347 } 341 }
348 if (_json.containsKey("mixins")) { 342 if (_json.containsKey("mixins")) {
349 mixins = _json["mixins"].map((value) => new Mixin.fromJson(value)).toList( ); 343 mixins =
344 _json["mixins"].map((value) => new Mixin.fromJson(value)).toList();
350 } 345 }
351 if (_json.containsKey("name")) { 346 if (_json.containsKey("name")) {
352 name = _json["name"]; 347 name = _json["name"];
353 } 348 }
354 if (_json.containsKey("options")) { 349 if (_json.containsKey("options")) {
355 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 350 options =
351 _json["options"].map((value) => new Option.fromJson(value)).toList();
356 } 352 }
357 if (_json.containsKey("sourceContext")) { 353 if (_json.containsKey("sourceContext")) {
358 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); 354 sourceContext = new SourceContext.fromJson(_json["sourceContext"]);
359 } 355 }
360 if (_json.containsKey("syntax")) { 356 if (_json.containsKey("syntax")) {
361 syntax = _json["syntax"]; 357 syntax = _json["syntax"];
362 } 358 }
363 if (_json.containsKey("version")) { 359 if (_json.containsKey("version")) {
364 version = _json["version"]; 360 version = _json["version"];
365 } 361 }
366 } 362 }
367 363
368 core.Map<core.String, core.Object> toJson() { 364 core.Map<core.String, core.Object> toJson() {
369 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 365 final core.Map<core.String, core.Object> _json =
366 new core.Map<core.String, core.Object>();
370 if (methods != null) { 367 if (methods != null) {
371 _json["methods"] = methods.map((value) => (value).toJson()).toList(); 368 _json["methods"] = methods.map((value) => (value).toJson()).toList();
372 } 369 }
373 if (mixins != null) { 370 if (mixins != null) {
374 _json["mixins"] = mixins.map((value) => (value).toJson()).toList(); 371 _json["mixins"] = mixins.map((value) => (value).toJson()).toList();
375 } 372 }
376 if (name != null) { 373 if (name != null) {
377 _json["name"] = name; 374 _json["name"] = name;
378 } 375 }
379 if (options != null) { 376 if (options != null) {
380 _json["options"] = options.map((value) => (value).toJson()).toList(); 377 _json["options"] = options.map((value) => (value).toJson()).toList();
381 } 378 }
382 if (sourceContext != null) { 379 if (sourceContext != null) {
383 _json["sourceContext"] = (sourceContext).toJson(); 380 _json["sourceContext"] = (sourceContext).toJson();
384 } 381 }
385 if (syntax != null) { 382 if (syntax != null) {
386 _json["syntax"] = syntax; 383 _json["syntax"] = syntax;
387 } 384 }
388 if (version != null) { 385 if (version != null) {
389 _json["version"] = version; 386 _json["version"] = version;
390 } 387 }
391 return _json; 388 return _json;
392 } 389 }
393 } 390 }
394 391
395 /** 392 /// Configuration for an anthentication provider, including support for
396 * Configuration for an anthentication provider, including support for 393 /// [JSON Web Token
397 * [JSON Web Token 394 /// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
398 * (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
399 */
400 class AuthProvider { 395 class AuthProvider {
401 /** 396 /// The list of JWT
402 * The list of JWT 397 /// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32 #section-4.1.3).
403 * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# section-4.1.3). 398 /// that are allowed to access. A JWT containing any of these audiences will
404 * that are allowed to access. A JWT containing any of these audiences will 399 /// be accepted. When this setting is absent, only JWTs with audience
405 * be accepted. When this setting is absent, only JWTs with audience 400 /// "https://Service_name/API_name"
406 * "https://Service_name/API_name" 401 /// will be accepted. For example, if no audiences are in the setting,
407 * will be accepted. For example, if no audiences are in the setting, 402 /// LibraryService API will only accept JWTs with the following audience
408 * LibraryService API will only accept JWTs with the following audience 403 /// "https://library-example.googleapis.com/google.example.library.v1.LibraryS ervice".
409 * "https://library-example.googleapis.com/google.example.library.v1.LibrarySe rvice". 404 ///
410 * 405 /// Example:
411 * Example: 406 ///
412 * 407 /// audiences: bookstore_android.apps.googleusercontent.com,
413 * audiences: bookstore_android.apps.googleusercontent.com, 408 /// bookstore_web.apps.googleusercontent.com
414 * bookstore_web.apps.googleusercontent.com
415 */
416 core.String audiences; 409 core.String audiences;
417 /** 410
418 * Redirect URL if JWT token is required but no present or is expired. 411 /// Redirect URL if JWT token is required but no present or is expired.
419 * Implement authorizationUrl of securityDefinitions in OpenAPI spec. 412 /// Implement authorizationUrl of securityDefinitions in OpenAPI spec.
420 */
421 core.String authorizationUrl; 413 core.String authorizationUrl;
422 /** 414
423 * The unique identifier of the auth provider. It will be referred to by 415 /// The unique identifier of the auth provider. It will be referred to by
424 * `AuthRequirement.provider_id`. 416 /// `AuthRequirement.provider_id`.
425 * 417 ///
426 * Example: "bookstore_auth". 418 /// Example: "bookstore_auth".
427 */
428 core.String id; 419 core.String id;
429 /** 420
430 * Identifies the principal that issued the JWT. See 421 /// Identifies the principal that issued the JWT. See
431 * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1. 1 422 /// https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1 .1
432 * Usually a URL or an email address. 423 /// Usually a URL or an email address.
433 * 424 ///
434 * Example: https://securetoken.google.com 425 /// Example: https://securetoken.google.com
435 * Example: 1234567-compute@developer.gserviceaccount.com 426 /// Example: 1234567-compute@developer.gserviceaccount.com
436 */
437 core.String issuer; 427 core.String issuer;
438 /** 428
439 * URL of the provider's public key set to validate signature of the JWT. See 429 /// URL of the provider's public key set to validate signature of the JWT.
440 * [OpenID 430 /// See
441 * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#Provi derMetadata). 431 /// [OpenID
442 * Optional if the key set document: 432 /// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#Prov iderMetadata).
443 * - can be retrieved from 433 /// Optional if the key set document:
444 * [OpenID 434 /// - can be retrieved from
445 * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html 435 /// [OpenID
446 * of the issuer. 436 /// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
447 * - can be inferred from the email domain of the issuer (e.g. a Google 437 /// of the issuer.
448 * service account). 438 /// - can be inferred from the email domain of the issuer (e.g. a Google
449 * 439 /// service account).
450 * Example: https://www.googleapis.com/oauth2/v1/certs 440 ///
451 */ 441 /// Example: https://www.googleapis.com/oauth2/v1/certs
452 core.String jwksUri; 442 core.String jwksUri;
453 443
454 AuthProvider(); 444 AuthProvider();
455 445
456 AuthProvider.fromJson(core.Map _json) { 446 AuthProvider.fromJson(core.Map _json) {
457 if (_json.containsKey("audiences")) { 447 if (_json.containsKey("audiences")) {
458 audiences = _json["audiences"]; 448 audiences = _json["audiences"];
459 } 449 }
460 if (_json.containsKey("authorizationUrl")) { 450 if (_json.containsKey("authorizationUrl")) {
461 authorizationUrl = _json["authorizationUrl"]; 451 authorizationUrl = _json["authorizationUrl"];
462 } 452 }
463 if (_json.containsKey("id")) { 453 if (_json.containsKey("id")) {
464 id = _json["id"]; 454 id = _json["id"];
465 } 455 }
466 if (_json.containsKey("issuer")) { 456 if (_json.containsKey("issuer")) {
467 issuer = _json["issuer"]; 457 issuer = _json["issuer"];
468 } 458 }
469 if (_json.containsKey("jwksUri")) { 459 if (_json.containsKey("jwksUri")) {
470 jwksUri = _json["jwksUri"]; 460 jwksUri = _json["jwksUri"];
471 } 461 }
472 } 462 }
473 463
474 core.Map<core.String, core.Object> toJson() { 464 core.Map<core.String, core.Object> toJson() {
475 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 465 final core.Map<core.String, core.Object> _json =
466 new core.Map<core.String, core.Object>();
476 if (audiences != null) { 467 if (audiences != null) {
477 _json["audiences"] = audiences; 468 _json["audiences"] = audiences;
478 } 469 }
479 if (authorizationUrl != null) { 470 if (authorizationUrl != null) {
480 _json["authorizationUrl"] = authorizationUrl; 471 _json["authorizationUrl"] = authorizationUrl;
481 } 472 }
482 if (id != null) { 473 if (id != null) {
483 _json["id"] = id; 474 _json["id"] = id;
484 } 475 }
485 if (issuer != null) { 476 if (issuer != null) {
486 _json["issuer"] = issuer; 477 _json["issuer"] = issuer;
487 } 478 }
488 if (jwksUri != null) { 479 if (jwksUri != null) {
489 _json["jwksUri"] = jwksUri; 480 _json["jwksUri"] = jwksUri;
490 } 481 }
491 return _json; 482 return _json;
492 } 483 }
493 } 484 }
494 485
495 /** 486 /// User-defined authentication requirements, including support for
496 * User-defined authentication requirements, including support for 487 /// [JSON Web Token
497 * [JSON Web Token 488 /// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
498 * (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
499 */
500 class AuthRequirement { 489 class AuthRequirement {
501 /** 490 /// NOTE: This will be deprecated soon, once AuthProvider.audiences is
502 * NOTE: This will be deprecated soon, once AuthProvider.audiences is 491 /// implemented and accepted in all the runtime components.
503 * implemented and accepted in all the runtime components. 492 ///
504 * 493 /// The list of JWT
505 * The list of JWT 494 /// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32 #section-4.1.3).
506 * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32# section-4.1.3). 495 /// that are allowed to access. A JWT containing any of these audiences will
507 * that are allowed to access. A JWT containing any of these audiences will 496 /// be accepted. When this setting is absent, only JWTs with audience
508 * be accepted. When this setting is absent, only JWTs with audience 497 /// "https://Service_name/API_name"
509 * "https://Service_name/API_name" 498 /// will be accepted. For example, if no audiences are in the setting,
510 * will be accepted. For example, if no audiences are in the setting, 499 /// LibraryService API will only accept JWTs with the following audience
511 * LibraryService API will only accept JWTs with the following audience 500 /// "https://library-example.googleapis.com/google.example.library.v1.LibraryS ervice".
512 * "https://library-example.googleapis.com/google.example.library.v1.LibrarySe rvice". 501 ///
513 * 502 /// Example:
514 * Example: 503 ///
515 * 504 /// audiences: bookstore_android.apps.googleusercontent.com,
516 * audiences: bookstore_android.apps.googleusercontent.com, 505 /// bookstore_web.apps.googleusercontent.com
517 * bookstore_web.apps.googleusercontent.com
518 */
519 core.String audiences; 506 core.String audiences;
520 /** 507
521 * id from authentication provider. 508 /// id from authentication provider.
522 * 509 ///
523 * Example: 510 /// Example:
524 * 511 ///
525 * provider_id: bookstore_auth 512 /// provider_id: bookstore_auth
526 */
527 core.String providerId; 513 core.String providerId;
528 514
529 AuthRequirement(); 515 AuthRequirement();
530 516
531 AuthRequirement.fromJson(core.Map _json) { 517 AuthRequirement.fromJson(core.Map _json) {
532 if (_json.containsKey("audiences")) { 518 if (_json.containsKey("audiences")) {
533 audiences = _json["audiences"]; 519 audiences = _json["audiences"];
534 } 520 }
535 if (_json.containsKey("providerId")) { 521 if (_json.containsKey("providerId")) {
536 providerId = _json["providerId"]; 522 providerId = _json["providerId"];
537 } 523 }
538 } 524 }
539 525
540 core.Map<core.String, core.Object> toJson() { 526 core.Map<core.String, core.Object> toJson() {
541 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 527 final core.Map<core.String, core.Object> _json =
528 new core.Map<core.String, core.Object>();
542 if (audiences != null) { 529 if (audiences != null) {
543 _json["audiences"] = audiences; 530 _json["audiences"] = audiences;
544 } 531 }
545 if (providerId != null) { 532 if (providerId != null) {
546 _json["providerId"] = providerId; 533 _json["providerId"] = providerId;
547 } 534 }
548 return _json; 535 return _json;
549 } 536 }
550 } 537 }
551 538
552 /** 539 /// `Authentication` defines the authentication configuration for an API.
553 * `Authentication` defines the authentication configuration for an API. 540 ///
554 * 541 /// Example for an API targeted for external use:
555 * Example for an API targeted for external use: 542 ///
556 * 543 /// name: calendar.googleapis.com
557 * name: calendar.googleapis.com 544 /// authentication:
558 * authentication: 545 /// providers:
559 * providers: 546 /// - id: google_calendar_auth
560 * - id: google_calendar_auth 547 /// jwks_uri: https://www.googleapis.com/oauth2/v1/certs
561 * jwks_uri: https://www.googleapis.com/oauth2/v1/certs 548 /// issuer: https://securetoken.google.com
562 * issuer: https://securetoken.google.com 549 /// rules:
563 * rules: 550 /// - selector: "*"
564 * - selector: "*" 551 /// requirements:
565 * requirements: 552 /// provider_id: google_calendar_auth
566 * provider_id: google_calendar_auth
567 */
568 class Authentication { 553 class Authentication {
569 /** Defines a set of authentication providers that a service supports. */ 554 /// Defines a set of authentication providers that a service supports.
570 core.List<AuthProvider> providers; 555 core.List<AuthProvider> providers;
571 /** 556
572 * A list of authentication rules that apply to individual API methods. 557 /// A list of authentication rules that apply to individual API methods.
573 * 558 ///
574 * **NOTE:** All service configuration rules follow "last one wins" order. 559 /// **NOTE:** All service configuration rules follow "last one wins" order.
575 */
576 core.List<AuthenticationRule> rules; 560 core.List<AuthenticationRule> rules;
577 561
578 Authentication(); 562 Authentication();
579 563
580 Authentication.fromJson(core.Map _json) { 564 Authentication.fromJson(core.Map _json) {
581 if (_json.containsKey("providers")) { 565 if (_json.containsKey("providers")) {
582 providers = _json["providers"].map((value) => new AuthProvider.fromJson(va lue)).toList(); 566 providers = _json["providers"]
567 .map((value) => new AuthProvider.fromJson(value))
568 .toList();
583 } 569 }
584 if (_json.containsKey("rules")) { 570 if (_json.containsKey("rules")) {
585 rules = _json["rules"].map((value) => new AuthenticationRule.fromJson(valu e)).toList(); 571 rules = _json["rules"]
572 .map((value) => new AuthenticationRule.fromJson(value))
573 .toList();
586 } 574 }
587 } 575 }
588 576
589 core.Map<core.String, core.Object> toJson() { 577 core.Map<core.String, core.Object> toJson() {
590 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 578 final core.Map<core.String, core.Object> _json =
579 new core.Map<core.String, core.Object>();
591 if (providers != null) { 580 if (providers != null) {
592 _json["providers"] = providers.map((value) => (value).toJson()).toList(); 581 _json["providers"] = providers.map((value) => (value).toJson()).toList();
593 } 582 }
594 if (rules != null) { 583 if (rules != null) {
595 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 584 _json["rules"] = rules.map((value) => (value).toJson()).toList();
596 } 585 }
597 return _json; 586 return _json;
598 } 587 }
599 } 588 }
600 589
601 /** 590 /// Authentication rules for the service.
602 * Authentication rules for the service. 591 ///
603 * 592 /// By default, if a method has any authentication requirements, every request
604 * By default, if a method has any authentication requirements, every request 593 /// must include a valid credential matching one of the requirements.
605 * must include a valid credential matching one of the requirements. 594 /// It's an error to include more than one kind of credential in a single
606 * It's an error to include more than one kind of credential in a single 595 /// request.
607 * request. 596 ///
608 * 597 /// If a method doesn't have any auth requirements, request credentials will be
609 * If a method doesn't have any auth requirements, request credentials will be 598 /// ignored.
610 * ignored.
611 */
612 class AuthenticationRule { 599 class AuthenticationRule {
613 /** 600 /// Whether to allow requests without a credential. The credential can be
614 * Whether to allow requests without a credential. The credential can be 601 /// an OAuth token, Google cookies (first-party auth) or EndUserCreds.
615 * an OAuth token, Google cookies (first-party auth) or EndUserCreds. 602 ///
616 * 603 /// For requests without credentials, if the service control environment is
617 * For requests without credentials, if the service control environment is 604 /// specified, each incoming request **must** be associated with a service
618 * specified, each incoming request **must** be associated with a service 605 /// consumer. This can be done by passing an API key that belongs to a
619 * consumer. This can be done by passing an API key that belongs to a consumer 606 /// consumer
620 * project. 607 /// project.
621 */
622 core.bool allowWithoutCredential; 608 core.bool allowWithoutCredential;
623 /** Configuration for custom authentication. */ 609
610 /// Configuration for custom authentication.
624 CustomAuthRequirements customAuth; 611 CustomAuthRequirements customAuth;
625 /** The requirements for OAuth credentials. */ 612
613 /// The requirements for OAuth credentials.
626 OAuthRequirements oauth; 614 OAuthRequirements oauth;
627 /** Requirements for additional authentication providers. */ 615
616 /// Requirements for additional authentication providers.
628 core.List<AuthRequirement> requirements; 617 core.List<AuthRequirement> requirements;
629 /** 618
630 * Selects the methods to which this rule applies. 619 /// Selects the methods to which this rule applies.
631 * 620 ///
632 * Refer to selector for syntax details. 621 /// Refer to selector for syntax details.
633 */
634 core.String selector; 622 core.String selector;
635 623
636 AuthenticationRule(); 624 AuthenticationRule();
637 625
638 AuthenticationRule.fromJson(core.Map _json) { 626 AuthenticationRule.fromJson(core.Map _json) {
639 if (_json.containsKey("allowWithoutCredential")) { 627 if (_json.containsKey("allowWithoutCredential")) {
640 allowWithoutCredential = _json["allowWithoutCredential"]; 628 allowWithoutCredential = _json["allowWithoutCredential"];
641 } 629 }
642 if (_json.containsKey("customAuth")) { 630 if (_json.containsKey("customAuth")) {
643 customAuth = new CustomAuthRequirements.fromJson(_json["customAuth"]); 631 customAuth = new CustomAuthRequirements.fromJson(_json["customAuth"]);
644 } 632 }
645 if (_json.containsKey("oauth")) { 633 if (_json.containsKey("oauth")) {
646 oauth = new OAuthRequirements.fromJson(_json["oauth"]); 634 oauth = new OAuthRequirements.fromJson(_json["oauth"]);
647 } 635 }
648 if (_json.containsKey("requirements")) { 636 if (_json.containsKey("requirements")) {
649 requirements = _json["requirements"].map((value) => new AuthRequirement.fr omJson(value)).toList(); 637 requirements = _json["requirements"]
638 .map((value) => new AuthRequirement.fromJson(value))
639 .toList();
650 } 640 }
651 if (_json.containsKey("selector")) { 641 if (_json.containsKey("selector")) {
652 selector = _json["selector"]; 642 selector = _json["selector"];
653 } 643 }
654 } 644 }
655 645
656 core.Map<core.String, core.Object> toJson() { 646 core.Map<core.String, core.Object> toJson() {
657 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 647 final core.Map<core.String, core.Object> _json =
648 new core.Map<core.String, core.Object>();
658 if (allowWithoutCredential != null) { 649 if (allowWithoutCredential != null) {
659 _json["allowWithoutCredential"] = allowWithoutCredential; 650 _json["allowWithoutCredential"] = allowWithoutCredential;
660 } 651 }
661 if (customAuth != null) { 652 if (customAuth != null) {
662 _json["customAuth"] = (customAuth).toJson(); 653 _json["customAuth"] = (customAuth).toJson();
663 } 654 }
664 if (oauth != null) { 655 if (oauth != null) {
665 _json["oauth"] = (oauth).toJson(); 656 _json["oauth"] = (oauth).toJson();
666 } 657 }
667 if (requirements != null) { 658 if (requirements != null) {
668 _json["requirements"] = requirements.map((value) => (value).toJson()).toLi st(); 659 _json["requirements"] =
660 requirements.map((value) => (value).toJson()).toList();
669 } 661 }
670 if (selector != null) { 662 if (selector != null) {
671 _json["selector"] = selector; 663 _json["selector"] = selector;
672 } 664 }
673 return _json; 665 return _json;
674 } 666 }
675 } 667 }
676 668
677 /** 669 /// Configuration of authorization.
678 * Configuration of authorization. 670 ///
679 * 671 /// This section determines the authorization provider, if unspecified, then no
680 * This section determines the authorization provider, if unspecified, then no 672 /// authorization check will be done.
681 * authorization check will be done. 673 ///
682 * 674 /// Example:
683 * Example: 675 ///
684 * 676 /// experimental:
685 * experimental: 677 /// authorization:
686 * authorization: 678 /// provider: firebaserules.googleapis.com
687 * provider: firebaserules.googleapis.com
688 */
689 class AuthorizationConfig { 679 class AuthorizationConfig {
690 /** 680 /// The name of the authorization provider, such as
691 * The name of the authorization provider, such as 681 /// firebaserules.googleapis.com.
692 * firebaserules.googleapis.com.
693 */
694 core.String provider; 682 core.String provider;
695 683
696 AuthorizationConfig(); 684 AuthorizationConfig();
697 685
698 AuthorizationConfig.fromJson(core.Map _json) { 686 AuthorizationConfig.fromJson(core.Map _json) {
699 if (_json.containsKey("provider")) { 687 if (_json.containsKey("provider")) {
700 provider = _json["provider"]; 688 provider = _json["provider"];
701 } 689 }
702 } 690 }
703 691
704 core.Map<core.String, core.Object> toJson() { 692 core.Map<core.String, core.Object> toJson() {
705 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 693 final core.Map<core.String, core.Object> _json =
694 new core.Map<core.String, core.Object>();
706 if (provider != null) { 695 if (provider != null) {
707 _json["provider"] = provider; 696 _json["provider"] = provider;
708 } 697 }
709 return _json; 698 return _json;
710 } 699 }
711 } 700 }
712 701
713 /** 702 /// Authorization rule for API services.
714 * Authorization rule for API services. 703 ///
715 * 704 /// It specifies the permission(s) required for an API element for the overall
716 * It specifies the permission(s) required for an API element for the overall 705 /// API request to succeed. It is typically used to mark request message fields
717 * API request to succeed. It is typically used to mark request message fields 706 /// that contain the name of the resource and indicates the permissions that
718 * that contain the name of the resource and indicates the permissions that 707 /// will be checked on that resource.
719 * will be checked on that resource. 708 ///
720 * 709 /// For example:
721 * For example: 710 ///
722 * 711 /// package google.storage.v1;
723 * package google.storage.v1; 712 ///
724 * 713 /// message CopyObjectRequest {
725 * message CopyObjectRequest { 714 /// string source = 1 [
726 * string source = 1 [ 715 /// (google.api.authz).permissions = "storage.objects.get"];
727 * (google.api.authz).permissions = "storage.objects.get"]; 716 ///
728 * 717 /// string destination = 2 [
729 * string destination = 2 [ 718 /// (google.api.authz).permissions =
730 * (google.api.authz).permissions = 719 /// "storage.objects.create,storage.objects.update"];
731 * "storage.objects.create,storage.objects.update"]; 720 /// }
732 * }
733 */
734 class AuthorizationRule { 721 class AuthorizationRule {
735 /** 722 /// The required permissions. The acceptable values vary depend on the
736 * The required permissions. The acceptable values vary depend on the 723 /// authorization system used. For Google APIs, it should be a
737 * authorization system used. For Google APIs, it should be a comma-separated 724 /// comma-separated
738 * Google IAM permission values. When multiple permissions are listed, the 725 /// Google IAM permission values. When multiple permissions are listed, the
739 * semantics is not defined by the system. Additional documentation must 726 /// semantics is not defined by the system. Additional documentation must
740 * be provided manually. 727 /// be provided manually.
741 */
742 core.String permissions; 728 core.String permissions;
743 /** 729
744 * Selects the API elements to which this rule applies. 730 /// Selects the API elements to which this rule applies.
745 * 731 ///
746 * Refer to selector for syntax details. 732 /// Refer to selector for syntax details.
747 */
748 core.String selector; 733 core.String selector;
749 734
750 AuthorizationRule(); 735 AuthorizationRule();
751 736
752 AuthorizationRule.fromJson(core.Map _json) { 737 AuthorizationRule.fromJson(core.Map _json) {
753 if (_json.containsKey("permissions")) { 738 if (_json.containsKey("permissions")) {
754 permissions = _json["permissions"]; 739 permissions = _json["permissions"];
755 } 740 }
756 if (_json.containsKey("selector")) { 741 if (_json.containsKey("selector")) {
757 selector = _json["selector"]; 742 selector = _json["selector"];
758 } 743 }
759 } 744 }
760 745
761 core.Map<core.String, core.Object> toJson() { 746 core.Map<core.String, core.Object> toJson() {
762 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 747 final core.Map<core.String, core.Object> _json =
748 new core.Map<core.String, core.Object>();
763 if (permissions != null) { 749 if (permissions != null) {
764 _json["permissions"] = permissions; 750 _json["permissions"] = permissions;
765 } 751 }
766 if (selector != null) { 752 if (selector != null) {
767 _json["selector"] = selector; 753 _json["selector"] = selector;
768 } 754 }
769 return _json; 755 return _json;
770 } 756 }
771 } 757 }
772 758
773 /** `Backend` defines the backend configuration for a service. */ 759 /// `Backend` defines the backend configuration for a service.
774 class Backend { 760 class Backend {
775 /** 761 /// A list of API backend rules that apply to individual API methods.
776 * A list of API backend rules that apply to individual API methods. 762 ///
777 * 763 /// **NOTE:** All service configuration rules follow "last one wins" order.
778 * **NOTE:** All service configuration rules follow "last one wins" order.
779 */
780 core.List<BackendRule> rules; 764 core.List<BackendRule> rules;
781 765
782 Backend(); 766 Backend();
783 767
784 Backend.fromJson(core.Map _json) { 768 Backend.fromJson(core.Map _json) {
785 if (_json.containsKey("rules")) { 769 if (_json.containsKey("rules")) {
786 rules = _json["rules"].map((value) => new BackendRule.fromJson(value)).toL ist(); 770 rules = _json["rules"]
771 .map((value) => new BackendRule.fromJson(value))
772 .toList();
787 } 773 }
788 } 774 }
789 775
790 core.Map<core.String, core.Object> toJson() { 776 core.Map<core.String, core.Object> toJson() {
791 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 777 final core.Map<core.String, core.Object> _json =
778 new core.Map<core.String, core.Object>();
792 if (rules != null) { 779 if (rules != null) {
793 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 780 _json["rules"] = rules.map((value) => (value).toJson()).toList();
794 } 781 }
795 return _json; 782 return _json;
796 } 783 }
797 } 784 }
798 785
799 /** A backend rule provides configuration for an individual API element. */ 786 /// A backend rule provides configuration for an individual API element.
800 class BackendRule { 787 class BackendRule {
801 /** The address of the API backend. */ 788 /// The address of the API backend.
802 core.String address; 789 core.String address;
803 /** 790
804 * The number of seconds to wait for a response from a request. The 791 /// The number of seconds to wait for a response from a request. The default
805 * default depends on the deployment context. 792 /// deadline for gRPC and HTTP requests is 5 seconds. For Stubby requests,
806 */ 793 /// the default is no deadline.
807 core.double deadline; 794 core.double deadline;
808 /** 795
809 * Minimum deadline in seconds needed for this method. Calls having deadline 796 /// Minimum deadline in seconds needed for this method. Calls having deadline
810 * value lower than this will be rejected. 797 /// value lower than this will be rejected.
811 */
812 core.double minDeadline; 798 core.double minDeadline;
813 /** 799
814 * Selects the methods to which this rule applies. 800 /// Selects the methods to which this rule applies.
815 * 801 ///
816 * Refer to selector for syntax details. 802 /// Refer to selector for syntax details.
817 */
818 core.String selector; 803 core.String selector;
819 804
820 BackendRule(); 805 BackendRule();
821 806
822 BackendRule.fromJson(core.Map _json) { 807 BackendRule.fromJson(core.Map _json) {
823 if (_json.containsKey("address")) { 808 if (_json.containsKey("address")) {
824 address = _json["address"]; 809 address = _json["address"];
825 } 810 }
826 if (_json.containsKey("deadline")) { 811 if (_json.containsKey("deadline")) {
827 deadline = _json["deadline"]; 812 deadline = _json["deadline"];
828 } 813 }
829 if (_json.containsKey("minDeadline")) { 814 if (_json.containsKey("minDeadline")) {
830 minDeadline = _json["minDeadline"]; 815 minDeadline = _json["minDeadline"];
831 } 816 }
832 if (_json.containsKey("selector")) { 817 if (_json.containsKey("selector")) {
833 selector = _json["selector"]; 818 selector = _json["selector"];
834 } 819 }
835 } 820 }
836 821
837 core.Map<core.String, core.Object> toJson() { 822 core.Map<core.String, core.Object> toJson() {
838 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 823 final core.Map<core.String, core.Object> _json =
824 new core.Map<core.String, core.Object>();
839 if (address != null) { 825 if (address != null) {
840 _json["address"] = address; 826 _json["address"] = address;
841 } 827 }
842 if (deadline != null) { 828 if (deadline != null) {
843 _json["deadline"] = deadline; 829 _json["deadline"] = deadline;
844 } 830 }
845 if (minDeadline != null) { 831 if (minDeadline != null) {
846 _json["minDeadline"] = minDeadline; 832 _json["minDeadline"] = minDeadline;
847 } 833 }
848 if (selector != null) { 834 if (selector != null) {
849 _json["selector"] = selector; 835 _json["selector"] = selector;
850 } 836 }
851 return _json; 837 return _json;
852 } 838 }
853 } 839 }
854 840
855 /** 841 /// `Context` defines which contexts an API requests.
856 * `Context` defines which contexts an API requests. 842 ///
857 * 843 /// Example:
858 * Example: 844 ///
859 * 845 /// context:
860 * context: 846 /// rules:
861 * rules: 847 /// - selector: "*"
862 * - selector: "*" 848 /// requested:
863 * requested: 849 /// - google.rpc.context.ProjectContext
864 * - google.rpc.context.ProjectContext 850 /// - google.rpc.context.OriginContext
865 * - google.rpc.context.OriginContext 851 ///
866 * 852 /// The above specifies that all methods in the API request
867 * The above specifies that all methods in the API request 853 /// `google.rpc.context.ProjectContext` and
868 * `google.rpc.context.ProjectContext` and 854 /// `google.rpc.context.OriginContext`.
869 * `google.rpc.context.OriginContext`. 855 ///
870 * 856 /// Available context types are defined in package
871 * Available context types are defined in package 857 /// `google.rpc.context`.
872 * `google.rpc.context`.
873 */
874 class Context { 858 class Context {
875 /** 859 /// A list of RPC context rules that apply to individual API methods.
876 * A list of RPC context rules that apply to individual API methods. 860 ///
877 * 861 /// **NOTE:** All service configuration rules follow "last one wins" order.
878 * **NOTE:** All service configuration rules follow "last one wins" order.
879 */
880 core.List<ContextRule> rules; 862 core.List<ContextRule> rules;
881 863
882 Context(); 864 Context();
883 865
884 Context.fromJson(core.Map _json) { 866 Context.fromJson(core.Map _json) {
885 if (_json.containsKey("rules")) { 867 if (_json.containsKey("rules")) {
886 rules = _json["rules"].map((value) => new ContextRule.fromJson(value)).toL ist(); 868 rules = _json["rules"]
869 .map((value) => new ContextRule.fromJson(value))
870 .toList();
887 } 871 }
888 } 872 }
889 873
890 core.Map<core.String, core.Object> toJson() { 874 core.Map<core.String, core.Object> toJson() {
891 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 875 final core.Map<core.String, core.Object> _json =
876 new core.Map<core.String, core.Object>();
892 if (rules != null) { 877 if (rules != null) {
893 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 878 _json["rules"] = rules.map((value) => (value).toJson()).toList();
894 } 879 }
895 return _json; 880 return _json;
896 } 881 }
897 } 882 }
898 883
899 /** 884 /// A context rule provides information about the context for an individual API
900 * A context rule provides information about the context for an individual API 885 /// element.
901 * element.
902 */
903 class ContextRule { 886 class ContextRule {
904 /** A list of full type names of provided contexts. */ 887 /// A list of full type names of provided contexts.
905 core.List<core.String> provided; 888 core.List<core.String> provided;
906 /** A list of full type names of requested contexts. */ 889
890 /// A list of full type names of requested contexts.
907 core.List<core.String> requested; 891 core.List<core.String> requested;
908 /** 892
909 * Selects the methods to which this rule applies. 893 /// Selects the methods to which this rule applies.
910 * 894 ///
911 * Refer to selector for syntax details. 895 /// Refer to selector for syntax details.
912 */
913 core.String selector; 896 core.String selector;
914 897
915 ContextRule(); 898 ContextRule();
916 899
917 ContextRule.fromJson(core.Map _json) { 900 ContextRule.fromJson(core.Map _json) {
918 if (_json.containsKey("provided")) { 901 if (_json.containsKey("provided")) {
919 provided = _json["provided"]; 902 provided = _json["provided"];
920 } 903 }
921 if (_json.containsKey("requested")) { 904 if (_json.containsKey("requested")) {
922 requested = _json["requested"]; 905 requested = _json["requested"];
923 } 906 }
924 if (_json.containsKey("selector")) { 907 if (_json.containsKey("selector")) {
925 selector = _json["selector"]; 908 selector = _json["selector"];
926 } 909 }
927 } 910 }
928 911
929 core.Map<core.String, core.Object> toJson() { 912 core.Map<core.String, core.Object> toJson() {
930 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 913 final core.Map<core.String, core.Object> _json =
914 new core.Map<core.String, core.Object>();
931 if (provided != null) { 915 if (provided != null) {
932 _json["provided"] = provided; 916 _json["provided"] = provided;
933 } 917 }
934 if (requested != null) { 918 if (requested != null) {
935 _json["requested"] = requested; 919 _json["requested"] = requested;
936 } 920 }
937 if (selector != null) { 921 if (selector != null) {
938 _json["selector"] = selector; 922 _json["selector"] = selector;
939 } 923 }
940 return _json; 924 return _json;
941 } 925 }
942 } 926 }
943 927
944 /** 928 /// Selects and configures the service controller used by the service. The
945 * Selects and configures the service controller used by the service. The 929 /// service controller handles features like abuse, quota, billing, logging,
946 * service controller handles features like abuse, quota, billing, logging, 930 /// monitoring, etc.
947 * monitoring, etc.
948 */
949 class Control { 931 class Control {
950 /** 932 /// The service control environment to use. If empty, no control plane
951 * The service control environment to use. If empty, no control plane 933 /// feature (like quota and billing) will be enabled.
952 * feature (like quota and billing) will be enabled.
953 */
954 core.String environment; 934 core.String environment;
955 935
956 Control(); 936 Control();
957 937
958 Control.fromJson(core.Map _json) { 938 Control.fromJson(core.Map _json) {
959 if (_json.containsKey("environment")) { 939 if (_json.containsKey("environment")) {
960 environment = _json["environment"]; 940 environment = _json["environment"];
961 } 941 }
962 } 942 }
963 943
964 core.Map<core.String, core.Object> toJson() { 944 core.Map<core.String, core.Object> toJson() {
965 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 945 final core.Map<core.String, core.Object> _json =
946 new core.Map<core.String, core.Object>();
966 if (environment != null) { 947 if (environment != null) {
967 _json["environment"] = environment; 948 _json["environment"] = environment;
968 } 949 }
969 return _json; 950 return _json;
970 } 951 }
971 } 952 }
972 953
973 /** Configuration for a custom authentication provider. */ 954 /// Configuration for a custom authentication provider.
974 class CustomAuthRequirements { 955 class CustomAuthRequirements {
975 /** 956 /// A configuration string containing connection information for the
976 * A configuration string containing connection information for the 957 /// authentication provider, typically formatted as a SmartService string
977 * authentication provider, typically formatted as a SmartService string 958 /// (go/smartservice).
978 * (go/smartservice).
979 */
980 core.String provider; 959 core.String provider;
981 960
982 CustomAuthRequirements(); 961 CustomAuthRequirements();
983 962
984 CustomAuthRequirements.fromJson(core.Map _json) { 963 CustomAuthRequirements.fromJson(core.Map _json) {
985 if (_json.containsKey("provider")) { 964 if (_json.containsKey("provider")) {
986 provider = _json["provider"]; 965 provider = _json["provider"];
987 } 966 }
988 } 967 }
989 968
990 core.Map<core.String, core.Object> toJson() { 969 core.Map<core.String, core.Object> toJson() {
991 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 970 final core.Map<core.String, core.Object> _json =
971 new core.Map<core.String, core.Object>();
992 if (provider != null) { 972 if (provider != null) {
993 _json["provider"] = provider; 973 _json["provider"] = provider;
994 } 974 }
995 return _json; 975 return _json;
996 } 976 }
997 } 977 }
998 978
999 /** 979 /// Customize service error responses. For example, list any service
1000 * Customize service error responses. For example, list any service 980 /// specific protobuf types that can appear in error detail lists of
1001 * specific protobuf types that can appear in error detail lists of 981 /// error responses.
1002 * error responses. 982 ///
1003 * 983 /// Example:
1004 * Example: 984 ///
1005 * 985 /// custom_error:
1006 * custom_error: 986 /// types:
1007 * types: 987 /// - google.foo.v1.CustomError
1008 * - google.foo.v1.CustomError 988 /// - google.foo.v1.AnotherError
1009 * - google.foo.v1.AnotherError
1010 */
1011 class CustomError { 989 class CustomError {
1012 /** 990 /// The list of custom error rules that apply to individual API messages.
1013 * The list of custom error rules that apply to individual API messages. 991 ///
1014 * 992 /// **NOTE:** All service configuration rules follow "last one wins" order.
1015 * **NOTE:** All service configuration rules follow "last one wins" order.
1016 */
1017 core.List<CustomErrorRule> rules; 993 core.List<CustomErrorRule> rules;
1018 /** 994
1019 * The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. 995 /// The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
1020 */
1021 core.List<core.String> types; 996 core.List<core.String> types;
1022 997
1023 CustomError(); 998 CustomError();
1024 999
1025 CustomError.fromJson(core.Map _json) { 1000 CustomError.fromJson(core.Map _json) {
1026 if (_json.containsKey("rules")) { 1001 if (_json.containsKey("rules")) {
1027 rules = _json["rules"].map((value) => new CustomErrorRule.fromJson(value)) .toList(); 1002 rules = _json["rules"]
1003 .map((value) => new CustomErrorRule.fromJson(value))
1004 .toList();
1028 } 1005 }
1029 if (_json.containsKey("types")) { 1006 if (_json.containsKey("types")) {
1030 types = _json["types"]; 1007 types = _json["types"];
1031 } 1008 }
1032 } 1009 }
1033 1010
1034 core.Map<core.String, core.Object> toJson() { 1011 core.Map<core.String, core.Object> toJson() {
1035 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1012 final core.Map<core.String, core.Object> _json =
1013 new core.Map<core.String, core.Object>();
1036 if (rules != null) { 1014 if (rules != null) {
1037 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 1015 _json["rules"] = rules.map((value) => (value).toJson()).toList();
1038 } 1016 }
1039 if (types != null) { 1017 if (types != null) {
1040 _json["types"] = types; 1018 _json["types"] = types;
1041 } 1019 }
1042 return _json; 1020 return _json;
1043 } 1021 }
1044 } 1022 }
1045 1023
1046 /** A custom error rule. */ 1024 /// A custom error rule.
1047 class CustomErrorRule { 1025 class CustomErrorRule {
1048 /** 1026 /// Mark this message as possible payload in error response. Otherwise,
1049 * Mark this message as possible payload in error response. Otherwise, 1027 /// objects of this type will be filtered when they appear in error payload.
1050 * objects of this type will be filtered when they appear in error payload.
1051 */
1052 core.bool isErrorType; 1028 core.bool isErrorType;
1053 /** 1029
1054 * Selects messages to which this rule applies. 1030 /// Selects messages to which this rule applies.
1055 * 1031 ///
1056 * Refer to selector for syntax details. 1032 /// Refer to selector for syntax details.
1057 */
1058 core.String selector; 1033 core.String selector;
1059 1034
1060 CustomErrorRule(); 1035 CustomErrorRule();
1061 1036
1062 CustomErrorRule.fromJson(core.Map _json) { 1037 CustomErrorRule.fromJson(core.Map _json) {
1063 if (_json.containsKey("isErrorType")) { 1038 if (_json.containsKey("isErrorType")) {
1064 isErrorType = _json["isErrorType"]; 1039 isErrorType = _json["isErrorType"];
1065 } 1040 }
1066 if (_json.containsKey("selector")) { 1041 if (_json.containsKey("selector")) {
1067 selector = _json["selector"]; 1042 selector = _json["selector"];
1068 } 1043 }
1069 } 1044 }
1070 1045
1071 core.Map<core.String, core.Object> toJson() { 1046 core.Map<core.String, core.Object> toJson() {
1072 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1047 final core.Map<core.String, core.Object> _json =
1048 new core.Map<core.String, core.Object>();
1073 if (isErrorType != null) { 1049 if (isErrorType != null) {
1074 _json["isErrorType"] = isErrorType; 1050 _json["isErrorType"] = isErrorType;
1075 } 1051 }
1076 if (selector != null) { 1052 if (selector != null) {
1077 _json["selector"] = selector; 1053 _json["selector"] = selector;
1078 } 1054 }
1079 return _json; 1055 return _json;
1080 } 1056 }
1081 } 1057 }
1082 1058
1083 /** A custom pattern is used for defining custom HTTP verb. */ 1059 /// A custom pattern is used for defining custom HTTP verb.
1084 class CustomHttpPattern { 1060 class CustomHttpPattern {
1085 /** The name of this custom HTTP verb. */ 1061 /// The name of this custom HTTP verb.
1086 core.String kind; 1062 core.String kind;
1087 /** The path matched by this custom verb. */ 1063
1064 /// The path matched by this custom verb.
1088 core.String path; 1065 core.String path;
1089 1066
1090 CustomHttpPattern(); 1067 CustomHttpPattern();
1091 1068
1092 CustomHttpPattern.fromJson(core.Map _json) { 1069 CustomHttpPattern.fromJson(core.Map _json) {
1093 if (_json.containsKey("kind")) { 1070 if (_json.containsKey("kind")) {
1094 kind = _json["kind"]; 1071 kind = _json["kind"];
1095 } 1072 }
1096 if (_json.containsKey("path")) { 1073 if (_json.containsKey("path")) {
1097 path = _json["path"]; 1074 path = _json["path"];
1098 } 1075 }
1099 } 1076 }
1100 1077
1101 core.Map<core.String, core.Object> toJson() { 1078 core.Map<core.String, core.Object> toJson() {
1102 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1079 final core.Map<core.String, core.Object> _json =
1080 new core.Map<core.String, core.Object>();
1103 if (kind != null) { 1081 if (kind != null) {
1104 _json["kind"] = kind; 1082 _json["kind"] = kind;
1105 } 1083 }
1106 if (path != null) { 1084 if (path != null) {
1107 _json["path"] = path; 1085 _json["path"] = path;
1108 } 1086 }
1109 return _json; 1087 return _json;
1110 } 1088 }
1111 } 1089 }
1112 1090
1113 /** Request message for DisableService method. */ 1091 /// Request message for DisableService method.
1114 class DisableServiceRequest { 1092 class DisableServiceRequest {
1115
1116 DisableServiceRequest(); 1093 DisableServiceRequest();
1117 1094
1118 DisableServiceRequest.fromJson(core.Map _json) { 1095 DisableServiceRequest.fromJson(core.Map _json) {}
1119 }
1120 1096
1121 core.Map<core.String, core.Object> toJson() { 1097 core.Map<core.String, core.Object> toJson() {
1122 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1098 final core.Map<core.String, core.Object> _json =
1099 new core.Map<core.String, core.Object>();
1123 return _json; 1100 return _json;
1124 } 1101 }
1125 } 1102 }
1126 1103
1127 /** 1104 /// `Documentation` provides the information for describing a service.
1128 * `Documentation` provides the information for describing a service. 1105 ///
1129 * 1106 /// Example:
1130 * Example: 1107 /// <pre><code>documentation:
1131 * <pre><code>documentation: 1108 /// summary: >
1132 * summary: > 1109 /// The Google Calendar API gives access
1133 * The Google Calendar API gives access 1110 /// to most calendar features.
1134 * to most calendar features. 1111 /// pages:
1135 * pages: 1112 /// - name: Overview
1136 * - name: Overview 1113 /// content: &#40;== include google/foo/overview.md ==&#41;
1137 * content: &#40;== include google/foo/overview.md ==&#41; 1114 /// - name: Tutorial
1138 * - name: Tutorial 1115 /// content: &#40;== include google/foo/tutorial.md ==&#41;
1139 * content: &#40;== include google/foo/tutorial.md ==&#41; 1116 /// subpages;
1140 * subpages; 1117 /// - name: Java
1141 * - name: Java 1118 /// content: &#40;== include google/foo/tutorial_java.md ==&#41;
1142 * content: &#40;== include google/foo/tutorial_java.md ==&#41; 1119 /// rules:
1143 * rules: 1120 /// - selector: google.calendar.Calendar.Get
1144 * - selector: google.calendar.Calendar.Get 1121 /// description: >
1145 * description: > 1122 /// ...
1146 * ... 1123 /// - selector: google.calendar.Calendar.Put
1147 * - selector: google.calendar.Calendar.Put 1124 /// description: >
1148 * description: > 1125 /// ...
1149 * ... 1126 /// </code></pre>
1150 * </code></pre> 1127 /// Documentation is provided in markdown syntax. In addition to
1151 * Documentation is provided in markdown syntax. In addition to 1128 /// standard markdown features, definition lists, tables and fenced
1152 * standard markdown features, definition lists, tables and fenced 1129 /// code blocks are supported. Section headers can be provided and are
1153 * code blocks are supported. Section headers can be provided and are 1130 /// interpreted relative to the section nesting of the context where
1154 * interpreted relative to the section nesting of the context where 1131 /// a documentation fragment is embedded.
1155 * a documentation fragment is embedded. 1132 ///
1156 * 1133 /// Documentation from the IDL is merged with documentation defined
1157 * Documentation from the IDL is merged with documentation defined 1134 /// via the config at normalization time, where documentation provided
1158 * via the config at normalization time, where documentation provided 1135 /// by config rules overrides IDL provided.
1159 * by config rules overrides IDL provided. 1136 ///
1160 * 1137 /// A number of constructs specific to the API platform are supported
1161 * A number of constructs specific to the API platform are supported 1138 /// in documentation text.
1162 * in documentation text. 1139 ///
1163 * 1140 /// In order to reference a proto element, the following
1164 * In order to reference a proto element, the following 1141 /// notation can be used:
1165 * notation can be used: 1142 /// <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
1166 * <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre> 1143 /// To override the display text used for the link, this can be used:
1167 * To override the display text used for the link, this can be used: 1144 /// <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
1168 * <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre> 1145 /// Text can be excluded from doc using the following notation:
1169 * Text can be excluded from doc using the following notation: 1146 /// <pre><code>&#40;-- internal comment --&#41;</code></pre>
1170 * <pre><code>&#40;-- internal comment --&#41;</code></pre> 1147 /// Comments can be made conditional using a visibility label. The below
1171 * Comments can be made conditional using a visibility label. The below 1148 /// text will be only rendered if the `BETA` label is available:
1172 * text will be only rendered if the `BETA` label is available: 1149 /// <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
1173 * <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre> 1150 /// A few directives are available in documentation. Note that
1174 * A few directives are available in documentation. Note that 1151 /// directives must appear on a single line to be properly
1175 * directives must appear on a single line to be properly 1152 /// identified. The `include` directive includes a markdown file from
1176 * identified. The `include` directive includes a markdown file from 1153 /// an external source:
1177 * an external source: 1154 /// <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
1178 * <pre><code>&#40;== include path/to/file ==&#41;</code></pre> 1155 /// The `resource_for` directive marks a message to be the resource of
1179 * The `resource_for` directive marks a message to be the resource of 1156 /// a collection in REST view. If it is not specified, tools attempt
1180 * a collection in REST view. If it is not specified, tools attempt 1157 /// to infer the resource from the operations in a collection:
1181 * to infer the resource from the operations in a collection: 1158 /// <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
1182 * <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre> 1159 /// The directive `suppress_warning` does not directly affect documentation
1183 * The directive `suppress_warning` does not directly affect documentation 1160 /// and is documented together with service config validation.
1184 * and is documented together with service config validation.
1185 */
1186 class Documentation { 1161 class Documentation {
1187 /** The URL to the root of documentation. */ 1162 /// The URL to the root of documentation.
1188 core.String documentationRootUrl; 1163 core.String documentationRootUrl;
1189 /** 1164
1190 * Declares a single overview page. For example: 1165 /// Declares a single overview page. For example:
1191 * <pre><code>documentation: 1166 /// <pre><code>documentation:
1192 * summary: ... 1167 /// summary: ...
1193 * overview: &#40;== include overview.md ==&#41; 1168 /// overview: &#40;== include overview.md ==&#41;
1194 * </code></pre> 1169 /// </code></pre>
1195 * This is a shortcut for the following declaration (using pages style): 1170 /// This is a shortcut for the following declaration (using pages style):
1196 * <pre><code>documentation: 1171 /// <pre><code>documentation:
1197 * summary: ... 1172 /// summary: ...
1198 * pages: 1173 /// pages:
1199 * - name: Overview 1174 /// - name: Overview
1200 * content: &#40;== include overview.md ==&#41; 1175 /// content: &#40;== include overview.md ==&#41;
1201 * </code></pre> 1176 /// </code></pre>
1202 * Note: you cannot specify both `overview` field and `pages` field. 1177 /// Note: you cannot specify both `overview` field and `pages` field.
1203 */
1204 core.String overview; 1178 core.String overview;
1205 /** The top level pages for the documentation set. */ 1179
1180 /// The top level pages for the documentation set.
1206 core.List<Page> pages; 1181 core.List<Page> pages;
1207 /** 1182
1208 * A list of documentation rules that apply to individual API elements. 1183 /// A list of documentation rules that apply to individual API elements.
1209 * 1184 ///
1210 * **NOTE:** All service configuration rules follow "last one wins" order. 1185 /// **NOTE:** All service configuration rules follow "last one wins" order.
1211 */
1212 core.List<DocumentationRule> rules; 1186 core.List<DocumentationRule> rules;
1213 /** 1187
1214 * A short summary of what the service does. Can only be provided by 1188 /// A short summary of what the service does. Can only be provided by
1215 * plain text. 1189 /// plain text.
1216 */
1217 core.String summary; 1190 core.String summary;
1218 1191
1219 Documentation(); 1192 Documentation();
1220 1193
1221 Documentation.fromJson(core.Map _json) { 1194 Documentation.fromJson(core.Map _json) {
1222 if (_json.containsKey("documentationRootUrl")) { 1195 if (_json.containsKey("documentationRootUrl")) {
1223 documentationRootUrl = _json["documentationRootUrl"]; 1196 documentationRootUrl = _json["documentationRootUrl"];
1224 } 1197 }
1225 if (_json.containsKey("overview")) { 1198 if (_json.containsKey("overview")) {
1226 overview = _json["overview"]; 1199 overview = _json["overview"];
1227 } 1200 }
1228 if (_json.containsKey("pages")) { 1201 if (_json.containsKey("pages")) {
1229 pages = _json["pages"].map((value) => new Page.fromJson(value)).toList(); 1202 pages = _json["pages"].map((value) => new Page.fromJson(value)).toList();
1230 } 1203 }
1231 if (_json.containsKey("rules")) { 1204 if (_json.containsKey("rules")) {
1232 rules = _json["rules"].map((value) => new DocumentationRule.fromJson(value )).toList(); 1205 rules = _json["rules"]
1206 .map((value) => new DocumentationRule.fromJson(value))
1207 .toList();
1233 } 1208 }
1234 if (_json.containsKey("summary")) { 1209 if (_json.containsKey("summary")) {
1235 summary = _json["summary"]; 1210 summary = _json["summary"];
1236 } 1211 }
1237 } 1212 }
1238 1213
1239 core.Map<core.String, core.Object> toJson() { 1214 core.Map<core.String, core.Object> toJson() {
1240 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1215 final core.Map<core.String, core.Object> _json =
1216 new core.Map<core.String, core.Object>();
1241 if (documentationRootUrl != null) { 1217 if (documentationRootUrl != null) {
1242 _json["documentationRootUrl"] = documentationRootUrl; 1218 _json["documentationRootUrl"] = documentationRootUrl;
1243 } 1219 }
1244 if (overview != null) { 1220 if (overview != null) {
1245 _json["overview"] = overview; 1221 _json["overview"] = overview;
1246 } 1222 }
1247 if (pages != null) { 1223 if (pages != null) {
1248 _json["pages"] = pages.map((value) => (value).toJson()).toList(); 1224 _json["pages"] = pages.map((value) => (value).toJson()).toList();
1249 } 1225 }
1250 if (rules != null) { 1226 if (rules != null) {
1251 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 1227 _json["rules"] = rules.map((value) => (value).toJson()).toList();
1252 } 1228 }
1253 if (summary != null) { 1229 if (summary != null) {
1254 _json["summary"] = summary; 1230 _json["summary"] = summary;
1255 } 1231 }
1256 return _json; 1232 return _json;
1257 } 1233 }
1258 } 1234 }
1259 1235
1260 /** A documentation rule provides information about individual API elements. */ 1236 /// A documentation rule provides information about individual API elements.
1261 class DocumentationRule { 1237 class DocumentationRule {
1262 /** 1238 /// Deprecation description of the selected element(s). It can be provided if
1263 * Deprecation description of the selected element(s). It can be provided if 1239 /// an
1264 * an 1240 /// element is marked as `deprecated`.
1265 * element is marked as `deprecated`.
1266 */
1267 core.String deprecationDescription; 1241 core.String deprecationDescription;
1268 /** Description of the selected API(s). */ 1242
1243 /// Description of the selected API(s).
1269 core.String description; 1244 core.String description;
1270 /** 1245
1271 * The selector is a comma-separated list of patterns. Each pattern is a 1246 /// The selector is a comma-separated list of patterns. Each pattern is a
1272 * qualified name of the element which may end in "*", indicating a wildcard. 1247 /// qualified name of the element which may end in "*", indicating a
1273 * Wildcards are only allowed at the end and for a whole component of the 1248 /// wildcard.
1274 * qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To 1249 /// Wildcards are only allowed at the end and for a whole component of the
1275 * specify a default for all applicable elements, the whole pattern "*" 1250 /// qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
1276 * is used. 1251 /// specify a default for all applicable elements, the whole pattern "*"
1277 */ 1252 /// is used.
1278 core.String selector; 1253 core.String selector;
1279 1254
1280 DocumentationRule(); 1255 DocumentationRule();
1281 1256
1282 DocumentationRule.fromJson(core.Map _json) { 1257 DocumentationRule.fromJson(core.Map _json) {
1283 if (_json.containsKey("deprecationDescription")) { 1258 if (_json.containsKey("deprecationDescription")) {
1284 deprecationDescription = _json["deprecationDescription"]; 1259 deprecationDescription = _json["deprecationDescription"];
1285 } 1260 }
1286 if (_json.containsKey("description")) { 1261 if (_json.containsKey("description")) {
1287 description = _json["description"]; 1262 description = _json["description"];
1288 } 1263 }
1289 if (_json.containsKey("selector")) { 1264 if (_json.containsKey("selector")) {
1290 selector = _json["selector"]; 1265 selector = _json["selector"];
1291 } 1266 }
1292 } 1267 }
1293 1268
1294 core.Map<core.String, core.Object> toJson() { 1269 core.Map<core.String, core.Object> toJson() {
1295 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1270 final core.Map<core.String, core.Object> _json =
1271 new core.Map<core.String, core.Object>();
1296 if (deprecationDescription != null) { 1272 if (deprecationDescription != null) {
1297 _json["deprecationDescription"] = deprecationDescription; 1273 _json["deprecationDescription"] = deprecationDescription;
1298 } 1274 }
1299 if (description != null) { 1275 if (description != null) {
1300 _json["description"] = description; 1276 _json["description"] = description;
1301 } 1277 }
1302 if (selector != null) { 1278 if (selector != null) {
1303 _json["selector"] = selector; 1279 _json["selector"] = selector;
1304 } 1280 }
1305 return _json; 1281 return _json;
1306 } 1282 }
1307 } 1283 }
1308 1284
1309 /** Request message for EnableService method. */ 1285 /// Request message for EnableService method.
1310 class EnableServiceRequest { 1286 class EnableServiceRequest {
1311
1312 EnableServiceRequest(); 1287 EnableServiceRequest();
1313 1288
1314 EnableServiceRequest.fromJson(core.Map _json) { 1289 EnableServiceRequest.fromJson(core.Map _json) {}
1315 }
1316 1290
1317 core.Map<core.String, core.Object> toJson() { 1291 core.Map<core.String, core.Object> toJson() {
1318 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1292 final core.Map<core.String, core.Object> _json =
1293 new core.Map<core.String, core.Object>();
1319 return _json; 1294 return _json;
1320 } 1295 }
1321 } 1296 }
1322 1297
1323 /** 1298 /// `Endpoint` describes a network endpoint that serves a set of APIs.
1324 * `Endpoint` describes a network endpoint that serves a set of APIs. 1299 /// A service may expose any number of endpoints, and all endpoints share the
1325 * A service may expose any number of endpoints, and all endpoints share the 1300 /// same service configuration, such as quota configuration and monitoring
1326 * same service configuration, such as quota configuration and monitoring 1301 /// configuration.
1327 * configuration. 1302 ///
1328 * 1303 /// Example service configuration:
1329 * Example service configuration: 1304 ///
1330 * 1305 /// name: library-example.googleapis.com
1331 * name: library-example.googleapis.com 1306 /// endpoints:
1332 * endpoints: 1307 /// # Below entry makes 'google.example.library.v1.Library'
1333 * # Below entry makes 'google.example.library.v1.Library' 1308 /// # API be served from endpoint address library-example.googleapis.com.
1334 * # API be served from endpoint address library-example.googleapis.com. 1309 /// # It also allows HTTP OPTIONS calls to be passed to the backend, for
1335 * # It also allows HTTP OPTIONS calls to be passed to the backend, for 1310 /// # it to decide whether the subsequent cross-origin request is
1336 * # it to decide whether the subsequent cross-origin request is 1311 /// # allowed to proceed.
1337 * # allowed to proceed. 1312 /// - name: library-example.googleapis.com
1338 * - name: library-example.googleapis.com 1313 /// allow_cors: true
1339 * allow_cors: true
1340 */
1341 class Endpoint { 1314 class Endpoint {
1342 /** 1315 /// DEPRECATED: This field is no longer supported. Instead of using aliases,
1343 * DEPRECATED: This field is no longer supported. Instead of using aliases, 1316 /// please specify multiple google.api.Endpoint for each of the intented
1344 * please specify multiple google.api.Endpoint for each of the intented 1317 /// alias.
1345 * alias. 1318 ///
1346 * 1319 /// Additional names that this endpoint will be hosted on.
1347 * Additional names that this endpoint will be hosted on.
1348 */
1349 core.List<core.String> aliases; 1320 core.List<core.String> aliases;
1350 /** 1321
1351 * Allowing 1322 /// Allowing
1352 * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka 1323 /// [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
1353 * cross-domain traffic, would allow the backends served from this endpoint to 1324 /// cross-domain traffic, would allow the backends served from this endpoint
1354 * receive and respond to HTTP OPTIONS requests. The response will be used by 1325 /// to
1355 * the browser to determine whether the subsequent cross-origin request is 1326 /// receive and respond to HTTP OPTIONS requests. The response will be used
1356 * allowed to proceed. 1327 /// by
1357 */ 1328 /// the browser to determine whether the subsequent cross-origin request is
1329 /// allowed to proceed.
1358 core.bool allowCors; 1330 core.bool allowCors;
1359 /** 1331
1360 * The list of APIs served by this endpoint. 1332 /// The list of APIs served by this endpoint.
1361 * 1333 ///
1362 * If no APIs are specified this translates to "all APIs" exported by the 1334 /// If no APIs are specified this translates to "all APIs" exported by the
1363 * service, as defined in the top-level service configuration. 1335 /// service, as defined in the top-level service configuration.
1364 */
1365 core.List<core.String> apis; 1336 core.List<core.String> apis;
1366 /** The list of features enabled on this endpoint. */ 1337
1338 /// The list of features enabled on this endpoint.
1367 core.List<core.String> features; 1339 core.List<core.String> features;
1368 /** The canonical name of this endpoint. */ 1340
1341 /// The canonical name of this endpoint.
1369 core.String name; 1342 core.String name;
1370 /** 1343
1371 * The specification of an Internet routable address of API frontend that will 1344 /// The specification of an Internet routable address of API frontend that
1372 * handle requests to this [API 1345 /// will
1373 * Endpoint](https://cloud.google.com/apis/design/glossary). 1346 /// handle requests to this [API
1374 * It should be either a valid IPv4 address or a fully-qualified domain name. 1347 /// Endpoint](https://cloud.google.com/apis/design/glossary).
1375 * For example, "8.8.8.8" or "myservice.appspot.com". 1348 /// It should be either a valid IPv4 address or a fully-qualified domain
1376 */ 1349 /// name.
1350 /// For example, "8.8.8.8" or "myservice.appspot.com".
1377 core.String target; 1351 core.String target;
1378 1352
1379 Endpoint(); 1353 Endpoint();
1380 1354
1381 Endpoint.fromJson(core.Map _json) { 1355 Endpoint.fromJson(core.Map _json) {
1382 if (_json.containsKey("aliases")) { 1356 if (_json.containsKey("aliases")) {
1383 aliases = _json["aliases"]; 1357 aliases = _json["aliases"];
1384 } 1358 }
1385 if (_json.containsKey("allowCors")) { 1359 if (_json.containsKey("allowCors")) {
1386 allowCors = _json["allowCors"]; 1360 allowCors = _json["allowCors"];
1387 } 1361 }
1388 if (_json.containsKey("apis")) { 1362 if (_json.containsKey("apis")) {
1389 apis = _json["apis"]; 1363 apis = _json["apis"];
1390 } 1364 }
1391 if (_json.containsKey("features")) { 1365 if (_json.containsKey("features")) {
1392 features = _json["features"]; 1366 features = _json["features"];
1393 } 1367 }
1394 if (_json.containsKey("name")) { 1368 if (_json.containsKey("name")) {
1395 name = _json["name"]; 1369 name = _json["name"];
1396 } 1370 }
1397 if (_json.containsKey("target")) { 1371 if (_json.containsKey("target")) {
1398 target = _json["target"]; 1372 target = _json["target"];
1399 } 1373 }
1400 } 1374 }
1401 1375
1402 core.Map<core.String, core.Object> toJson() { 1376 core.Map<core.String, core.Object> toJson() {
1403 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1377 final core.Map<core.String, core.Object> _json =
1378 new core.Map<core.String, core.Object>();
1404 if (aliases != null) { 1379 if (aliases != null) {
1405 _json["aliases"] = aliases; 1380 _json["aliases"] = aliases;
1406 } 1381 }
1407 if (allowCors != null) { 1382 if (allowCors != null) {
1408 _json["allowCors"] = allowCors; 1383 _json["allowCors"] = allowCors;
1409 } 1384 }
1410 if (apis != null) { 1385 if (apis != null) {
1411 _json["apis"] = apis; 1386 _json["apis"] = apis;
1412 } 1387 }
1413 if (features != null) { 1388 if (features != null) {
1414 _json["features"] = features; 1389 _json["features"] = features;
1415 } 1390 }
1416 if (name != null) { 1391 if (name != null) {
1417 _json["name"] = name; 1392 _json["name"] = name;
1418 } 1393 }
1419 if (target != null) { 1394 if (target != null) {
1420 _json["target"] = target; 1395 _json["target"] = target;
1421 } 1396 }
1422 return _json; 1397 return _json;
1423 } 1398 }
1424 } 1399 }
1425 1400
1426 /** Enum type definition. */ 1401 /// Enum type definition.
1427 class Enum { 1402 class Enum {
1428 /** Enum value definitions. */ 1403 /// Enum value definitions.
1429 core.List<EnumValue> enumvalue; 1404 core.List<EnumValue> enumvalue;
1430 /** Enum type name. */ 1405
1406 /// Enum type name.
1431 core.String name; 1407 core.String name;
1432 /** Protocol buffer options. */ 1408
1409 /// Protocol buffer options.
1433 core.List<Option> options; 1410 core.List<Option> options;
1434 /** The source context. */ 1411
1412 /// The source context.
1435 SourceContext sourceContext; 1413 SourceContext sourceContext;
1436 /** 1414
1437 * The source syntax. 1415 /// The source syntax.
1438 * Possible string values are: 1416 /// Possible string values are:
1439 * - "SYNTAX_PROTO2" : Syntax `proto2`. 1417 /// - "SYNTAX_PROTO2" : Syntax `proto2`.
1440 * - "SYNTAX_PROTO3" : Syntax `proto3`. 1418 /// - "SYNTAX_PROTO3" : Syntax `proto3`.
1441 */
1442 core.String syntax; 1419 core.String syntax;
1443 1420
1444 Enum(); 1421 Enum();
1445 1422
1446 Enum.fromJson(core.Map _json) { 1423 Enum.fromJson(core.Map _json) {
1447 if (_json.containsKey("enumvalue")) { 1424 if (_json.containsKey("enumvalue")) {
1448 enumvalue = _json["enumvalue"].map((value) => new EnumValue.fromJson(value )).toList(); 1425 enumvalue = _json["enumvalue"]
1426 .map((value) => new EnumValue.fromJson(value))
1427 .toList();
1449 } 1428 }
1450 if (_json.containsKey("name")) { 1429 if (_json.containsKey("name")) {
1451 name = _json["name"]; 1430 name = _json["name"];
1452 } 1431 }
1453 if (_json.containsKey("options")) { 1432 if (_json.containsKey("options")) {
1454 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 1433 options =
1434 _json["options"].map((value) => new Option.fromJson(value)).toList();
1455 } 1435 }
1456 if (_json.containsKey("sourceContext")) { 1436 if (_json.containsKey("sourceContext")) {
1457 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); 1437 sourceContext = new SourceContext.fromJson(_json["sourceContext"]);
1458 } 1438 }
1459 if (_json.containsKey("syntax")) { 1439 if (_json.containsKey("syntax")) {
1460 syntax = _json["syntax"]; 1440 syntax = _json["syntax"];
1461 } 1441 }
1462 } 1442 }
1463 1443
1464 core.Map<core.String, core.Object> toJson() { 1444 core.Map<core.String, core.Object> toJson() {
1465 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1445 final core.Map<core.String, core.Object> _json =
1446 new core.Map<core.String, core.Object>();
1466 if (enumvalue != null) { 1447 if (enumvalue != null) {
1467 _json["enumvalue"] = enumvalue.map((value) => (value).toJson()).toList(); 1448 _json["enumvalue"] = enumvalue.map((value) => (value).toJson()).toList();
1468 } 1449 }
1469 if (name != null) { 1450 if (name != null) {
1470 _json["name"] = name; 1451 _json["name"] = name;
1471 } 1452 }
1472 if (options != null) { 1453 if (options != null) {
1473 _json["options"] = options.map((value) => (value).toJson()).toList(); 1454 _json["options"] = options.map((value) => (value).toJson()).toList();
1474 } 1455 }
1475 if (sourceContext != null) { 1456 if (sourceContext != null) {
1476 _json["sourceContext"] = (sourceContext).toJson(); 1457 _json["sourceContext"] = (sourceContext).toJson();
1477 } 1458 }
1478 if (syntax != null) { 1459 if (syntax != null) {
1479 _json["syntax"] = syntax; 1460 _json["syntax"] = syntax;
1480 } 1461 }
1481 return _json; 1462 return _json;
1482 } 1463 }
1483 } 1464 }
1484 1465
1485 /** Enum value definition. */ 1466 /// Enum value definition.
1486 class EnumValue { 1467 class EnumValue {
1487 /** Enum value name. */ 1468 /// Enum value name.
1488 core.String name; 1469 core.String name;
1489 /** Enum value number. */ 1470
1471 /// Enum value number.
1490 core.int number; 1472 core.int number;
1491 /** Protocol buffer options. */ 1473
1474 /// Protocol buffer options.
1492 core.List<Option> options; 1475 core.List<Option> options;
1493 1476
1494 EnumValue(); 1477 EnumValue();
1495 1478
1496 EnumValue.fromJson(core.Map _json) { 1479 EnumValue.fromJson(core.Map _json) {
1497 if (_json.containsKey("name")) { 1480 if (_json.containsKey("name")) {
1498 name = _json["name"]; 1481 name = _json["name"];
1499 } 1482 }
1500 if (_json.containsKey("number")) { 1483 if (_json.containsKey("number")) {
1501 number = _json["number"]; 1484 number = _json["number"];
1502 } 1485 }
1503 if (_json.containsKey("options")) { 1486 if (_json.containsKey("options")) {
1504 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 1487 options =
1488 _json["options"].map((value) => new Option.fromJson(value)).toList();
1505 } 1489 }
1506 } 1490 }
1507 1491
1508 core.Map<core.String, core.Object> toJson() { 1492 core.Map<core.String, core.Object> toJson() {
1509 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1493 final core.Map<core.String, core.Object> _json =
1494 new core.Map<core.String, core.Object>();
1510 if (name != null) { 1495 if (name != null) {
1511 _json["name"] = name; 1496 _json["name"] = name;
1512 } 1497 }
1513 if (number != null) { 1498 if (number != null) {
1514 _json["number"] = number; 1499 _json["number"] = number;
1515 } 1500 }
1516 if (options != null) { 1501 if (options != null) {
1517 _json["options"] = options.map((value) => (value).toJson()).toList(); 1502 _json["options"] = options.map((value) => (value).toJson()).toList();
1518 } 1503 }
1519 return _json; 1504 return _json;
1520 } 1505 }
1521 } 1506 }
1522 1507
1523 /** 1508 /// Experimental service configuration. These configuration options can
1524 * Experimental service configuration. These configuration options can 1509 /// only be used by whitelisted users.
1525 * only be used by whitelisted users.
1526 */
1527 class Experimental { 1510 class Experimental {
1528 /** Authorization configuration. */ 1511 /// Authorization configuration.
1529 AuthorizationConfig authorization; 1512 AuthorizationConfig authorization;
1530 1513
1531 Experimental(); 1514 Experimental();
1532 1515
1533 Experimental.fromJson(core.Map _json) { 1516 Experimental.fromJson(core.Map _json) {
1534 if (_json.containsKey("authorization")) { 1517 if (_json.containsKey("authorization")) {
1535 authorization = new AuthorizationConfig.fromJson(_json["authorization"]); 1518 authorization = new AuthorizationConfig.fromJson(_json["authorization"]);
1536 } 1519 }
1537 } 1520 }
1538 1521
1539 core.Map<core.String, core.Object> toJson() { 1522 core.Map<core.String, core.Object> toJson() {
1540 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1523 final core.Map<core.String, core.Object> _json =
1524 new core.Map<core.String, core.Object>();
1541 if (authorization != null) { 1525 if (authorization != null) {
1542 _json["authorization"] = (authorization).toJson(); 1526 _json["authorization"] = (authorization).toJson();
1543 } 1527 }
1544 return _json; 1528 return _json;
1545 } 1529 }
1546 } 1530 }
1547 1531
1548 /** A single field of a message type. */ 1532 /// A single field of a message type.
1549 class Field { 1533 class Field {
1550 /** 1534 /// The field cardinality.
1551 * The field cardinality. 1535 /// Possible string values are:
1552 * Possible string values are: 1536 /// - "CARDINALITY_UNKNOWN" : For fields with unknown cardinality.
1553 * - "CARDINALITY_UNKNOWN" : For fields with unknown cardinality. 1537 /// - "CARDINALITY_OPTIONAL" : For optional fields.
1554 * - "CARDINALITY_OPTIONAL" : For optional fields. 1538 /// - "CARDINALITY_REQUIRED" : For required fields. Proto2 syntax only.
1555 * - "CARDINALITY_REQUIRED" : For required fields. Proto2 syntax only. 1539 /// - "CARDINALITY_REPEATED" : For repeated fields.
1556 * - "CARDINALITY_REPEATED" : For repeated fields.
1557 */
1558 core.String cardinality; 1540 core.String cardinality;
1559 /** 1541
1560 * The string value of the default value of this field. Proto2 syntax only. 1542 /// The string value of the default value of this field. Proto2 syntax only.
1561 */
1562 core.String defaultValue; 1543 core.String defaultValue;
1563 /** The field JSON name. */ 1544
1545 /// The field JSON name.
1564 core.String jsonName; 1546 core.String jsonName;
1565 /** 1547
1566 * The field type. 1548 /// The field type.
1567 * Possible string values are: 1549 /// Possible string values are:
1568 * - "TYPE_UNKNOWN" : Field type unknown. 1550 /// - "TYPE_UNKNOWN" : Field type unknown.
1569 * - "TYPE_DOUBLE" : Field type double. 1551 /// - "TYPE_DOUBLE" : Field type double.
1570 * - "TYPE_FLOAT" : Field type float. 1552 /// - "TYPE_FLOAT" : Field type float.
1571 * - "TYPE_INT64" : Field type int64. 1553 /// - "TYPE_INT64" : Field type int64.
1572 * - "TYPE_UINT64" : Field type uint64. 1554 /// - "TYPE_UINT64" : Field type uint64.
1573 * - "TYPE_INT32" : Field type int32. 1555 /// - "TYPE_INT32" : Field type int32.
1574 * - "TYPE_FIXED64" : Field type fixed64. 1556 /// - "TYPE_FIXED64" : Field type fixed64.
1575 * - "TYPE_FIXED32" : Field type fixed32. 1557 /// - "TYPE_FIXED32" : Field type fixed32.
1576 * - "TYPE_BOOL" : Field type bool. 1558 /// - "TYPE_BOOL" : Field type bool.
1577 * - "TYPE_STRING" : Field type string. 1559 /// - "TYPE_STRING" : Field type string.
1578 * - "TYPE_GROUP" : Field type group. Proto2 syntax only, and deprecated. 1560 /// - "TYPE_GROUP" : Field type group. Proto2 syntax only, and deprecated.
1579 * - "TYPE_MESSAGE" : Field type message. 1561 /// - "TYPE_MESSAGE" : Field type message.
1580 * - "TYPE_BYTES" : Field type bytes. 1562 /// - "TYPE_BYTES" : Field type bytes.
1581 * - "TYPE_UINT32" : Field type uint32. 1563 /// - "TYPE_UINT32" : Field type uint32.
1582 * - "TYPE_ENUM" : Field type enum. 1564 /// - "TYPE_ENUM" : Field type enum.
1583 * - "TYPE_SFIXED32" : Field type sfixed32. 1565 /// - "TYPE_SFIXED32" : Field type sfixed32.
1584 * - "TYPE_SFIXED64" : Field type sfixed64. 1566 /// - "TYPE_SFIXED64" : Field type sfixed64.
1585 * - "TYPE_SINT32" : Field type sint32. 1567 /// - "TYPE_SINT32" : Field type sint32.
1586 * - "TYPE_SINT64" : Field type sint64. 1568 /// - "TYPE_SINT64" : Field type sint64.
1587 */
1588 core.String kind; 1569 core.String kind;
1589 /** The field name. */ 1570
1571 /// The field name.
1590 core.String name; 1572 core.String name;
1591 /** The field number. */ 1573
1574 /// The field number.
1592 core.int number; 1575 core.int number;
1593 /** 1576
1594 * The index of the field type in `Type.oneofs`, for message or enumeration 1577 /// The index of the field type in `Type.oneofs`, for message or enumeration
1595 * types. The first type has index 1; zero means the type is not in the list. 1578 /// types. The first type has index 1; zero means the type is not in the
1596 */ 1579 /// list.
1597 core.int oneofIndex; 1580 core.int oneofIndex;
1598 /** The protocol buffer options. */ 1581
1582 /// The protocol buffer options.
1599 core.List<Option> options; 1583 core.List<Option> options;
1600 /** Whether to use alternative packed wire representation. */ 1584
1585 /// Whether to use alternative packed wire representation.
1601 core.bool packed; 1586 core.bool packed;
1602 /** 1587
1603 * The field type URL, without the scheme, for message or enumeration 1588 /// The field type URL, without the scheme, for message or enumeration
1604 * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. 1589 /// types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1605 */
1606 core.String typeUrl; 1590 core.String typeUrl;
1607 1591
1608 Field(); 1592 Field();
1609 1593
1610 Field.fromJson(core.Map _json) { 1594 Field.fromJson(core.Map _json) {
1611 if (_json.containsKey("cardinality")) { 1595 if (_json.containsKey("cardinality")) {
1612 cardinality = _json["cardinality"]; 1596 cardinality = _json["cardinality"];
1613 } 1597 }
1614 if (_json.containsKey("defaultValue")) { 1598 if (_json.containsKey("defaultValue")) {
1615 defaultValue = _json["defaultValue"]; 1599 defaultValue = _json["defaultValue"];
1616 } 1600 }
1617 if (_json.containsKey("jsonName")) { 1601 if (_json.containsKey("jsonName")) {
1618 jsonName = _json["jsonName"]; 1602 jsonName = _json["jsonName"];
1619 } 1603 }
1620 if (_json.containsKey("kind")) { 1604 if (_json.containsKey("kind")) {
1621 kind = _json["kind"]; 1605 kind = _json["kind"];
1622 } 1606 }
1623 if (_json.containsKey("name")) { 1607 if (_json.containsKey("name")) {
1624 name = _json["name"]; 1608 name = _json["name"];
1625 } 1609 }
1626 if (_json.containsKey("number")) { 1610 if (_json.containsKey("number")) {
1627 number = _json["number"]; 1611 number = _json["number"];
1628 } 1612 }
1629 if (_json.containsKey("oneofIndex")) { 1613 if (_json.containsKey("oneofIndex")) {
1630 oneofIndex = _json["oneofIndex"]; 1614 oneofIndex = _json["oneofIndex"];
1631 } 1615 }
1632 if (_json.containsKey("options")) { 1616 if (_json.containsKey("options")) {
1633 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 1617 options =
1618 _json["options"].map((value) => new Option.fromJson(value)).toList();
1634 } 1619 }
1635 if (_json.containsKey("packed")) { 1620 if (_json.containsKey("packed")) {
1636 packed = _json["packed"]; 1621 packed = _json["packed"];
1637 } 1622 }
1638 if (_json.containsKey("typeUrl")) { 1623 if (_json.containsKey("typeUrl")) {
1639 typeUrl = _json["typeUrl"]; 1624 typeUrl = _json["typeUrl"];
1640 } 1625 }
1641 } 1626 }
1642 1627
1643 core.Map<core.String, core.Object> toJson() { 1628 core.Map<core.String, core.Object> toJson() {
1644 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1629 final core.Map<core.String, core.Object> _json =
1630 new core.Map<core.String, core.Object>();
1645 if (cardinality != null) { 1631 if (cardinality != null) {
1646 _json["cardinality"] = cardinality; 1632 _json["cardinality"] = cardinality;
1647 } 1633 }
1648 if (defaultValue != null) { 1634 if (defaultValue != null) {
1649 _json["defaultValue"] = defaultValue; 1635 _json["defaultValue"] = defaultValue;
1650 } 1636 }
1651 if (jsonName != null) { 1637 if (jsonName != null) {
1652 _json["jsonName"] = jsonName; 1638 _json["jsonName"] = jsonName;
1653 } 1639 }
1654 if (kind != null) { 1640 if (kind != null) {
(...skipping 14 matching lines...) Expand all
1669 if (packed != null) { 1655 if (packed != null) {
1670 _json["packed"] = packed; 1656 _json["packed"] = packed;
1671 } 1657 }
1672 if (typeUrl != null) { 1658 if (typeUrl != null) {
1673 _json["typeUrl"] = typeUrl; 1659 _json["typeUrl"] = typeUrl;
1674 } 1660 }
1675 return _json; 1661 return _json;
1676 } 1662 }
1677 } 1663 }
1678 1664
1679 /** 1665 /// Defines the HTTP configuration for an API service. It contains a list of
1680 * Defines the HTTP configuration for an API service. It contains a list of 1666 /// HttpRule, each specifying the mapping of an RPC method
1681 * HttpRule, each specifying the mapping of an RPC method 1667 /// to one or more HTTP REST API methods.
1682 * to one or more HTTP REST API methods.
1683 */
1684 class Http { 1668 class Http {
1685 /** 1669 /// When set to true, URL path parmeters will be fully URI-decoded except in
1686 * When set to true, URL path parmeters will be fully URI-decoded except in 1670 /// cases of single segment matches in reserved expansion, where "%2F" will
1687 * cases of single segment matches in reserved expansion, where "%2F" will be 1671 /// be
1688 * left encoded. 1672 /// left encoded.
1689 * 1673 ///
1690 * The default behavior is to not decode RFC 6570 reserved characters in multi 1674 /// The default behavior is to not decode RFC 6570 reserved characters in
1691 * segment matches. 1675 /// multi
1692 */ 1676 /// segment matches.
1693 core.bool fullyDecodeReservedExpansion; 1677 core.bool fullyDecodeReservedExpansion;
1694 /** 1678
1695 * A list of HTTP configuration rules that apply to individual API methods. 1679 /// A list of HTTP configuration rules that apply to individual API methods.
1696 * 1680 ///
1697 * **NOTE:** All service configuration rules follow "last one wins" order. 1681 /// **NOTE:** All service configuration rules follow "last one wins" order.
1698 */
1699 core.List<HttpRule> rules; 1682 core.List<HttpRule> rules;
1700 1683
1701 Http(); 1684 Http();
1702 1685
1703 Http.fromJson(core.Map _json) { 1686 Http.fromJson(core.Map _json) {
1704 if (_json.containsKey("fullyDecodeReservedExpansion")) { 1687 if (_json.containsKey("fullyDecodeReservedExpansion")) {
1705 fullyDecodeReservedExpansion = _json["fullyDecodeReservedExpansion"]; 1688 fullyDecodeReservedExpansion = _json["fullyDecodeReservedExpansion"];
1706 } 1689 }
1707 if (_json.containsKey("rules")) { 1690 if (_json.containsKey("rules")) {
1708 rules = _json["rules"].map((value) => new HttpRule.fromJson(value)).toList (); 1691 rules =
1692 _json["rules"].map((value) => new HttpRule.fromJson(value)).toList();
1709 } 1693 }
1710 } 1694 }
1711 1695
1712 core.Map<core.String, core.Object> toJson() { 1696 core.Map<core.String, core.Object> toJson() {
1713 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 1697 final core.Map<core.String, core.Object> _json =
1698 new core.Map<core.String, core.Object>();
1714 if (fullyDecodeReservedExpansion != null) { 1699 if (fullyDecodeReservedExpansion != null) {
1715 _json["fullyDecodeReservedExpansion"] = fullyDecodeReservedExpansion; 1700 _json["fullyDecodeReservedExpansion"] = fullyDecodeReservedExpansion;
1716 } 1701 }
1717 if (rules != null) { 1702 if (rules != null) {
1718 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 1703 _json["rules"] = rules.map((value) => (value).toJson()).toList();
1719 } 1704 }
1720 return _json; 1705 return _json;
1721 } 1706 }
1722 } 1707 }
1723 1708
1724 /** 1709 /// `HttpRule` defines the mapping of an RPC method to one or more HTTP
1725 * `HttpRule` defines the mapping of an RPC method to one or more HTTP 1710 /// REST API methods. The mapping specifies how different portions of the RPC
1726 * REST API methods. The mapping specifies how different portions of the RPC 1711 /// request message are mapped to URL path, URL query parameters, and
1727 * request message are mapped to URL path, URL query parameters, and 1712 /// HTTP request body. The mapping is typically specified as an
1728 * HTTP request body. The mapping is typically specified as an 1713 /// `google.api.http` annotation on the RPC method,
1729 * `google.api.http` annotation on the RPC method, 1714 /// see "google/api/annotations.proto" for details.
1730 * see "google/api/annotations.proto" for details. 1715 ///
1731 * 1716 /// The mapping consists of a field specifying the path template and
1732 * The mapping consists of a field specifying the path template and 1717 /// method kind. The path template can refer to fields in the request
1733 * method kind. The path template can refer to fields in the request 1718 /// message, as in the example below which describes a REST GET
1734 * message, as in the example below which describes a REST GET 1719 /// operation on a resource collection of messages:
1735 * operation on a resource collection of messages: 1720 ///
1736 * 1721 ///
1737 * 1722 /// service Messaging {
1738 * service Messaging { 1723 /// rpc GetMessage(GetMessageRequest) returns (Message) {
1739 * rpc GetMessage(GetMessageRequest) returns (Message) { 1724 /// option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
1740 * option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}"; 1725 /// }
1741 * } 1726 /// }
1742 * } 1727 /// message GetMessageRequest {
1743 * message GetMessageRequest { 1728 /// message SubMessage {
1744 * message SubMessage { 1729 /// string subfield = 1;
1745 * string subfield = 1; 1730 /// }
1746 * } 1731 /// string message_id = 1; // mapped to the URL
1747 * string message_id = 1; // mapped to the URL 1732 /// SubMessage sub = 2; // `sub.subfield` is url-mapped
1748 * SubMessage sub = 2; // `sub.subfield` is url-mapped 1733 /// }
1749 * } 1734 /// message Message {
1750 * message Message { 1735 /// string text = 1; // content of the resource
1751 * string text = 1; // content of the resource 1736 /// }
1752 * } 1737 ///
1753 * 1738 /// The same http annotation can alternatively be expressed inside the
1754 * The same http annotation can alternatively be expressed inside the 1739 /// `GRPC API Configuration` YAML file.
1755 * `GRPC API Configuration` YAML file. 1740 ///
1756 * 1741 /// http:
1757 * http: 1742 /// rules:
1758 * rules: 1743 /// - selector: <proto_package_name>.Messaging.GetMessage
1759 * - selector: <proto_package_name>.Messaging.GetMessage 1744 /// get: /v1/messages/{message_id}/{sub.subfield}
1760 * get: /v1/messages/{message_id}/{sub.subfield} 1745 ///
1761 * 1746 /// This definition enables an automatic, bidrectional mapping of HTTP
1762 * This definition enables an automatic, bidrectional mapping of HTTP 1747 /// JSON to RPC. Example:
1763 * JSON to RPC. Example: 1748 ///
1764 * 1749 /// HTTP | RPC
1765 * HTTP | RPC 1750 /// -----|-----
1766 * -----|----- 1751 /// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub:
1767 * `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: 1752 /// SubMessage(subfield: "foo"))`
1768 * SubMessage(subfield: "foo"))` 1753 ///
1769 * 1754 /// In general, not only fields but also field paths can be referenced
1770 * In general, not only fields but also field paths can be referenced 1755 /// from a path pattern. Fields mapped to the path pattern cannot be
1771 * from a path pattern. Fields mapped to the path pattern cannot be 1756 /// repeated and must have a primitive (non-message) type.
1772 * repeated and must have a primitive (non-message) type. 1757 ///
1773 * 1758 /// Any fields in the request message which are not bound by the path
1774 * Any fields in the request message which are not bound by the path 1759 /// pattern automatically become (optional) HTTP query
1775 * pattern automatically become (optional) HTTP query 1760 /// parameters. Assume the following definition of the request message:
1776 * parameters. Assume the following definition of the request message: 1761 ///
1777 * 1762 ///
1778 * 1763 /// service Messaging {
1779 * service Messaging { 1764 /// rpc GetMessage(GetMessageRequest) returns (Message) {
1780 * rpc GetMessage(GetMessageRequest) returns (Message) { 1765 /// option (google.api.http).get = "/v1/messages/{message_id}";
1781 * option (google.api.http).get = "/v1/messages/{message_id}"; 1766 /// }
1782 * } 1767 /// }
1783 * } 1768 /// message GetMessageRequest {
1784 * message GetMessageRequest { 1769 /// message SubMessage {
1785 * message SubMessage { 1770 /// string subfield = 1;
1786 * string subfield = 1; 1771 /// }
1787 * } 1772 /// string message_id = 1; // mapped to the URL
1788 * string message_id = 1; // mapped to the URL 1773 /// int64 revision = 2; // becomes a parameter
1789 * int64 revision = 2; // becomes a parameter 1774 /// SubMessage sub = 3; // `sub.subfield` becomes a parameter
1790 * SubMessage sub = 3; // `sub.subfield` becomes a parameter 1775 /// }
1791 * } 1776 ///
1792 * 1777 ///
1793 * 1778 /// This enables a HTTP JSON to RPC mapping as below:
1794 * This enables a HTTP JSON to RPC mapping as below: 1779 ///
1795 * 1780 /// HTTP | RPC
1796 * HTTP | RPC 1781 /// -----|-----
1797 * -----|----- 1782 /// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
1798 * `GET /v1/messages/123456?revision=2&sub.subfield=foo` | 1783 /// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
1799 * `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: 1784 /// "foo"))`
1800 * "foo"))` 1785 ///
1801 * 1786 /// Note that fields which are mapped to HTTP parameters must have a
1802 * Note that fields which are mapped to HTTP parameters must have a 1787 /// primitive type or a repeated primitive type. Message types are not
1803 * primitive type or a repeated primitive type. Message types are not 1788 /// allowed. In the case of a repeated type, the parameter can be
1804 * allowed. In the case of a repeated type, the parameter can be 1789 /// repeated in the URL, as in `...?param=A&param=B`.
1805 * repeated in the URL, as in `...?param=A&param=B`. 1790 ///
1806 * 1791 /// For HTTP method kinds which allow a request body, the `body` field
1807 * For HTTP method kinds which allow a request body, the `body` field 1792 /// specifies the mapping. Consider a REST update method on the
1808 * specifies the mapping. Consider a REST update method on the 1793 /// message resource collection:
1809 * message resource collection: 1794 ///
1810 * 1795 ///
1811 * 1796 /// service Messaging {
1812 * service Messaging { 1797 /// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
1813 * rpc UpdateMessage(UpdateMessageRequest) returns (Message) { 1798 /// option (google.api.http) = {
1814 * option (google.api.http) = { 1799 /// put: "/v1/messages/{message_id}"
1815 * put: "/v1/messages/{message_id}" 1800 /// body: "message"
1816 * body: "message" 1801 /// };
1817 * }; 1802 /// }
1818 * } 1803 /// }
1819 * } 1804 /// message UpdateMessageRequest {
1820 * message UpdateMessageRequest { 1805 /// string message_id = 1; // mapped to the URL
1821 * string message_id = 1; // mapped to the URL 1806 /// Message message = 2; // mapped to the body
1822 * Message message = 2; // mapped to the body 1807 /// }
1823 * } 1808 ///
1824 * 1809 ///
1825 * 1810 /// The following HTTP JSON to RPC mapping is enabled, where the
1826 * The following HTTP JSON to RPC mapping is enabled, where the 1811 /// representation of the JSON in the request body is determined by
1827 * representation of the JSON in the request body is determined by 1812 /// protos JSON encoding:
1828 * protos JSON encoding: 1813 ///
1829 * 1814 /// HTTP | RPC
1830 * HTTP | RPC 1815 /// -----|-----
1831 * -----|----- 1816 /// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
1832 * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: 1817 /// "123456" message { text: "Hi!" })`
1833 * "123456" message { text: "Hi!" })` 1818 ///
1834 * 1819 /// The special name `*` can be used in the body mapping to define that
1835 * The special name `*` can be used in the body mapping to define that 1820 /// every field not bound by the path template should be mapped to the
1836 * every field not bound by the path template should be mapped to the 1821 /// request body. This enables the following alternative definition of
1837 * request body. This enables the following alternative definition of 1822 /// the update method:
1838 * the update method: 1823 ///
1839 * 1824 /// service Messaging {
1840 * service Messaging { 1825 /// rpc UpdateMessage(Message) returns (Message) {
1841 * rpc UpdateMessage(Message) returns (Message) { 1826 /// option (google.api.http) = {
1842 * option (google.api.http) = { 1827 /// put: "/v1/messages/{message_id}"
1843 * put: "/v1/messages/{message_id}" 1828 /// body: "*"
1844 * body: "*" 1829 /// };
1845 * }; 1830 /// }
1846 * } 1831 /// }
1847 * } 1832 /// message Message {
1848 * message Message { 1833 /// string message_id = 1;
1849 * string message_id = 1; 1834 /// string text = 2;
1850 * string text = 2; 1835 /// }
1851 * } 1836 ///
1852 * 1837 ///
1853 * 1838 /// The following HTTP JSON to RPC mapping is enabled:
1854 * The following HTTP JSON to RPC mapping is enabled: 1839 ///
1855 * 1840 /// HTTP | RPC
1856 * HTTP | RPC 1841 /// -----|-----
1857 * -----|----- 1842 /// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
1858 * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: 1843 /// "123456" text: "Hi!")`
1859 * "123456" text: "Hi!")` 1844 ///
1860 * 1845 /// Note that when using `*` in the body mapping, it is not possible to
1861 * Note that when using `*` in the body mapping, it is not possible to 1846 /// have HTTP parameters, as all fields not bound by the path end in
1862 * have HTTP parameters, as all fields not bound by the path end in 1847 /// the body. This makes this option more rarely used in practice of
1863 * the body. This makes this option more rarely used in practice of 1848 /// defining REST APIs. The common usage of `*` is in custom methods
1864 * defining REST APIs. The common usage of `*` is in custom methods 1849 /// which don't use the URL at all for transferring data.
1865 * which don't use the URL at all for transferring data. 1850 ///
1866 * 1851 /// It is possible to define multiple HTTP methods for one RPC by using
1867 * It is possible to define multiple HTTP methods for one RPC by using 1852 /// the `additional_bindings` option. Example:
1868 * the `additional_bindings` option. Example: 1853 ///
1869 * 1854 /// service Messaging {
1870 * service Messaging { 1855 /// rpc GetMessage(GetMessageRequest) returns (Message) {
1871 * rpc GetMessage(GetMessageRequest) returns (Message) { 1856 /// option (google.api.http) = {
1872 * option (google.api.http) = { 1857 /// get: "/v1/messages/{message_id}"
1873 * get: "/v1/messages/{message_id}" 1858 /// additional_bindings {
1874 * additional_bindings { 1859 /// get: "/v1/users/{user_id}/messages/{message_id}"
1875 * get: "/v1/users/{user_id}/messages/{message_id}" 1860 /// }
1876 * } 1861 /// };
1877 * }; 1862 /// }
1878 * } 1863 /// }
1879 * } 1864 /// message GetMessageRequest {
1880 * message GetMessageRequest { 1865 /// string message_id = 1;
1881 * string message_id = 1; 1866 /// string user_id = 2;
1882 * string user_id = 2; 1867 /// }
1883 * } 1868 ///
1884 * 1869 ///
1885 * 1870 /// This enables the following two alternative HTTP JSON to RPC
1886 * This enables the following two alternative HTTP JSON to RPC 1871 /// mappings:
1887 * mappings: 1872 ///
1888 * 1873 /// HTTP | RPC
1889 * HTTP | RPC 1874 /// -----|-----
1890 * -----|----- 1875 /// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
1891 * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` 1876 /// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
1892 * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: 1877 /// "123456")`
1893 * "123456")` 1878 ///
1894 * 1879 /// # Rules for HTTP mapping
1895 * # Rules for HTTP mapping 1880 ///
1896 * 1881 /// The rules for mapping HTTP path, query parameters, and body fields
1897 * The rules for mapping HTTP path, query parameters, and body fields 1882 /// to the request message are as follows:
1898 * to the request message are as follows: 1883 ///
1899 * 1884 /// 1. The `body` field specifies either `*` or a field path, or is
1900 * 1. The `body` field specifies either `*` or a field path, or is 1885 /// omitted. If omitted, it indicates there is no HTTP request body.
1901 * omitted. If omitted, it indicates there is no HTTP request body. 1886 /// 2. Leaf fields (recursive expansion of nested messages in the
1902 * 2. Leaf fields (recursive expansion of nested messages in the 1887 /// request) can be classified into three types:
1903 * request) can be classified into three types: 1888 /// (a) Matched in the URL template.
1904 * (a) Matched in the URL template. 1889 /// (b) Covered by body (if body is `*`, everything except (a) fields;
1905 * (b) Covered by body (if body is `*`, everything except (a) fields; 1890 /// else everything under the body field)
1906 * else everything under the body field) 1891 /// (c) All other fields.
1907 * (c) All other fields. 1892 /// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
1908 * 3. URL query parameters found in the HTTP request are mapped to (c) fields. 1893 /// 4. Any body sent with an HTTP request can contain only (b) fields.
1909 * 4. Any body sent with an HTTP request can contain only (b) fields. 1894 ///
1910 * 1895 /// The syntax of the path template is as follows:
1911 * The syntax of the path template is as follows: 1896 ///
1912 * 1897 /// Template = "/" Segments [ Verb ] ;
1913 * Template = "/" Segments [ Verb ] ; 1898 /// Segments = Segment { "/" Segment } ;
1914 * Segments = Segment { "/" Segment } ; 1899 /// Segment = "*" | "**" | LITERAL | Variable ;
1915 * Segment = "*" | "**" | LITERAL | Variable ; 1900 /// Variable = "{" FieldPath [ "=" Segments ] "}" ;
1916 * Variable = "{" FieldPath [ "=" Segments ] "}" ; 1901 /// FieldPath = IDENT { "." IDENT } ;
1917 * FieldPath = IDENT { "." IDENT } ; 1902 /// Verb = ":" LITERAL ;
1918 * Verb = ":" LITERAL ; 1903 ///
1919 * 1904 /// The syntax `*` matches a single path segment. The syntax `**` matches zero
1920 * The syntax `*` matches a single path segment. The syntax `**` matches zero 1905 /// or more path segments, which must be the last part of the path except the
1921 * or more path segments, which must be the last part of the path except the 1906 /// `Verb`. The syntax `LITERAL` matches literal text in the path.
1922 * `Verb`. The syntax `LITERAL` matches literal text in the path. 1907 ///
1923 * 1908 /// The syntax `Variable` matches part of the URL path as specified by its
1924 * The syntax `Variable` matches part of the URL path as specified by its 1909 /// template. A variable template must not contain other variables. If a
1925 * template. A variable template must not contain other variables. If a variable 1910 /// variable
1926 * matches a single path segment, its template may be omitted, e.g. `{var}` 1911 /// matches a single path segment, its template may be omitted, e.g. `{var}`
1927 * is equivalent to `{var=*}`. 1912 /// is equivalent to `{var=*}`.
1928 * 1913 ///
1929 * If a variable contains exactly one path segment, such as `"{var}"` or 1914 /// If a variable contains exactly one path segment, such as `"{var}"` or
1930 * `"{var=*}"`, when such a variable is expanded into a URL path, all characters 1915 /// `"{var=*}"`, when such a variable is expanded into a URL path, all
1931 * except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the 1916 /// characters
1932 * Discovery Document as `{var}`. 1917 /// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
1933 * 1918 /// Discovery Document as `{var}`.
1934 * If a variable contains one or more path segments, such as `"{var=foo / * }"` 1919 ///
1935 * or `"{var=**}"`, when such a variable is expanded into a URL path, all 1920 /// If a variable contains one or more path segments, such as `"{var=foo / *
1936 * characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables 1921 /// }"`
1937 * show up in the Discovery Document as `{+var}`. 1922 /// or `"{var=**}"`, when such a variable is expanded into a URL path, all
1938 * 1923 /// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
1939 * NOTE: While the single segment variable matches the semantics of 1924 /// show up in the Discovery Document as `{+var}`.
1940 * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 1925 ///
1941 * Simple String Expansion, the multi segment variable **does not** match 1926 /// NOTE: While the single segment variable matches the semantics of
1942 * RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion 1927 /// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
1943 * does not expand special characters like `?` and `#`, which would lead 1928 /// Simple String Expansion, the multi segment variable **does not** match
1944 * to invalid URLs. 1929 /// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
1945 * 1930 /// does not expand special characters like `?` and `#`, which would lead
1946 * NOTE: the field paths in variables and in the `body` must not refer to 1931 /// to invalid URLs.
1947 * repeated fields or map fields. 1932 ///
1948 */ 1933 /// NOTE: the field paths in variables and in the `body` must not refer to
1934 /// repeated fields or map fields.
1949 class HttpRule { 1935 class HttpRule {
1950 /** 1936 /// Additional HTTP bindings for the selector. Nested bindings must
1951 * Additional HTTP bindings for the selector. Nested bindings must 1937 /// not contain an `additional_bindings` field themselves (that is,
1952 * not contain an `additional_bindings` field themselves (that is, 1938 /// the nesting may only be one level deep).
1953 * the nesting may only be one level deep).
1954 */
1955 core.List<HttpRule> additionalBindings; 1939 core.List<HttpRule> additionalBindings;
1956 /** 1940
1957 * Specifies the permission(s) required for an API element for the overall 1941 /// Specifies the permission(s) required for an API element for the overall
1958 * API request to succeed. It is typically used to mark request message fields 1942 /// API request to succeed. It is typically used to mark request message
1959 * that contain the name of the resource and indicates the permissions that 1943 /// fields
1960 * will be checked on that resource. 1944 /// that contain the name of the resource and indicates the permissions that
1961 */ 1945 /// will be checked on that resource.
1962 core.List<AuthorizationRule> authorizations; 1946 core.List<AuthorizationRule> authorizations;
1963 /** 1947
1964 * The name of the request field whose value is mapped to the HTTP body, or 1948 /// The name of the request field whose value is mapped to the HTTP body, or
1965 * `*` for mapping all fields not captured by the path pattern to the HTTP 1949 /// `*` for mapping all fields not captured by the path pattern to the HTTP
1966 * body. NOTE: the referred field must not be a repeated field and must be 1950 /// body. NOTE: the referred field must not be a repeated field and must be
1967 * present at the top-level of request message type. 1951 /// present at the top-level of request message type.
1968 */
1969 core.String body; 1952 core.String body;
1970 /** 1953
1971 * The custom pattern is used for specifying an HTTP method that is not 1954 /// The custom pattern is used for specifying an HTTP method that is not
1972 * included in the `pattern` field, such as HEAD, or "*" to leave the 1955 /// included in the `pattern` field, such as HEAD, or "*" to leave the
1973 * HTTP method unspecified for this rule. The wild-card rule is useful 1956 /// HTTP method unspecified for this rule. The wild-card rule is useful
1974 * for services that provide content to Web (HTML) clients. 1957 /// for services that provide content to Web (HTML) clients.
1975 */
1976 CustomHttpPattern custom; 1958 CustomHttpPattern custom;
1977 /** Used for deleting a resource. */ 1959
1960 /// Used for deleting a resource.
1978 core.String delete; 1961 core.String delete;
1979 /** Used for listing and getting information about resources. */ 1962
1963 /// Used for listing and getting information about resources.
1980 core.String get; 1964 core.String get;
1981 /** 1965
1982 * Use this only for Scotty Requests. Do not use this for bytestream methods. 1966 /// Use this only for Scotty Requests. Do not use this for bytestream
1983 * For media support, add instead [][google.bytestream.RestByteStream] as an 1967 /// methods.
1984 * API to your configuration. 1968 /// For media support, add instead [][google.bytestream.RestByteStream] as an
1985 */ 1969 /// API to your configuration.
1986 MediaDownload mediaDownload; 1970 MediaDownload mediaDownload;
1987 /** 1971
1988 * Use this only for Scotty Requests. Do not use this for media support using 1972 /// Use this only for Scotty Requests. Do not use this for media support
1989 * Bytestream, add instead 1973 /// using
1990 * [][google.bytestream.RestByteStream] as an API to your 1974 /// Bytestream, add instead
1991 * configuration for Bytestream methods. 1975 /// [][google.bytestream.RestByteStream] as an API to your
1992 */ 1976 /// configuration for Bytestream methods.
1993 MediaUpload mediaUpload; 1977 MediaUpload mediaUpload;
1994 /** Used for updating a resource. */ 1978
1979 /// Used for updating a resource.
1995 core.String patch; 1980 core.String patch;
1996 /** Used for creating a resource. */ 1981
1982 /// Used for creating a resource.
1997 core.String post; 1983 core.String post;
1998 /** Used for updating a resource. */ 1984
1985 /// Used for updating a resource.
1999 core.String put; 1986 core.String put;
2000 /** 1987
2001 * The name of the response field whose value is mapped to the HTTP body of 1988 /// The name of the response field whose value is mapped to the HTTP body of
2002 * response. Other response fields are ignored. This field is optional. When 1989 /// response. Other response fields are ignored. This field is optional. When
2003 * not set, the response message will be used as HTTP body of response. 1990 /// not set, the response message will be used as HTTP body of response.
2004 * NOTE: the referred field must be not a repeated field and must be present 1991 /// NOTE: the referred field must be not a repeated field and must be present
2005 * at the top-level of response message type. 1992 /// at the top-level of response message type.
2006 */
2007 core.String responseBody; 1993 core.String responseBody;
2008 /** 1994
2009 * DO NOT USE. This is an experimental field. 1995 /// DO NOT USE. This is an experimental field.
2010 * 1996 ///
2011 * Optional. The REST collection name is by default derived from the URL 1997 /// Optional. The REST collection name is by default derived from the URL
2012 * pattern. If specified, this field overrides the default collection name. 1998 /// pattern. If specified, this field overrides the default collection name.
2013 * Example: 1999 /// Example:
2014 * 2000 ///
2015 * rpc AddressesAggregatedList(AddressesAggregatedListRequest) 2001 /// rpc AddressesAggregatedList(AddressesAggregatedListRequest)
2016 * returns (AddressesAggregatedListResponse) { 2002 /// returns (AddressesAggregatedListResponse) {
2017 * option (google.api.http) = { 2003 /// option (google.api.http) = {
2018 * get: "/v1/projects/{project_id}/aggregated/addresses" 2004 /// get: "/v1/projects/{project_id}/aggregated/addresses"
2019 * rest_collection: "projects.addresses" 2005 /// rest_collection: "projects.addresses"
2020 * }; 2006 /// };
2021 * } 2007 /// }
2022 * 2008 ///
2023 * This method has the automatically derived collection name 2009 /// This method has the automatically derived collection name
2024 * "projects.aggregated". Because, semantically, this rpc is actually an 2010 /// "projects.aggregated". Because, semantically, this rpc is actually an
2025 * operation on the "projects.addresses" collection, the `rest_collection` 2011 /// operation on the "projects.addresses" collection, the `rest_collection`
2026 * field is configured to override the derived collection name. 2012 /// field is configured to override the derived collection name.
2027 */
2028 core.String restCollection; 2013 core.String restCollection;
2029 /** 2014
2030 * DO NOT USE. This is an experimental field. 2015 /// DO NOT USE. This is an experimental field.
2031 * 2016 ///
2032 * Optional. The rest method name is by default derived from the URL 2017 /// Optional. The rest method name is by default derived from the URL
2033 * pattern. If specified, this field overrides the default method name. 2018 /// pattern. If specified, this field overrides the default method name.
2034 * Example: 2019 /// Example:
2035 * 2020 ///
2036 * rpc CreateResource(CreateResourceRequest) 2021 /// rpc CreateResource(CreateResourceRequest)
2037 * returns (CreateResourceResponse) { 2022 /// returns (CreateResourceResponse) {
2038 * option (google.api.http) = { 2023 /// option (google.api.http) = {
2039 * post: "/v1/resources", 2024 /// post: "/v1/resources",
2040 * body: "resource", 2025 /// body: "resource",
2041 * rest_method_name: "insert" 2026 /// rest_method_name: "insert"
2042 * }; 2027 /// };
2043 * } 2028 /// }
2044 * 2029 ///
2045 * This method has the automatically derived rest method name 2030 /// This method has the automatically derived rest method name
2046 * "create", but for backwards compatibility with apiary, it is specified as 2031 /// "create", but for backwards compatibility with apiary, it is specified as
2047 * insert. 2032 /// insert.
2048 */
2049 core.String restMethodName; 2033 core.String restMethodName;
2050 /** 2034
2051 * Selects methods to which this rule applies. 2035 /// Selects methods to which this rule applies.
2052 * 2036 ///
2053 * Refer to selector for syntax details. 2037 /// Refer to selector for syntax details.
2054 */
2055 core.String selector; 2038 core.String selector;
2056 2039
2057 HttpRule(); 2040 HttpRule();
2058 2041
2059 HttpRule.fromJson(core.Map _json) { 2042 HttpRule.fromJson(core.Map _json) {
2060 if (_json.containsKey("additionalBindings")) { 2043 if (_json.containsKey("additionalBindings")) {
2061 additionalBindings = _json["additionalBindings"].map((value) => new HttpRu le.fromJson(value)).toList(); 2044 additionalBindings = _json["additionalBindings"]
2045 .map((value) => new HttpRule.fromJson(value))
2046 .toList();
2062 } 2047 }
2063 if (_json.containsKey("authorizations")) { 2048 if (_json.containsKey("authorizations")) {
2064 authorizations = _json["authorizations"].map((value) => new AuthorizationR ule.fromJson(value)).toList(); 2049 authorizations = _json["authorizations"]
2050 .map((value) => new AuthorizationRule.fromJson(value))
2051 .toList();
2065 } 2052 }
2066 if (_json.containsKey("body")) { 2053 if (_json.containsKey("body")) {
2067 body = _json["body"]; 2054 body = _json["body"];
2068 } 2055 }
2069 if (_json.containsKey("custom")) { 2056 if (_json.containsKey("custom")) {
2070 custom = new CustomHttpPattern.fromJson(_json["custom"]); 2057 custom = new CustomHttpPattern.fromJson(_json["custom"]);
2071 } 2058 }
2072 if (_json.containsKey("delete")) { 2059 if (_json.containsKey("delete")) {
2073 delete = _json["delete"]; 2060 delete = _json["delete"];
2074 } 2061 }
(...skipping 23 matching lines...) Expand all
2098 } 2085 }
2099 if (_json.containsKey("restMethodName")) { 2086 if (_json.containsKey("restMethodName")) {
2100 restMethodName = _json["restMethodName"]; 2087 restMethodName = _json["restMethodName"];
2101 } 2088 }
2102 if (_json.containsKey("selector")) { 2089 if (_json.containsKey("selector")) {
2103 selector = _json["selector"]; 2090 selector = _json["selector"];
2104 } 2091 }
2105 } 2092 }
2106 2093
2107 core.Map<core.String, core.Object> toJson() { 2094 core.Map<core.String, core.Object> toJson() {
2108 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2095 final core.Map<core.String, core.Object> _json =
2096 new core.Map<core.String, core.Object>();
2109 if (additionalBindings != null) { 2097 if (additionalBindings != null) {
2110 _json["additionalBindings"] = additionalBindings.map((value) => (value).to Json()).toList(); 2098 _json["additionalBindings"] =
2099 additionalBindings.map((value) => (value).toJson()).toList();
2111 } 2100 }
2112 if (authorizations != null) { 2101 if (authorizations != null) {
2113 _json["authorizations"] = authorizations.map((value) => (value).toJson()). toList(); 2102 _json["authorizations"] =
2103 authorizations.map((value) => (value).toJson()).toList();
2114 } 2104 }
2115 if (body != null) { 2105 if (body != null) {
2116 _json["body"] = body; 2106 _json["body"] = body;
2117 } 2107 }
2118 if (custom != null) { 2108 if (custom != null) {
2119 _json["custom"] = (custom).toJson(); 2109 _json["custom"] = (custom).toJson();
2120 } 2110 }
2121 if (delete != null) { 2111 if (delete != null) {
2122 _json["delete"] = delete; 2112 _json["delete"] = delete;
2123 } 2113 }
(...skipping 24 matching lines...) Expand all
2148 if (restMethodName != null) { 2138 if (restMethodName != null) {
2149 _json["restMethodName"] = restMethodName; 2139 _json["restMethodName"] = restMethodName;
2150 } 2140 }
2151 if (selector != null) { 2141 if (selector != null) {
2152 _json["selector"] = selector; 2142 _json["selector"] = selector;
2153 } 2143 }
2154 return _json; 2144 return _json;
2155 } 2145 }
2156 } 2146 }
2157 2147
2158 /** A description of a label. */ 2148 /// A description of a label.
2159 class LabelDescriptor { 2149 class LabelDescriptor {
2160 /** A human-readable description for the label. */ 2150 /// A human-readable description for the label.
2161 core.String description; 2151 core.String description;
2162 /** The label key. */ 2152
2153 /// The label key.
2163 core.String key; 2154 core.String key;
2164 /** 2155
2165 * The type of data that can be assigned to the label. 2156 /// The type of data that can be assigned to the label.
2166 * Possible string values are: 2157 /// Possible string values are:
2167 * - "STRING" : A variable-length string. This is the default. 2158 /// - "STRING" : A variable-length string. This is the default.
2168 * - "BOOL" : Boolean; true or false. 2159 /// - "BOOL" : Boolean; true or false.
2169 * - "INT64" : A 64-bit signed integer. 2160 /// - "INT64" : A 64-bit signed integer.
2170 */
2171 core.String valueType; 2161 core.String valueType;
2172 2162
2173 LabelDescriptor(); 2163 LabelDescriptor();
2174 2164
2175 LabelDescriptor.fromJson(core.Map _json) { 2165 LabelDescriptor.fromJson(core.Map _json) {
2176 if (_json.containsKey("description")) { 2166 if (_json.containsKey("description")) {
2177 description = _json["description"]; 2167 description = _json["description"];
2178 } 2168 }
2179 if (_json.containsKey("key")) { 2169 if (_json.containsKey("key")) {
2180 key = _json["key"]; 2170 key = _json["key"];
2181 } 2171 }
2182 if (_json.containsKey("valueType")) { 2172 if (_json.containsKey("valueType")) {
2183 valueType = _json["valueType"]; 2173 valueType = _json["valueType"];
2184 } 2174 }
2185 } 2175 }
2186 2176
2187 core.Map<core.String, core.Object> toJson() { 2177 core.Map<core.String, core.Object> toJson() {
2188 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2178 final core.Map<core.String, core.Object> _json =
2179 new core.Map<core.String, core.Object>();
2189 if (description != null) { 2180 if (description != null) {
2190 _json["description"] = description; 2181 _json["description"] = description;
2191 } 2182 }
2192 if (key != null) { 2183 if (key != null) {
2193 _json["key"] = key; 2184 _json["key"] = key;
2194 } 2185 }
2195 if (valueType != null) { 2186 if (valueType != null) {
2196 _json["valueType"] = valueType; 2187 _json["valueType"] = valueType;
2197 } 2188 }
2198 return _json; 2189 return _json;
2199 } 2190 }
2200 } 2191 }
2201 2192
2202 /** Response message for `ListEnabledServices` method. */ 2193 /// Response message for `ListEnabledServices` method.
2203 class ListEnabledServicesResponse { 2194 class ListEnabledServicesResponse {
2204 /** 2195 /// Token that can be passed to `ListEnabledServices` to resume a paginated
2205 * Token that can be passed to `ListEnabledServices` to resume a paginated 2196 /// query.
2206 * query.
2207 */
2208 core.String nextPageToken; 2197 core.String nextPageToken;
2209 /** Services enabled for the specified parent. */ 2198
2199 /// Services enabled for the specified parent.
2210 core.List<PublishedService> services; 2200 core.List<PublishedService> services;
2211 2201
2212 ListEnabledServicesResponse(); 2202 ListEnabledServicesResponse();
2213 2203
2214 ListEnabledServicesResponse.fromJson(core.Map _json) { 2204 ListEnabledServicesResponse.fromJson(core.Map _json) {
2215 if (_json.containsKey("nextPageToken")) { 2205 if (_json.containsKey("nextPageToken")) {
2216 nextPageToken = _json["nextPageToken"]; 2206 nextPageToken = _json["nextPageToken"];
2217 } 2207 }
2218 if (_json.containsKey("services")) { 2208 if (_json.containsKey("services")) {
2219 services = _json["services"].map((value) => new PublishedService.fromJson( value)).toList(); 2209 services = _json["services"]
2210 .map((value) => new PublishedService.fromJson(value))
2211 .toList();
2220 } 2212 }
2221 } 2213 }
2222 2214
2223 core.Map<core.String, core.Object> toJson() { 2215 core.Map<core.String, core.Object> toJson() {
2224 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2216 final core.Map<core.String, core.Object> _json =
2217 new core.Map<core.String, core.Object>();
2225 if (nextPageToken != null) { 2218 if (nextPageToken != null) {
2226 _json["nextPageToken"] = nextPageToken; 2219 _json["nextPageToken"] = nextPageToken;
2227 } 2220 }
2228 if (services != null) { 2221 if (services != null) {
2229 _json["services"] = services.map((value) => (value).toJson()).toList(); 2222 _json["services"] = services.map((value) => (value).toJson()).toList();
2230 } 2223 }
2231 return _json; 2224 return _json;
2232 } 2225 }
2233 } 2226 }
2234 2227
2235 /** 2228 /// A description of a log type. Example in YAML format:
2236 * A description of a log type. Example in YAML format: 2229 ///
2237 * 2230 /// - name: library.googleapis.com/activity_history
2238 * - name: library.googleapis.com/activity_history 2231 /// description: The history of borrowing and returning library items.
2239 * description: The history of borrowing and returning library items. 2232 /// display_name: Activity
2240 * display_name: Activity 2233 /// labels:
2241 * labels: 2234 /// - key: /customer_id
2242 * - key: /customer_id 2235 /// description: Identifier of a library customer
2243 * description: Identifier of a library customer
2244 */
2245 class LogDescriptor { 2236 class LogDescriptor {
2246 /** 2237 /// A human-readable description of this log. This information appears in
2247 * A human-readable description of this log. This information appears in 2238 /// the documentation and can contain details.
2248 * the documentation and can contain details.
2249 */
2250 core.String description; 2239 core.String description;
2251 /** 2240
2252 * The human-readable name for this log. This information appears on 2241 /// The human-readable name for this log. This information appears on
2253 * the user interface and should be concise. 2242 /// the user interface and should be concise.
2254 */
2255 core.String displayName; 2243 core.String displayName;
2256 /** 2244
2257 * The set of labels that are available to describe a specific log entry. 2245 /// The set of labels that are available to describe a specific log entry.
2258 * Runtime requests that contain labels not specified here are 2246 /// Runtime requests that contain labels not specified here are
2259 * considered invalid. 2247 /// considered invalid.
2260 */
2261 core.List<LabelDescriptor> labels; 2248 core.List<LabelDescriptor> labels;
2262 /** 2249
2263 * The name of the log. It must be less than 512 characters long and can 2250 /// The name of the log. It must be less than 512 characters long and can
2264 * include the following characters: upper- and lower-case alphanumeric 2251 /// include the following characters: upper- and lower-case alphanumeric
2265 * characters [A-Za-z0-9], and punctuation characters including 2252 /// characters [A-Za-z0-9], and punctuation characters including
2266 * slash, underscore, hyphen, period [/_-.]. 2253 /// slash, underscore, hyphen, period [/_-.].
2267 */
2268 core.String name; 2254 core.String name;
2269 2255
2270 LogDescriptor(); 2256 LogDescriptor();
2271 2257
2272 LogDescriptor.fromJson(core.Map _json) { 2258 LogDescriptor.fromJson(core.Map _json) {
2273 if (_json.containsKey("description")) { 2259 if (_json.containsKey("description")) {
2274 description = _json["description"]; 2260 description = _json["description"];
2275 } 2261 }
2276 if (_json.containsKey("displayName")) { 2262 if (_json.containsKey("displayName")) {
2277 displayName = _json["displayName"]; 2263 displayName = _json["displayName"];
2278 } 2264 }
2279 if (_json.containsKey("labels")) { 2265 if (_json.containsKey("labels")) {
2280 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value )).toList(); 2266 labels = _json["labels"]
2267 .map((value) => new LabelDescriptor.fromJson(value))
2268 .toList();
2281 } 2269 }
2282 if (_json.containsKey("name")) { 2270 if (_json.containsKey("name")) {
2283 name = _json["name"]; 2271 name = _json["name"];
2284 } 2272 }
2285 } 2273 }
2286 2274
2287 core.Map<core.String, core.Object> toJson() { 2275 core.Map<core.String, core.Object> toJson() {
2288 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2276 final core.Map<core.String, core.Object> _json =
2277 new core.Map<core.String, core.Object>();
2289 if (description != null) { 2278 if (description != null) {
2290 _json["description"] = description; 2279 _json["description"] = description;
2291 } 2280 }
2292 if (displayName != null) { 2281 if (displayName != null) {
2293 _json["displayName"] = displayName; 2282 _json["displayName"] = displayName;
2294 } 2283 }
2295 if (labels != null) { 2284 if (labels != null) {
2296 _json["labels"] = labels.map((value) => (value).toJson()).toList(); 2285 _json["labels"] = labels.map((value) => (value).toJson()).toList();
2297 } 2286 }
2298 if (name != null) { 2287 if (name != null) {
2299 _json["name"] = name; 2288 _json["name"] = name;
2300 } 2289 }
2301 return _json; 2290 return _json;
2302 } 2291 }
2303 } 2292 }
2304 2293
2305 /** 2294 /// Logging configuration of the service.
2306 * Logging configuration of the service. 2295 ///
2307 * 2296 /// The following example shows how to configure logs to be sent to the
2308 * The following example shows how to configure logs to be sent to the 2297 /// producer and consumer projects. In the example, the `activity_history`
2309 * producer and consumer projects. In the example, the `activity_history` 2298 /// log is sent to both the producer and consumer projects, whereas the
2310 * log is sent to both the producer and consumer projects, whereas the 2299 /// `purchase_history` log is only sent to the producer project.
2311 * `purchase_history` log is only sent to the producer project. 2300 ///
2312 * 2301 /// monitored_resources:
2313 * monitored_resources: 2302 /// - type: library.googleapis.com/branch
2314 * - type: library.googleapis.com/branch 2303 /// labels:
2315 * labels: 2304 /// - key: /city
2316 * - key: /city 2305 /// description: The city where the library branch is located in.
2317 * description: The city where the library branch is located in. 2306 /// - key: /name
2318 * - key: /name 2307 /// description: The name of the branch.
2319 * description: The name of the branch. 2308 /// logs:
2320 * logs: 2309 /// - name: activity_history
2321 * - name: activity_history 2310 /// labels:
2322 * labels: 2311 /// - key: /customer_id
2323 * - key: /customer_id 2312 /// - name: purchase_history
2324 * - name: purchase_history 2313 /// logging:
2325 * logging: 2314 /// producer_destinations:
2326 * producer_destinations: 2315 /// - monitored_resource: library.googleapis.com/branch
2327 * - monitored_resource: library.googleapis.com/branch 2316 /// logs:
2328 * logs: 2317 /// - activity_history
2329 * - activity_history 2318 /// - purchase_history
2330 * - purchase_history 2319 /// consumer_destinations:
2331 * consumer_destinations: 2320 /// - monitored_resource: library.googleapis.com/branch
2332 * - monitored_resource: library.googleapis.com/branch 2321 /// logs:
2333 * logs: 2322 /// - activity_history
2334 * - activity_history
2335 */
2336 class Logging { 2323 class Logging {
2337 /** 2324 /// Logging configurations for sending logs to the consumer project.
2338 * Logging configurations for sending logs to the consumer project. 2325 /// There can be multiple consumer destinations, each one must have a
2339 * There can be multiple consumer destinations, each one must have a 2326 /// different monitored resource type. A log can be used in at most
2340 * different monitored resource type. A log can be used in at most 2327 /// one consumer destination.
2341 * one consumer destination.
2342 */
2343 core.List<LoggingDestination> consumerDestinations; 2328 core.List<LoggingDestination> consumerDestinations;
2344 /** 2329
2345 * Logging configurations for sending logs to the producer project. 2330 /// Logging configurations for sending logs to the producer project.
2346 * There can be multiple producer destinations, each one must have a 2331 /// There can be multiple producer destinations, each one must have a
2347 * different monitored resource type. A log can be used in at most 2332 /// different monitored resource type. A log can be used in at most
2348 * one producer destination. 2333 /// one producer destination.
2349 */
2350 core.List<LoggingDestination> producerDestinations; 2334 core.List<LoggingDestination> producerDestinations;
2351 2335
2352 Logging(); 2336 Logging();
2353 2337
2354 Logging.fromJson(core.Map _json) { 2338 Logging.fromJson(core.Map _json) {
2355 if (_json.containsKey("consumerDestinations")) { 2339 if (_json.containsKey("consumerDestinations")) {
2356 consumerDestinations = _json["consumerDestinations"].map((value) => new Lo ggingDestination.fromJson(value)).toList(); 2340 consumerDestinations = _json["consumerDestinations"]
2341 .map((value) => new LoggingDestination.fromJson(value))
2342 .toList();
2357 } 2343 }
2358 if (_json.containsKey("producerDestinations")) { 2344 if (_json.containsKey("producerDestinations")) {
2359 producerDestinations = _json["producerDestinations"].map((value) => new Lo ggingDestination.fromJson(value)).toList(); 2345 producerDestinations = _json["producerDestinations"]
2346 .map((value) => new LoggingDestination.fromJson(value))
2347 .toList();
2360 } 2348 }
2361 } 2349 }
2362 2350
2363 core.Map<core.String, core.Object> toJson() { 2351 core.Map<core.String, core.Object> toJson() {
2364 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2352 final core.Map<core.String, core.Object> _json =
2353 new core.Map<core.String, core.Object>();
2365 if (consumerDestinations != null) { 2354 if (consumerDestinations != null) {
2366 _json["consumerDestinations"] = consumerDestinations.map((value) => (value ).toJson()).toList(); 2355 _json["consumerDestinations"] =
2356 consumerDestinations.map((value) => (value).toJson()).toList();
2367 } 2357 }
2368 if (producerDestinations != null) { 2358 if (producerDestinations != null) {
2369 _json["producerDestinations"] = producerDestinations.map((value) => (value ).toJson()).toList(); 2359 _json["producerDestinations"] =
2360 producerDestinations.map((value) => (value).toJson()).toList();
2370 } 2361 }
2371 return _json; 2362 return _json;
2372 } 2363 }
2373 } 2364 }
2374 2365
2375 /** 2366 /// Configuration of a specific logging destination (the producer project
2376 * Configuration of a specific logging destination (the producer project 2367 /// or the consumer project).
2377 * or the consumer project).
2378 */
2379 class LoggingDestination { 2368 class LoggingDestination {
2380 /** 2369 /// Names of the logs to be sent to this destination. Each name must
2381 * Names of the logs to be sent to this destination. Each name must 2370 /// be defined in the Service.logs section. If the log name is
2382 * be defined in the Service.logs section. If the log name is 2371 /// not a domain scoped name, it will be automatically prefixed with
2383 * not a domain scoped name, it will be automatically prefixed with 2372 /// the service name followed by "/".
2384 * the service name followed by "/".
2385 */
2386 core.List<core.String> logs; 2373 core.List<core.String> logs;
2387 /** 2374
2388 * The monitored resource type. The type must be defined in the 2375 /// The monitored resource type. The type must be defined in the
2389 * Service.monitored_resources section. 2376 /// Service.monitored_resources section.
2390 */
2391 core.String monitoredResource; 2377 core.String monitoredResource;
2392 2378
2393 LoggingDestination(); 2379 LoggingDestination();
2394 2380
2395 LoggingDestination.fromJson(core.Map _json) { 2381 LoggingDestination.fromJson(core.Map _json) {
2396 if (_json.containsKey("logs")) { 2382 if (_json.containsKey("logs")) {
2397 logs = _json["logs"]; 2383 logs = _json["logs"];
2398 } 2384 }
2399 if (_json.containsKey("monitoredResource")) { 2385 if (_json.containsKey("monitoredResource")) {
2400 monitoredResource = _json["monitoredResource"]; 2386 monitoredResource = _json["monitoredResource"];
2401 } 2387 }
2402 } 2388 }
2403 2389
2404 core.Map<core.String, core.Object> toJson() { 2390 core.Map<core.String, core.Object> toJson() {
2405 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2391 final core.Map<core.String, core.Object> _json =
2392 new core.Map<core.String, core.Object>();
2406 if (logs != null) { 2393 if (logs != null) {
2407 _json["logs"] = logs; 2394 _json["logs"] = logs;
2408 } 2395 }
2409 if (monitoredResource != null) { 2396 if (monitoredResource != null) {
2410 _json["monitoredResource"] = monitoredResource; 2397 _json["monitoredResource"] = monitoredResource;
2411 } 2398 }
2412 return _json; 2399 return _json;
2413 } 2400 }
2414 } 2401 }
2415 2402
2416 /** 2403 /// Defines the Media configuration for a service in case of a download.
2417 * Defines the Media configuration for a service in case of a download. 2404 /// Use this only for Scotty Requests. Do not use this for media support using
2418 * Use this only for Scotty Requests. Do not use this for media support using 2405 /// Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
2419 * Bytestream, add instead [][google.bytestream.RestByteStream] as an API to 2406 /// your configuration for Bytestream methods.
2420 * your configuration for Bytestream methods.
2421 */
2422 class MediaDownload { 2407 class MediaDownload {
2423 /** 2408 /// A boolean that determines whether a notification for the completion of a
2424 * A boolean that determines whether a notification for the completion of a 2409 /// download should be sent to the backend.
2425 * download should be sent to the backend.
2426 */
2427 core.bool completeNotification; 2410 core.bool completeNotification;
2428 /** 2411
2429 * DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED. 2412 /// DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
2430 * 2413 ///
2431 * Specify name of the download service if one is used for download. 2414 /// Specify name of the download service if one is used for download.
2432 */
2433 core.String downloadService; 2415 core.String downloadService;
2434 /** Name of the Scotty dropzone to use for the current API. */ 2416
2417 /// Name of the Scotty dropzone to use for the current API.
2435 core.String dropzone; 2418 core.String dropzone;
2436 /** Whether download is enabled. */ 2419
2420 /// Whether download is enabled.
2437 core.bool enabled; 2421 core.bool enabled;
2438 /** 2422
2439 * Optional maximum acceptable size for direct download. 2423 /// Optional maximum acceptable size for direct download.
2440 * The size is specified in bytes. 2424 /// The size is specified in bytes.
2441 */
2442 core.String maxDirectDownloadSize; 2425 core.String maxDirectDownloadSize;
2443 /** 2426
2444 * A boolean that determines if direct download from ESF should be used for 2427 /// A boolean that determines if direct download from ESF should be used for
2445 * download of this media. 2428 /// download of this media.
2446 */
2447 core.bool useDirectDownload; 2429 core.bool useDirectDownload;
2448 2430
2449 MediaDownload(); 2431 MediaDownload();
2450 2432
2451 MediaDownload.fromJson(core.Map _json) { 2433 MediaDownload.fromJson(core.Map _json) {
2452 if (_json.containsKey("completeNotification")) { 2434 if (_json.containsKey("completeNotification")) {
2453 completeNotification = _json["completeNotification"]; 2435 completeNotification = _json["completeNotification"];
2454 } 2436 }
2455 if (_json.containsKey("downloadService")) { 2437 if (_json.containsKey("downloadService")) {
2456 downloadService = _json["downloadService"]; 2438 downloadService = _json["downloadService"];
2457 } 2439 }
2458 if (_json.containsKey("dropzone")) { 2440 if (_json.containsKey("dropzone")) {
2459 dropzone = _json["dropzone"]; 2441 dropzone = _json["dropzone"];
2460 } 2442 }
2461 if (_json.containsKey("enabled")) { 2443 if (_json.containsKey("enabled")) {
2462 enabled = _json["enabled"]; 2444 enabled = _json["enabled"];
2463 } 2445 }
2464 if (_json.containsKey("maxDirectDownloadSize")) { 2446 if (_json.containsKey("maxDirectDownloadSize")) {
2465 maxDirectDownloadSize = _json["maxDirectDownloadSize"]; 2447 maxDirectDownloadSize = _json["maxDirectDownloadSize"];
2466 } 2448 }
2467 if (_json.containsKey("useDirectDownload")) { 2449 if (_json.containsKey("useDirectDownload")) {
2468 useDirectDownload = _json["useDirectDownload"]; 2450 useDirectDownload = _json["useDirectDownload"];
2469 } 2451 }
2470 } 2452 }
2471 2453
2472 core.Map<core.String, core.Object> toJson() { 2454 core.Map<core.String, core.Object> toJson() {
2473 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2455 final core.Map<core.String, core.Object> _json =
2456 new core.Map<core.String, core.Object>();
2474 if (completeNotification != null) { 2457 if (completeNotification != null) {
2475 _json["completeNotification"] = completeNotification; 2458 _json["completeNotification"] = completeNotification;
2476 } 2459 }
2477 if (downloadService != null) { 2460 if (downloadService != null) {
2478 _json["downloadService"] = downloadService; 2461 _json["downloadService"] = downloadService;
2479 } 2462 }
2480 if (dropzone != null) { 2463 if (dropzone != null) {
2481 _json["dropzone"] = dropzone; 2464 _json["dropzone"] = dropzone;
2482 } 2465 }
2483 if (enabled != null) { 2466 if (enabled != null) {
2484 _json["enabled"] = enabled; 2467 _json["enabled"] = enabled;
2485 } 2468 }
2486 if (maxDirectDownloadSize != null) { 2469 if (maxDirectDownloadSize != null) {
2487 _json["maxDirectDownloadSize"] = maxDirectDownloadSize; 2470 _json["maxDirectDownloadSize"] = maxDirectDownloadSize;
2488 } 2471 }
2489 if (useDirectDownload != null) { 2472 if (useDirectDownload != null) {
2490 _json["useDirectDownload"] = useDirectDownload; 2473 _json["useDirectDownload"] = useDirectDownload;
2491 } 2474 }
2492 return _json; 2475 return _json;
2493 } 2476 }
2494 } 2477 }
2495 2478
2496 /** 2479 /// Defines the Media configuration for a service in case of an upload.
2497 * Defines the Media configuration for a service in case of an upload. 2480 /// Use this only for Scotty Requests. Do not use this for media support using
2498 * Use this only for Scotty Requests. Do not use this for media support using 2481 /// Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
2499 * Bytestream, add instead [][google.bytestream.RestByteStream] as an API to 2482 /// your configuration for Bytestream methods.
2500 * your configuration for Bytestream methods.
2501 */
2502 class MediaUpload { 2483 class MediaUpload {
2503 /** 2484 /// A boolean that determines whether a notification for the completion of an
2504 * A boolean that determines whether a notification for the completion of an 2485 /// upload should be sent to the backend. These notifications will not be
2505 * upload should be sent to the backend. These notifications will not be seen 2486 /// seen
2506 * by the client and will not consume quota. 2487 /// by the client and will not consume quota.
2507 */
2508 core.bool completeNotification; 2488 core.bool completeNotification;
2509 /** Name of the Scotty dropzone to use for the current API. */ 2489
2490 /// Name of the Scotty dropzone to use for the current API.
2510 core.String dropzone; 2491 core.String dropzone;
2511 /** Whether upload is enabled. */ 2492
2493 /// Whether upload is enabled.
2512 core.bool enabled; 2494 core.bool enabled;
2513 /** 2495
2514 * Optional maximum acceptable size for an upload. 2496 /// Optional maximum acceptable size for an upload.
2515 * The size is specified in bytes. 2497 /// The size is specified in bytes.
2516 */
2517 core.String maxSize; 2498 core.String maxSize;
2518 /** 2499
2519 * An array of mimetype patterns. Esf will only accept uploads that match one 2500 /// An array of mimetype patterns. Esf will only accept uploads that match
2520 * of the given patterns. 2501 /// one
2521 */ 2502 /// of the given patterns.
2522 core.List<core.String> mimeTypes; 2503 core.List<core.String> mimeTypes;
2523 /** 2504
2524 * Whether to receive a notification for progress changes of media upload. 2505 /// Whether to receive a notification for progress changes of media upload.
2525 */
2526 core.bool progressNotification; 2506 core.bool progressNotification;
2527 /** Whether to receive a notification on the start of media upload. */ 2507
2508 /// Whether to receive a notification on the start of media upload.
2528 core.bool startNotification; 2509 core.bool startNotification;
2529 /** 2510
2530 * DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED. 2511 /// DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
2531 * 2512 ///
2532 * Specify name of the upload service if one is used for upload. 2513 /// Specify name of the upload service if one is used for upload.
2533 */
2534 core.String uploadService; 2514 core.String uploadService;
2535 2515
2536 MediaUpload(); 2516 MediaUpload();
2537 2517
2538 MediaUpload.fromJson(core.Map _json) { 2518 MediaUpload.fromJson(core.Map _json) {
2539 if (_json.containsKey("completeNotification")) { 2519 if (_json.containsKey("completeNotification")) {
2540 completeNotification = _json["completeNotification"]; 2520 completeNotification = _json["completeNotification"];
2541 } 2521 }
2542 if (_json.containsKey("dropzone")) { 2522 if (_json.containsKey("dropzone")) {
2543 dropzone = _json["dropzone"]; 2523 dropzone = _json["dropzone"];
(...skipping 12 matching lines...) Expand all
2556 } 2536 }
2557 if (_json.containsKey("startNotification")) { 2537 if (_json.containsKey("startNotification")) {
2558 startNotification = _json["startNotification"]; 2538 startNotification = _json["startNotification"];
2559 } 2539 }
2560 if (_json.containsKey("uploadService")) { 2540 if (_json.containsKey("uploadService")) {
2561 uploadService = _json["uploadService"]; 2541 uploadService = _json["uploadService"];
2562 } 2542 }
2563 } 2543 }
2564 2544
2565 core.Map<core.String, core.Object> toJson() { 2545 core.Map<core.String, core.Object> toJson() {
2566 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2546 final core.Map<core.String, core.Object> _json =
2547 new core.Map<core.String, core.Object>();
2567 if (completeNotification != null) { 2548 if (completeNotification != null) {
2568 _json["completeNotification"] = completeNotification; 2549 _json["completeNotification"] = completeNotification;
2569 } 2550 }
2570 if (dropzone != null) { 2551 if (dropzone != null) {
2571 _json["dropzone"] = dropzone; 2552 _json["dropzone"] = dropzone;
2572 } 2553 }
2573 if (enabled != null) { 2554 if (enabled != null) {
2574 _json["enabled"] = enabled; 2555 _json["enabled"] = enabled;
2575 } 2556 }
2576 if (maxSize != null) { 2557 if (maxSize != null) {
2577 _json["maxSize"] = maxSize; 2558 _json["maxSize"] = maxSize;
2578 } 2559 }
2579 if (mimeTypes != null) { 2560 if (mimeTypes != null) {
2580 _json["mimeTypes"] = mimeTypes; 2561 _json["mimeTypes"] = mimeTypes;
2581 } 2562 }
2582 if (progressNotification != null) { 2563 if (progressNotification != null) {
2583 _json["progressNotification"] = progressNotification; 2564 _json["progressNotification"] = progressNotification;
2584 } 2565 }
2585 if (startNotification != null) { 2566 if (startNotification != null) {
2586 _json["startNotification"] = startNotification; 2567 _json["startNotification"] = startNotification;
2587 } 2568 }
2588 if (uploadService != null) { 2569 if (uploadService != null) {
2589 _json["uploadService"] = uploadService; 2570 _json["uploadService"] = uploadService;
2590 } 2571 }
2591 return _json; 2572 return _json;
2592 } 2573 }
2593 } 2574 }
2594 2575
2595 /** Method represents a method of an API interface. */ 2576 /// Method represents a method of an API interface.
2596 class Method { 2577 class Method {
2597 /** The simple name of this method. */ 2578 /// The simple name of this method.
2598 core.String name; 2579 core.String name;
2599 /** Any metadata attached to the method. */ 2580
2581 /// Any metadata attached to the method.
2600 core.List<Option> options; 2582 core.List<Option> options;
2601 /** If true, the request is streamed. */ 2583
2584 /// If true, the request is streamed.
2602 core.bool requestStreaming; 2585 core.bool requestStreaming;
2603 /** A URL of the input message type. */ 2586
2587 /// A URL of the input message type.
2604 core.String requestTypeUrl; 2588 core.String requestTypeUrl;
2605 /** If true, the response is streamed. */ 2589
2590 /// If true, the response is streamed.
2606 core.bool responseStreaming; 2591 core.bool responseStreaming;
2607 /** The URL of the output message type. */ 2592
2593 /// The URL of the output message type.
2608 core.String responseTypeUrl; 2594 core.String responseTypeUrl;
2609 /** 2595
2610 * The source syntax of this method. 2596 /// The source syntax of this method.
2611 * Possible string values are: 2597 /// Possible string values are:
2612 * - "SYNTAX_PROTO2" : Syntax `proto2`. 2598 /// - "SYNTAX_PROTO2" : Syntax `proto2`.
2613 * - "SYNTAX_PROTO3" : Syntax `proto3`. 2599 /// - "SYNTAX_PROTO3" : Syntax `proto3`.
2614 */
2615 core.String syntax; 2600 core.String syntax;
2616 2601
2617 Method(); 2602 Method();
2618 2603
2619 Method.fromJson(core.Map _json) { 2604 Method.fromJson(core.Map _json) {
2620 if (_json.containsKey("name")) { 2605 if (_json.containsKey("name")) {
2621 name = _json["name"]; 2606 name = _json["name"];
2622 } 2607 }
2623 if (_json.containsKey("options")) { 2608 if (_json.containsKey("options")) {
2624 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 2609 options =
2610 _json["options"].map((value) => new Option.fromJson(value)).toList();
2625 } 2611 }
2626 if (_json.containsKey("requestStreaming")) { 2612 if (_json.containsKey("requestStreaming")) {
2627 requestStreaming = _json["requestStreaming"]; 2613 requestStreaming = _json["requestStreaming"];
2628 } 2614 }
2629 if (_json.containsKey("requestTypeUrl")) { 2615 if (_json.containsKey("requestTypeUrl")) {
2630 requestTypeUrl = _json["requestTypeUrl"]; 2616 requestTypeUrl = _json["requestTypeUrl"];
2631 } 2617 }
2632 if (_json.containsKey("responseStreaming")) { 2618 if (_json.containsKey("responseStreaming")) {
2633 responseStreaming = _json["responseStreaming"]; 2619 responseStreaming = _json["responseStreaming"];
2634 } 2620 }
2635 if (_json.containsKey("responseTypeUrl")) { 2621 if (_json.containsKey("responseTypeUrl")) {
2636 responseTypeUrl = _json["responseTypeUrl"]; 2622 responseTypeUrl = _json["responseTypeUrl"];
2637 } 2623 }
2638 if (_json.containsKey("syntax")) { 2624 if (_json.containsKey("syntax")) {
2639 syntax = _json["syntax"]; 2625 syntax = _json["syntax"];
2640 } 2626 }
2641 } 2627 }
2642 2628
2643 core.Map<core.String, core.Object> toJson() { 2629 core.Map<core.String, core.Object> toJson() {
2644 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2630 final core.Map<core.String, core.Object> _json =
2631 new core.Map<core.String, core.Object>();
2645 if (name != null) { 2632 if (name != null) {
2646 _json["name"] = name; 2633 _json["name"] = name;
2647 } 2634 }
2648 if (options != null) { 2635 if (options != null) {
2649 _json["options"] = options.map((value) => (value).toJson()).toList(); 2636 _json["options"] = options.map((value) => (value).toJson()).toList();
2650 } 2637 }
2651 if (requestStreaming != null) { 2638 if (requestStreaming != null) {
2652 _json["requestStreaming"] = requestStreaming; 2639 _json["requestStreaming"] = requestStreaming;
2653 } 2640 }
2654 if (requestTypeUrl != null) { 2641 if (requestTypeUrl != null) {
2655 _json["requestTypeUrl"] = requestTypeUrl; 2642 _json["requestTypeUrl"] = requestTypeUrl;
2656 } 2643 }
2657 if (responseStreaming != null) { 2644 if (responseStreaming != null) {
2658 _json["responseStreaming"] = responseStreaming; 2645 _json["responseStreaming"] = responseStreaming;
2659 } 2646 }
2660 if (responseTypeUrl != null) { 2647 if (responseTypeUrl != null) {
2661 _json["responseTypeUrl"] = responseTypeUrl; 2648 _json["responseTypeUrl"] = responseTypeUrl;
2662 } 2649 }
2663 if (syntax != null) { 2650 if (syntax != null) {
2664 _json["syntax"] = syntax; 2651 _json["syntax"] = syntax;
2665 } 2652 }
2666 return _json; 2653 return _json;
2667 } 2654 }
2668 } 2655 }
2669 2656
2670 /** 2657 /// Defines a metric type and its schema. Once a metric descriptor is created,
2671 * Defines a metric type and its schema. Once a metric descriptor is created, 2658 /// deleting or altering it stops data collection and makes the metric type's
2672 * deleting or altering it stops data collection and makes the metric type's 2659 /// existing data unusable.
2673 * existing data unusable.
2674 */
2675 class MetricDescriptor { 2660 class MetricDescriptor {
2676 /** 2661 /// A detailed description of the metric, which can be used in documentation.
2677 * A detailed description of the metric, which can be used in documentation.
2678 */
2679 core.String description; 2662 core.String description;
2680 /** 2663
2681 * A concise name for the metric, which can be displayed in user interfaces. 2664 /// A concise name for the metric, which can be displayed in user interfaces.
2682 * Use sentence case without an ending period, for example "Request count". 2665 /// Use sentence case without an ending period, for example "Request count".
2683 */
2684 core.String displayName; 2666 core.String displayName;
2685 /** 2667
2686 * The set of labels that can be used to describe a specific 2668 /// The set of labels that can be used to describe a specific
2687 * instance of this metric type. For example, the 2669 /// instance of this metric type. For example, the
2688 * `appengine.googleapis.com/http/server/response_latencies` metric 2670 /// `appengine.googleapis.com/http/server/response_latencies` metric
2689 * type has a label for the HTTP response code, `response_code`, so 2671 /// type has a label for the HTTP response code, `response_code`, so
2690 * you can look at latencies for successful responses or just 2672 /// you can look at latencies for successful responses or just
2691 * for responses that failed. 2673 /// for responses that failed.
2692 */
2693 core.List<LabelDescriptor> labels; 2674 core.List<LabelDescriptor> labels;
2694 /** 2675
2695 * Whether the metric records instantaneous values, changes to a value, etc. 2676 /// Whether the metric records instantaneous values, changes to a value, etc.
2696 * Some combinations of `metric_kind` and `value_type` might not be supported. 2677 /// Some combinations of `metric_kind` and `value_type` might not be
2697 * Possible string values are: 2678 /// supported.
2698 * - "METRIC_KIND_UNSPECIFIED" : Do not use this default value. 2679 /// Possible string values are:
2699 * - "GAUGE" : An instantaneous measurement of a value. 2680 /// - "METRIC_KIND_UNSPECIFIED" : Do not use this default value.
2700 * - "DELTA" : The change in a value during a time interval. 2681 /// - "GAUGE" : An instantaneous measurement of a value.
2701 * - "CUMULATIVE" : A value accumulated over a time interval. Cumulative 2682 /// - "DELTA" : The change in a value during a time interval.
2702 * measurements in a time series should have the same start time 2683 /// - "CUMULATIVE" : A value accumulated over a time interval. Cumulative
2703 * and increasing end times, until an event resets the cumulative 2684 /// measurements in a time series should have the same start time
2704 * value to zero and sets a new start time for the following 2685 /// and increasing end times, until an event resets the cumulative
2705 * points. 2686 /// value to zero and sets a new start time for the following
2706 */ 2687 /// points.
2707 core.String metricKind; 2688 core.String metricKind;
2708 /** 2689
2709 * The resource name of the metric descriptor. Depending on the 2690 /// The resource name of the metric descriptor. Depending on the
2710 * implementation, the name typically includes: (1) the parent resource name 2691 /// implementation, the name typically includes: (1) the parent resource name
2711 * that defines the scope of the metric type or of its data; and (2) the 2692 /// that defines the scope of the metric type or of its data; and (2) the
2712 * metric's URL-encoded type, which also appears in the `type` field of this 2693 /// metric's URL-encoded type, which also appears in the `type` field of this
2713 * descriptor. For example, following is the resource name of a custom 2694 /// descriptor. For example, following is the resource name of a custom
2714 * metric within the GCP project `my-project-id`: 2695 /// metric within the GCP project `my-project-id`:
2715 * 2696 ///
2716 * "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2 Fpaid%2Famount" 2697 /// "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice% 2Fpaid%2Famount"
2717 */
2718 core.String name; 2698 core.String name;
2719 /** 2699
2720 * The metric type, including its DNS name prefix. The type is not 2700 /// The metric type, including its DNS name prefix. The type is not
2721 * URL-encoded. All user-defined custom metric types have the DNS name 2701 /// URL-encoded. All user-defined custom metric types have the DNS name
2722 * `custom.googleapis.com`. Metric types should use a natural hierarchical 2702 /// `custom.googleapis.com`. Metric types should use a natural hierarchical
2723 * grouping. For example: 2703 /// grouping. For example:
2724 * 2704 ///
2725 * "custom.googleapis.com/invoice/paid/amount" 2705 /// "custom.googleapis.com/invoice/paid/amount"
2726 * "appengine.googleapis.com/http/server/response_latencies" 2706 /// "appengine.googleapis.com/http/server/response_latencies"
2727 */
2728 core.String type; 2707 core.String type;
2729 /** 2708
2730 * The unit in which the metric value is reported. It is only applicable 2709 /// The unit in which the metric value is reported. It is only applicable
2731 * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The 2710 /// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
2732 * supported units are a subset of [The Unified Code for Units of 2711 /// supported units are a subset of [The Unified Code for Units of
2733 * Measure](http://unitsofmeasure.org/ucum.html) standard: 2712 /// Measure](http://unitsofmeasure.org/ucum.html) standard:
2734 * 2713 ///
2735 * **Basic units (UNIT)** 2714 /// **Basic units (UNIT)**
2736 * 2715 ///
2737 * * `bit` bit 2716 /// * `bit` bit
2738 * * `By` byte 2717 /// * `By` byte
2739 * * `s` second 2718 /// * `s` second
2740 * * `min` minute 2719 /// * `min` minute
2741 * * `h` hour 2720 /// * `h` hour
2742 * * `d` day 2721 /// * `d` day
2743 * 2722 ///
2744 * **Prefixes (PREFIX)** 2723 /// **Prefixes (PREFIX)**
2745 * 2724 ///
2746 * * `k` kilo (10**3) 2725 /// * `k` kilo (10**3)
2747 * * `M` mega (10**6) 2726 /// * `M` mega (10**6)
2748 * * `G` giga (10**9) 2727 /// * `G` giga (10**9)
2749 * * `T` tera (10**12) 2728 /// * `T` tera (10**12)
2750 * * `P` peta (10**15) 2729 /// * `P` peta (10**15)
2751 * * `E` exa (10**18) 2730 /// * `E` exa (10**18)
2752 * * `Z` zetta (10**21) 2731 /// * `Z` zetta (10**21)
2753 * * `Y` yotta (10**24) 2732 /// * `Y` yotta (10**24)
2754 * * `m` milli (10**-3) 2733 /// * `m` milli (10**-3)
2755 * * `u` micro (10**-6) 2734 /// * `u` micro (10**-6)
2756 * * `n` nano (10**-9) 2735 /// * `n` nano (10**-9)
2757 * * `p` pico (10**-12) 2736 /// * `p` pico (10**-12)
2758 * * `f` femto (10**-15) 2737 /// * `f` femto (10**-15)
2759 * * `a` atto (10**-18) 2738 /// * `a` atto (10**-18)
2760 * * `z` zepto (10**-21) 2739 /// * `z` zepto (10**-21)
2761 * * `y` yocto (10**-24) 2740 /// * `y` yocto (10**-24)
2762 * * `Ki` kibi (2**10) 2741 /// * `Ki` kibi (2**10)
2763 * * `Mi` mebi (2**20) 2742 /// * `Mi` mebi (2**20)
2764 * * `Gi` gibi (2**30) 2743 /// * `Gi` gibi (2**30)
2765 * * `Ti` tebi (2**40) 2744 /// * `Ti` tebi (2**40)
2766 * 2745 ///
2767 * **Grammar** 2746 /// **Grammar**
2768 * 2747 ///
2769 * The grammar includes the dimensionless unit `1`, such as `1/s`. 2748 /// The grammar includes the dimensionless unit `1`, such as `1/s`.
2770 * 2749 ///
2771 * The grammar also includes these connectors: 2750 /// The grammar also includes these connectors:
2772 * 2751 ///
2773 * * `/` division (as an infix operator, e.g. `1/s`). 2752 /// * `/` division (as an infix operator, e.g. `1/s`).
2774 * * `.` multiplication (as an infix operator, e.g. `GBy.d`) 2753 /// * `.` multiplication (as an infix operator, e.g. `GBy.d`)
2775 * 2754 ///
2776 * The grammar for a unit is as follows: 2755 /// The grammar for a unit is as follows:
2777 * 2756 ///
2778 * Expression = Component { "." Component } { "/" Component } ; 2757 /// Expression = Component { "." Component } { "/" Component } ;
2779 * 2758 ///
2780 * Component = [ PREFIX ] UNIT [ Annotation ] 2759 /// Component = [ PREFIX ] UNIT [ Annotation ]
2781 * | Annotation 2760 /// | Annotation
2782 * | "1" 2761 /// | "1"
2783 * ; 2762 /// ;
2784 * 2763 ///
2785 * Annotation = "{" NAME "}" ; 2764 /// Annotation = "{" NAME "}" ;
2786 * 2765 ///
2787 * Notes: 2766 /// Notes:
2788 * 2767 ///
2789 * * `Annotation` is just a comment if it follows a `UNIT` and is 2768 /// * `Annotation` is just a comment if it follows a `UNIT` and is
2790 * equivalent to `1` if it is used alone. For examples, 2769 /// equivalent to `1` if it is used alone. For examples,
2791 * `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. 2770 /// `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
2792 * * `NAME` is a sequence of non-blank printable ASCII characters not 2771 /// * `NAME` is a sequence of non-blank printable ASCII characters not
2793 * containing '{' or '}'. 2772 /// containing '{' or '}'.
2794 */
2795 core.String unit; 2773 core.String unit;
2796 /** 2774
2797 * Whether the measurement is an integer, a floating-point number, etc. 2775 /// Whether the measurement is an integer, a floating-point number, etc.
2798 * Some combinations of `metric_kind` and `value_type` might not be supported. 2776 /// Some combinations of `metric_kind` and `value_type` might not be
2799 * Possible string values are: 2777 /// supported.
2800 * - "VALUE_TYPE_UNSPECIFIED" : Do not use this default value. 2778 /// Possible string values are:
2801 * - "BOOL" : The value is a boolean. 2779 /// - "VALUE_TYPE_UNSPECIFIED" : Do not use this default value.
2802 * This value type can be used only if the metric kind is `GAUGE`. 2780 /// - "BOOL" : The value is a boolean.
2803 * - "INT64" : The value is a signed 64-bit integer. 2781 /// This value type can be used only if the metric kind is `GAUGE`.
2804 * - "DOUBLE" : The value is a double precision floating point number. 2782 /// - "INT64" : The value is a signed 64-bit integer.
2805 * - "STRING" : The value is a text string. 2783 /// - "DOUBLE" : The value is a double precision floating point number.
2806 * This value type can be used only if the metric kind is `GAUGE`. 2784 /// - "STRING" : The value is a text string.
2807 * - "DISTRIBUTION" : The value is a `Distribution`. 2785 /// This value type can be used only if the metric kind is `GAUGE`.
2808 * - "MONEY" : The value is money. 2786 /// - "DISTRIBUTION" : The value is a `Distribution`.
2809 */ 2787 /// - "MONEY" : The value is money.
2810 core.String valueType; 2788 core.String valueType;
2811 2789
2812 MetricDescriptor(); 2790 MetricDescriptor();
2813 2791
2814 MetricDescriptor.fromJson(core.Map _json) { 2792 MetricDescriptor.fromJson(core.Map _json) {
2815 if (_json.containsKey("description")) { 2793 if (_json.containsKey("description")) {
2816 description = _json["description"]; 2794 description = _json["description"];
2817 } 2795 }
2818 if (_json.containsKey("displayName")) { 2796 if (_json.containsKey("displayName")) {
2819 displayName = _json["displayName"]; 2797 displayName = _json["displayName"];
2820 } 2798 }
2821 if (_json.containsKey("labels")) { 2799 if (_json.containsKey("labels")) {
2822 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value )).toList(); 2800 labels = _json["labels"]
2801 .map((value) => new LabelDescriptor.fromJson(value))
2802 .toList();
2823 } 2803 }
2824 if (_json.containsKey("metricKind")) { 2804 if (_json.containsKey("metricKind")) {
2825 metricKind = _json["metricKind"]; 2805 metricKind = _json["metricKind"];
2826 } 2806 }
2827 if (_json.containsKey("name")) { 2807 if (_json.containsKey("name")) {
2828 name = _json["name"]; 2808 name = _json["name"];
2829 } 2809 }
2830 if (_json.containsKey("type")) { 2810 if (_json.containsKey("type")) {
2831 type = _json["type"]; 2811 type = _json["type"];
2832 } 2812 }
2833 if (_json.containsKey("unit")) { 2813 if (_json.containsKey("unit")) {
2834 unit = _json["unit"]; 2814 unit = _json["unit"];
2835 } 2815 }
2836 if (_json.containsKey("valueType")) { 2816 if (_json.containsKey("valueType")) {
2837 valueType = _json["valueType"]; 2817 valueType = _json["valueType"];
2838 } 2818 }
2839 } 2819 }
2840 2820
2841 core.Map<core.String, core.Object> toJson() { 2821 core.Map<core.String, core.Object> toJson() {
2842 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2822 final core.Map<core.String, core.Object> _json =
2823 new core.Map<core.String, core.Object>();
2843 if (description != null) { 2824 if (description != null) {
2844 _json["description"] = description; 2825 _json["description"] = description;
2845 } 2826 }
2846 if (displayName != null) { 2827 if (displayName != null) {
2847 _json["displayName"] = displayName; 2828 _json["displayName"] = displayName;
2848 } 2829 }
2849 if (labels != null) { 2830 if (labels != null) {
2850 _json["labels"] = labels.map((value) => (value).toJson()).toList(); 2831 _json["labels"] = labels.map((value) => (value).toJson()).toList();
2851 } 2832 }
2852 if (metricKind != null) { 2833 if (metricKind != null) {
2853 _json["metricKind"] = metricKind; 2834 _json["metricKind"] = metricKind;
2854 } 2835 }
2855 if (name != null) { 2836 if (name != null) {
2856 _json["name"] = name; 2837 _json["name"] = name;
2857 } 2838 }
2858 if (type != null) { 2839 if (type != null) {
2859 _json["type"] = type; 2840 _json["type"] = type;
2860 } 2841 }
2861 if (unit != null) { 2842 if (unit != null) {
2862 _json["unit"] = unit; 2843 _json["unit"] = unit;
2863 } 2844 }
2864 if (valueType != null) { 2845 if (valueType != null) {
2865 _json["valueType"] = valueType; 2846 _json["valueType"] = valueType;
2866 } 2847 }
2867 return _json; 2848 return _json;
2868 } 2849 }
2869 } 2850 }
2870 2851
2871 /** 2852 /// Bind API methods to metrics. Binding a method to a metric causes that
2872 * Bind API methods to metrics. Binding a method to a metric causes that 2853 /// metric's configured quota behaviors to apply to the method call.
2873 * metric's configured quota behaviors to apply to the method call.
2874 */
2875 class MetricRule { 2854 class MetricRule {
2876 /** 2855 /// Metrics to update when the selected methods are called, and the
2877 * Metrics to update when the selected methods are called, and the associated 2856 /// associated
2878 * cost applied to each metric. 2857 /// cost applied to each metric.
2879 * 2858 ///
2880 * The key of the map is the metric name, and the values are the amount 2859 /// The key of the map is the metric name, and the values are the amount
2881 * increased for the metric against which the quota limits are defined. 2860 /// increased for the metric against which the quota limits are defined.
2882 * The value must not be negative. 2861 /// The value must not be negative.
2883 */
2884 core.Map<core.String, core.String> metricCosts; 2862 core.Map<core.String, core.String> metricCosts;
2885 /** 2863
2886 * Selects the methods to which this rule applies. 2864 /// Selects the methods to which this rule applies.
2887 * 2865 ///
2888 * Refer to selector for syntax details. 2866 /// Refer to selector for syntax details.
2889 */
2890 core.String selector; 2867 core.String selector;
2891 2868
2892 MetricRule(); 2869 MetricRule();
2893 2870
2894 MetricRule.fromJson(core.Map _json) { 2871 MetricRule.fromJson(core.Map _json) {
2895 if (_json.containsKey("metricCosts")) { 2872 if (_json.containsKey("metricCosts")) {
2896 metricCosts = _json["metricCosts"]; 2873 metricCosts = _json["metricCosts"];
2897 } 2874 }
2898 if (_json.containsKey("selector")) { 2875 if (_json.containsKey("selector")) {
2899 selector = _json["selector"]; 2876 selector = _json["selector"];
2900 } 2877 }
2901 } 2878 }
2902 2879
2903 core.Map<core.String, core.Object> toJson() { 2880 core.Map<core.String, core.Object> toJson() {
2904 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2881 final core.Map<core.String, core.Object> _json =
2882 new core.Map<core.String, core.Object>();
2905 if (metricCosts != null) { 2883 if (metricCosts != null) {
2906 _json["metricCosts"] = metricCosts; 2884 _json["metricCosts"] = metricCosts;
2907 } 2885 }
2908 if (selector != null) { 2886 if (selector != null) {
2909 _json["selector"] = selector; 2887 _json["selector"] = selector;
2910 } 2888 }
2911 return _json; 2889 return _json;
2912 } 2890 }
2913 } 2891 }
2914 2892
2915 /** 2893 /// Declares an API Interface to be included in this interface. The including
2916 * Declares an API Interface to be included in this interface. The including 2894 /// interface must redeclare all the methods from the included interface, but
2917 * interface must redeclare all the methods from the included interface, but 2895 /// documentation and options are inherited as follows:
2918 * documentation and options are inherited as follows: 2896 ///
2919 * 2897 /// - If after comment and whitespace stripping, the documentation
2920 * - If after comment and whitespace stripping, the documentation 2898 /// string of the redeclared method is empty, it will be inherited
2921 * string of the redeclared method is empty, it will be inherited 2899 /// from the original method.
2922 * from the original method. 2900 ///
2923 * 2901 /// - Each annotation belonging to the service config (http,
2924 * - Each annotation belonging to the service config (http, 2902 /// visibility) which is not set in the redeclared method will be
2925 * visibility) which is not set in the redeclared method will be 2903 /// inherited.
2926 * inherited. 2904 ///
2927 * 2905 /// - If an http annotation is inherited, the path pattern will be
2928 * - If an http annotation is inherited, the path pattern will be 2906 /// modified as follows. Any version prefix will be replaced by the
2929 * modified as follows. Any version prefix will be replaced by the 2907 /// version of the including interface plus the root path if
2930 * version of the including interface plus the root path if 2908 /// specified.
2931 * specified. 2909 ///
2932 * 2910 /// Example of a simple mixin:
2933 * Example of a simple mixin: 2911 ///
2934 * 2912 /// package google.acl.v1;
2935 * package google.acl.v1; 2913 /// service AccessControl {
2936 * service AccessControl { 2914 /// // Get the underlying ACL object.
2937 * // Get the underlying ACL object. 2915 /// rpc GetAcl(GetAclRequest) returns (Acl) {
2938 * rpc GetAcl(GetAclRequest) returns (Acl) { 2916 /// option (google.api.http).get = "/v1/{resource=**}:getAcl";
2939 * option (google.api.http).get = "/v1/{resource=**}:getAcl"; 2917 /// }
2940 * } 2918 /// }
2941 * } 2919 ///
2942 * 2920 /// package google.storage.v2;
2943 * package google.storage.v2; 2921 /// service Storage {
2944 * service Storage { 2922 /// // rpc GetAcl(GetAclRequest) returns (Acl);
2945 * // rpc GetAcl(GetAclRequest) returns (Acl); 2923 ///
2946 * 2924 /// // Get a data record.
2947 * // Get a data record. 2925 /// rpc GetData(GetDataRequest) returns (Data) {
2948 * rpc GetData(GetDataRequest) returns (Data) { 2926 /// option (google.api.http).get = "/v2/{resource=**}";
2949 * option (google.api.http).get = "/v2/{resource=**}"; 2927 /// }
2950 * } 2928 /// }
2951 * } 2929 ///
2952 * 2930 /// Example of a mixin configuration:
2953 * Example of a mixin configuration: 2931 ///
2954 * 2932 /// apis:
2955 * apis: 2933 /// - name: google.storage.v2.Storage
2956 * - name: google.storage.v2.Storage 2934 /// mixins:
2957 * mixins: 2935 /// - name: google.acl.v1.AccessControl
2958 * - name: google.acl.v1.AccessControl 2936 ///
2959 * 2937 /// The mixin construct implies that all methods in `AccessControl` are
2960 * The mixin construct implies that all methods in `AccessControl` are 2938 /// also declared with same name and request/response types in
2961 * also declared with same name and request/response types in 2939 /// `Storage`. A documentation generator or annotation processor will
2962 * `Storage`. A documentation generator or annotation processor will 2940 /// see the effective `Storage.GetAcl` method after inherting
2963 * see the effective `Storage.GetAcl` method after inherting 2941 /// documentation and annotations as follows:
2964 * documentation and annotations as follows: 2942 ///
2965 * 2943 /// service Storage {
2966 * service Storage { 2944 /// // Get the underlying ACL object.
2967 * // Get the underlying ACL object. 2945 /// rpc GetAcl(GetAclRequest) returns (Acl) {
2968 * rpc GetAcl(GetAclRequest) returns (Acl) { 2946 /// option (google.api.http).get = "/v2/{resource=**}:getAcl";
2969 * option (google.api.http).get = "/v2/{resource=**}:getAcl"; 2947 /// }
2970 * } 2948 /// ...
2971 * ... 2949 /// }
2972 * } 2950 ///
2973 * 2951 /// Note how the version in the path pattern changed from `v1` to `v2`.
2974 * Note how the version in the path pattern changed from `v1` to `v2`. 2952 ///
2975 * 2953 /// If the `root` field in the mixin is specified, it should be a
2976 * If the `root` field in the mixin is specified, it should be a 2954 /// relative path under which inherited HTTP paths are placed. Example:
2977 * relative path under which inherited HTTP paths are placed. Example: 2955 ///
2978 * 2956 /// apis:
2979 * apis: 2957 /// - name: google.storage.v2.Storage
2980 * - name: google.storage.v2.Storage 2958 /// mixins:
2981 * mixins: 2959 /// - name: google.acl.v1.AccessControl
2982 * - name: google.acl.v1.AccessControl 2960 /// root: acls
2983 * root: acls 2961 ///
2984 * 2962 /// This implies the following inherited HTTP annotation:
2985 * This implies the following inherited HTTP annotation: 2963 ///
2986 * 2964 /// service Storage {
2987 * service Storage { 2965 /// // Get the underlying ACL object.
2988 * // Get the underlying ACL object. 2966 /// rpc GetAcl(GetAclRequest) returns (Acl) {
2989 * rpc GetAcl(GetAclRequest) returns (Acl) { 2967 /// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
2990 * option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; 2968 /// }
2991 * } 2969 /// ...
2992 * ... 2970 /// }
2993 * }
2994 */
2995 class Mixin { 2971 class Mixin {
2996 /** The fully qualified name of the interface which is included. */ 2972 /// The fully qualified name of the interface which is included.
2997 core.String name; 2973 core.String name;
2998 /** 2974
2999 * If non-empty specifies a path under which inherited HTTP paths 2975 /// If non-empty specifies a path under which inherited HTTP paths
3000 * are rooted. 2976 /// are rooted.
3001 */
3002 core.String root; 2977 core.String root;
3003 2978
3004 Mixin(); 2979 Mixin();
3005 2980
3006 Mixin.fromJson(core.Map _json) { 2981 Mixin.fromJson(core.Map _json) {
3007 if (_json.containsKey("name")) { 2982 if (_json.containsKey("name")) {
3008 name = _json["name"]; 2983 name = _json["name"];
3009 } 2984 }
3010 if (_json.containsKey("root")) { 2985 if (_json.containsKey("root")) {
3011 root = _json["root"]; 2986 root = _json["root"];
3012 } 2987 }
3013 } 2988 }
3014 2989
3015 core.Map<core.String, core.Object> toJson() { 2990 core.Map<core.String, core.Object> toJson() {
3016 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2991 final core.Map<core.String, core.Object> _json =
2992 new core.Map<core.String, core.Object>();
3017 if (name != null) { 2993 if (name != null) {
3018 _json["name"] = name; 2994 _json["name"] = name;
3019 } 2995 }
3020 if (root != null) { 2996 if (root != null) {
3021 _json["root"] = root; 2997 _json["root"] = root;
3022 } 2998 }
3023 return _json; 2999 return _json;
3024 } 3000 }
3025 } 3001 }
3026 3002
3027 /** 3003 /// An object that describes the schema of a MonitoredResource object using a
3028 * An object that describes the schema of a MonitoredResource object using a 3004 /// type name and a set of labels. For example, the monitored resource
3029 * type name and a set of labels. For example, the monitored resource 3005 /// descriptor for Google Compute Engine VM instances has a type of
3030 * descriptor for Google Compute Engine VM instances has a type of 3006 /// `"gce_instance"` and specifies the use of the labels `"instance_id"` and
3031 * `"gce_instance"` and specifies the use of the labels `"instance_id"` and 3007 /// `"zone"` to identify particular VM instances.
3032 * `"zone"` to identify particular VM instances. 3008 ///
3033 * 3009 /// Different APIs can support different monitored resource types. APIs
3034 * Different APIs can support different monitored resource types. APIs generally 3010 /// generally
3035 * provide a `list` method that returns the monitored resource descriptors used 3011 /// provide a `list` method that returns the monitored resource descriptors
3036 * by the API. 3012 /// used
3037 */ 3013 /// by the API.
3038 class MonitoredResourceDescriptor { 3014 class MonitoredResourceDescriptor {
3039 /** 3015 /// Optional. A detailed description of the monitored resource type that
3040 * Optional. A detailed description of the monitored resource type that might 3016 /// might
3041 * be used in documentation. 3017 /// be used in documentation.
3042 */
3043 core.String description; 3018 core.String description;
3044 /** 3019
3045 * Optional. A concise name for the monitored resource type that might be 3020 /// Optional. A concise name for the monitored resource type that might be
3046 * displayed in user interfaces. It should be a Title Cased Noun Phrase, 3021 /// displayed in user interfaces. It should be a Title Cased Noun Phrase,
3047 * without any article or other determiners. For example, 3022 /// without any article or other determiners. For example,
3048 * `"Google Cloud SQL Database"`. 3023 /// `"Google Cloud SQL Database"`.
3049 */
3050 core.String displayName; 3024 core.String displayName;
3051 /** 3025
3052 * Required. A set of labels used to describe instances of this monitored 3026 /// Required. A set of labels used to describe instances of this monitored
3053 * resource type. For example, an individual Google Cloud SQL database is 3027 /// resource type. For example, an individual Google Cloud SQL database is
3054 * identified by values for the labels `"database_id"` and `"zone"`. 3028 /// identified by values for the labels `"database_id"` and `"zone"`.
3055 */
3056 core.List<LabelDescriptor> labels; 3029 core.List<LabelDescriptor> labels;
3057 /** 3030
3058 * Optional. The resource name of the monitored resource descriptor: 3031 /// Optional. The resource name of the monitored resource descriptor:
3059 * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where 3032 /// `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
3060 * {type} is the value of the `type` field in this object and 3033 /// {type} is the value of the `type` field in this object and
3061 * {project_id} is a project ID that provides API-specific context for 3034 /// {project_id} is a project ID that provides API-specific context for
3062 * accessing the type. APIs that do not use project information can use the 3035 /// accessing the type. APIs that do not use project information can use the
3063 * resource name format `"monitoredResourceDescriptors/{type}"`. 3036 /// resource name format `"monitoredResourceDescriptors/{type}"`.
3064 */
3065 core.String name; 3037 core.String name;
3066 /** 3038
3067 * Required. The monitored resource type. For example, the type 3039 /// Required. The monitored resource type. For example, the type
3068 * `"cloudsql_database"` represents databases in Google Cloud SQL. 3040 /// `"cloudsql_database"` represents databases in Google Cloud SQL.
3069 * The maximum length of this value is 256 characters. 3041 /// The maximum length of this value is 256 characters.
3070 */
3071 core.String type; 3042 core.String type;
3072 3043
3073 MonitoredResourceDescriptor(); 3044 MonitoredResourceDescriptor();
3074 3045
3075 MonitoredResourceDescriptor.fromJson(core.Map _json) { 3046 MonitoredResourceDescriptor.fromJson(core.Map _json) {
3076 if (_json.containsKey("description")) { 3047 if (_json.containsKey("description")) {
3077 description = _json["description"]; 3048 description = _json["description"];
3078 } 3049 }
3079 if (_json.containsKey("displayName")) { 3050 if (_json.containsKey("displayName")) {
3080 displayName = _json["displayName"]; 3051 displayName = _json["displayName"];
3081 } 3052 }
3082 if (_json.containsKey("labels")) { 3053 if (_json.containsKey("labels")) {
3083 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value )).toList(); 3054 labels = _json["labels"]
3055 .map((value) => new LabelDescriptor.fromJson(value))
3056 .toList();
3084 } 3057 }
3085 if (_json.containsKey("name")) { 3058 if (_json.containsKey("name")) {
3086 name = _json["name"]; 3059 name = _json["name"];
3087 } 3060 }
3088 if (_json.containsKey("type")) { 3061 if (_json.containsKey("type")) {
3089 type = _json["type"]; 3062 type = _json["type"];
3090 } 3063 }
3091 } 3064 }
3092 3065
3093 core.Map<core.String, core.Object> toJson() { 3066 core.Map<core.String, core.Object> toJson() {
3094 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3067 final core.Map<core.String, core.Object> _json =
3068 new core.Map<core.String, core.Object>();
3095 if (description != null) { 3069 if (description != null) {
3096 _json["description"] = description; 3070 _json["description"] = description;
3097 } 3071 }
3098 if (displayName != null) { 3072 if (displayName != null) {
3099 _json["displayName"] = displayName; 3073 _json["displayName"] = displayName;
3100 } 3074 }
3101 if (labels != null) { 3075 if (labels != null) {
3102 _json["labels"] = labels.map((value) => (value).toJson()).toList(); 3076 _json["labels"] = labels.map((value) => (value).toJson()).toList();
3103 } 3077 }
3104 if (name != null) { 3078 if (name != null) {
3105 _json["name"] = name; 3079 _json["name"] = name;
3106 } 3080 }
3107 if (type != null) { 3081 if (type != null) {
3108 _json["type"] = type; 3082 _json["type"] = type;
3109 } 3083 }
3110 return _json; 3084 return _json;
3111 } 3085 }
3112 } 3086 }
3113 3087
3114 /** 3088 /// Monitoring configuration of the service.
3115 * Monitoring configuration of the service. 3089 ///
3116 * 3090 /// The example below shows how to configure monitored resources and metrics
3117 * The example below shows how to configure monitored resources and metrics 3091 /// for monitoring. In the example, a monitored resource and two metrics are
3118 * for monitoring. In the example, a monitored resource and two metrics are 3092 /// defined. The `library.googleapis.com/book/returned_count` metric is sent
3119 * defined. The `library.googleapis.com/book/returned_count` metric is sent 3093 /// to both producer and consumer projects, whereas the
3120 * to both producer and consumer projects, whereas the 3094 /// `library.googleapis.com/book/overdue_count` metric is only sent to the
3121 * `library.googleapis.com/book/overdue_count` metric is only sent to the 3095 /// consumer project.
3122 * consumer project. 3096 ///
3123 * 3097 /// monitored_resources:
3124 * monitored_resources: 3098 /// - type: library.googleapis.com/branch
3125 * - type: library.googleapis.com/branch 3099 /// labels:
3126 * labels: 3100 /// - key: /city
3127 * - key: /city 3101 /// description: The city where the library branch is located in.
3128 * description: The city where the library branch is located in. 3102 /// - key: /name
3129 * - key: /name 3103 /// description: The name of the branch.
3130 * description: The name of the branch. 3104 /// metrics:
3131 * metrics: 3105 /// - name: library.googleapis.com/book/returned_count
3132 * - name: library.googleapis.com/book/returned_count 3106 /// metric_kind: DELTA
3133 * metric_kind: DELTA 3107 /// value_type: INT64
3134 * value_type: INT64 3108 /// labels:
3135 * labels: 3109 /// - key: /customer_id
3136 * - key: /customer_id 3110 /// - name: library.googleapis.com/book/overdue_count
3137 * - name: library.googleapis.com/book/overdue_count 3111 /// metric_kind: GAUGE
3138 * metric_kind: GAUGE 3112 /// value_type: INT64
3139 * value_type: INT64 3113 /// labels:
3140 * labels: 3114 /// - key: /customer_id
3141 * - key: /customer_id 3115 /// monitoring:
3142 * monitoring: 3116 /// producer_destinations:
3143 * producer_destinations: 3117 /// - monitored_resource: library.googleapis.com/branch
3144 * - monitored_resource: library.googleapis.com/branch 3118 /// metrics:
3145 * metrics: 3119 /// - library.googleapis.com/book/returned_count
3146 * - library.googleapis.com/book/returned_count 3120 /// consumer_destinations:
3147 * consumer_destinations: 3121 /// - monitored_resource: library.googleapis.com/branch
3148 * - monitored_resource: library.googleapis.com/branch 3122 /// metrics:
3149 * metrics: 3123 /// - library.googleapis.com/book/returned_count
3150 * - library.googleapis.com/book/returned_count 3124 /// - library.googleapis.com/book/overdue_count
3151 * - library.googleapis.com/book/overdue_count
3152 */
3153 class Monitoring { 3125 class Monitoring {
3154 /** 3126 /// Monitoring configurations for sending metrics to the consumer project.
3155 * Monitoring configurations for sending metrics to the consumer project. 3127 /// There can be multiple consumer destinations, each one must have a
3156 * There can be multiple consumer destinations, each one must have a 3128 /// different monitored resource type. A metric can be used in at most
3157 * different monitored resource type. A metric can be used in at most 3129 /// one consumer destination.
3158 * one consumer destination.
3159 */
3160 core.List<MonitoringDestination> consumerDestinations; 3130 core.List<MonitoringDestination> consumerDestinations;
3161 /** 3131
3162 * Monitoring configurations for sending metrics to the producer project. 3132 /// Monitoring configurations for sending metrics to the producer project.
3163 * There can be multiple producer destinations, each one must have a 3133 /// There can be multiple producer destinations, each one must have a
3164 * different monitored resource type. A metric can be used in at most 3134 /// different monitored resource type. A metric can be used in at most
3165 * one producer destination. 3135 /// one producer destination.
3166 */
3167 core.List<MonitoringDestination> producerDestinations; 3136 core.List<MonitoringDestination> producerDestinations;
3168 3137
3169 Monitoring(); 3138 Monitoring();
3170 3139
3171 Monitoring.fromJson(core.Map _json) { 3140 Monitoring.fromJson(core.Map _json) {
3172 if (_json.containsKey("consumerDestinations")) { 3141 if (_json.containsKey("consumerDestinations")) {
3173 consumerDestinations = _json["consumerDestinations"].map((value) => new Mo nitoringDestination.fromJson(value)).toList(); 3142 consumerDestinations = _json["consumerDestinations"]
3143 .map((value) => new MonitoringDestination.fromJson(value))
3144 .toList();
3174 } 3145 }
3175 if (_json.containsKey("producerDestinations")) { 3146 if (_json.containsKey("producerDestinations")) {
3176 producerDestinations = _json["producerDestinations"].map((value) => new Mo nitoringDestination.fromJson(value)).toList(); 3147 producerDestinations = _json["producerDestinations"]
3148 .map((value) => new MonitoringDestination.fromJson(value))
3149 .toList();
3177 } 3150 }
3178 } 3151 }
3179 3152
3180 core.Map<core.String, core.Object> toJson() { 3153 core.Map<core.String, core.Object> toJson() {
3181 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3154 final core.Map<core.String, core.Object> _json =
3155 new core.Map<core.String, core.Object>();
3182 if (consumerDestinations != null) { 3156 if (consumerDestinations != null) {
3183 _json["consumerDestinations"] = consumerDestinations.map((value) => (value ).toJson()).toList(); 3157 _json["consumerDestinations"] =
3158 consumerDestinations.map((value) => (value).toJson()).toList();
3184 } 3159 }
3185 if (producerDestinations != null) { 3160 if (producerDestinations != null) {
3186 _json["producerDestinations"] = producerDestinations.map((value) => (value ).toJson()).toList(); 3161 _json["producerDestinations"] =
3162 producerDestinations.map((value) => (value).toJson()).toList();
3187 } 3163 }
3188 return _json; 3164 return _json;
3189 } 3165 }
3190 } 3166 }
3191 3167
3192 /** 3168 /// Configuration of a specific monitoring destination (the producer project
3193 * Configuration of a specific monitoring destination (the producer project 3169 /// or the consumer project).
3194 * or the consumer project).
3195 */
3196 class MonitoringDestination { 3170 class MonitoringDestination {
3197 /** 3171 /// Names of the metrics to report to this monitoring destination.
3198 * Names of the metrics to report to this monitoring destination. 3172 /// Each name must be defined in Service.metrics section.
3199 * Each name must be defined in Service.metrics section.
3200 */
3201 core.List<core.String> metrics; 3173 core.List<core.String> metrics;
3202 /** 3174
3203 * The monitored resource type. The type must be defined in 3175 /// The monitored resource type. The type must be defined in
3204 * Service.monitored_resources section. 3176 /// Service.monitored_resources section.
3205 */
3206 core.String monitoredResource; 3177 core.String monitoredResource;
3207 3178
3208 MonitoringDestination(); 3179 MonitoringDestination();
3209 3180
3210 MonitoringDestination.fromJson(core.Map _json) { 3181 MonitoringDestination.fromJson(core.Map _json) {
3211 if (_json.containsKey("metrics")) { 3182 if (_json.containsKey("metrics")) {
3212 metrics = _json["metrics"]; 3183 metrics = _json["metrics"];
3213 } 3184 }
3214 if (_json.containsKey("monitoredResource")) { 3185 if (_json.containsKey("monitoredResource")) {
3215 monitoredResource = _json["monitoredResource"]; 3186 monitoredResource = _json["monitoredResource"];
3216 } 3187 }
3217 } 3188 }
3218 3189
3219 core.Map<core.String, core.Object> toJson() { 3190 core.Map<core.String, core.Object> toJson() {
3220 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3191 final core.Map<core.String, core.Object> _json =
3192 new core.Map<core.String, core.Object>();
3221 if (metrics != null) { 3193 if (metrics != null) {
3222 _json["metrics"] = metrics; 3194 _json["metrics"] = metrics;
3223 } 3195 }
3224 if (monitoredResource != null) { 3196 if (monitoredResource != null) {
3225 _json["monitoredResource"] = monitoredResource; 3197 _json["monitoredResource"] = monitoredResource;
3226 } 3198 }
3227 return _json; 3199 return _json;
3228 } 3200 }
3229 } 3201 }
3230 3202
3231 /** 3203 /// OAuth scopes are a way to define data and permissions on data. For example,
3232 * OAuth scopes are a way to define data and permissions on data. For example, 3204 /// there are scopes defined for "Read-only access to Google Calendar" and
3233 * there are scopes defined for "Read-only access to Google Calendar" and 3205 /// "Access to Cloud Platform". Users can consent to a scope for an
3234 * "Access to Cloud Platform". Users can consent to a scope for an application, 3206 /// application,
3235 * giving it permission to access that data on their behalf. 3207 /// giving it permission to access that data on their behalf.
3236 * 3208 ///
3237 * OAuth scope specifications should be fairly coarse grained; a user will need 3209 /// OAuth scope specifications should be fairly coarse grained; a user will
3238 * to see and understand the text description of what your scope means. 3210 /// need
3239 * 3211 /// to see and understand the text description of what your scope means.
3240 * In most cases: use one or at most two OAuth scopes for an entire family of 3212 ///
3241 * products. If your product has multiple APIs, you should probably be sharing 3213 /// In most cases: use one or at most two OAuth scopes for an entire family of
3242 * the OAuth scope across all of those APIs. 3214 /// products. If your product has multiple APIs, you should probably be sharing
3243 * 3215 /// the OAuth scope across all of those APIs.
3244 * When you need finer grained OAuth consent screens: talk with your product 3216 ///
3245 * management about how developers will use them in practice. 3217 /// When you need finer grained OAuth consent screens: talk with your product
3246 * 3218 /// management about how developers will use them in practice.
3247 * Please note that even though each of the canonical scopes is enough for a 3219 ///
3248 * request to be accepted and passed to the backend, a request can still fail 3220 /// Please note that even though each of the canonical scopes is enough for a
3249 * due to the backend requiring additional scopes or permissions. 3221 /// request to be accepted and passed to the backend, a request can still fail
3250 */ 3222 /// due to the backend requiring additional scopes or permissions.
3251 class OAuthRequirements { 3223 class OAuthRequirements {
3252 /** 3224 /// The list of publicly documented OAuth scopes that are allowed access. An
3253 * The list of publicly documented OAuth scopes that are allowed access. An 3225 /// OAuth token containing any of these scopes will be accepted.
3254 * OAuth token containing any of these scopes will be accepted. 3226 ///
3255 * 3227 /// Example:
3256 * Example: 3228 ///
3257 * 3229 /// canonical_scopes: https://www.googleapis.com/auth/calendar,
3258 * canonical_scopes: https://www.googleapis.com/auth/calendar, 3230 /// https://www.googleapis.com/auth/calendar.read
3259 * https://www.googleapis.com/auth/calendar.read
3260 */
3261 core.String canonicalScopes; 3231 core.String canonicalScopes;
3262 3232
3263 OAuthRequirements(); 3233 OAuthRequirements();
3264 3234
3265 OAuthRequirements.fromJson(core.Map _json) { 3235 OAuthRequirements.fromJson(core.Map _json) {
3266 if (_json.containsKey("canonicalScopes")) { 3236 if (_json.containsKey("canonicalScopes")) {
3267 canonicalScopes = _json["canonicalScopes"]; 3237 canonicalScopes = _json["canonicalScopes"];
3268 } 3238 }
3269 } 3239 }
3270 3240
3271 core.Map<core.String, core.Object> toJson() { 3241 core.Map<core.String, core.Object> toJson() {
3272 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3242 final core.Map<core.String, core.Object> _json =
3243 new core.Map<core.String, core.Object>();
3273 if (canonicalScopes != null) { 3244 if (canonicalScopes != null) {
3274 _json["canonicalScopes"] = canonicalScopes; 3245 _json["canonicalScopes"] = canonicalScopes;
3275 } 3246 }
3276 return _json; 3247 return _json;
3277 } 3248 }
3278 } 3249 }
3279 3250
3280 /** 3251 /// This resource represents a long-running operation that is the result of a
3281 * This resource represents a long-running operation that is the result of a 3252 /// network API call.
3282 * network API call.
3283 */
3284 class Operation { 3253 class Operation {
3285 /** 3254 /// If the value is `false`, it means the operation is still in progress.
3286 * If the value is `false`, it means the operation is still in progress. 3255 /// If `true`, the operation is completed, and either `error` or `response`
3287 * If true, the operation is completed, and either `error` or `response` is 3256 /// is
3288 * available. 3257 /// available.
3289 */
3290 core.bool done; 3258 core.bool done;
3291 /** The error result of the operation in case of failure or cancellation. */ 3259
3260 /// The error result of the operation in case of failure or cancellation.
3292 Status error; 3261 Status error;
3293 /** 3262
3294 * Service-specific metadata associated with the operation. It typically 3263 /// Service-specific metadata associated with the operation. It typically
3295 * contains progress information and common metadata such as create time. 3264 /// contains progress information and common metadata such as create time.
3296 * Some services might not provide such metadata. Any method that returns a 3265 /// Some services might not provide such metadata. Any method that returns a
3297 * long-running operation should document the metadata type, if any. 3266 /// long-running operation should document the metadata type, if any.
3298 * 3267 ///
3299 * The values for Object must be JSON objects. It can consist of `num`, 3268 /// The values for Object must be JSON objects. It can consist of `num`,
3300 * `String`, `bool` and `null` as well as `Map` and `List` values. 3269 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3301 */
3302 core.Map<core.String, core.Object> metadata; 3270 core.Map<core.String, core.Object> metadata;
3303 /** 3271
3304 * The server-assigned name, which is only unique within the same service that 3272 /// The server-assigned name, which is only unique within the same service
3305 * originally returns it. If you use the default HTTP mapping, the 3273 /// that
3306 * `name` should have the format of `operations/some/unique/name`. 3274 /// originally returns it. If you use the default HTTP mapping, the
3307 */ 3275 /// `name` should have the format of `operations/some/unique/name`.
3308 core.String name; 3276 core.String name;
3309 /** 3277
3310 * The normal response of the operation in case of success. If the original 3278 /// The normal response of the operation in case of success. If the original
3311 * method returns no data on success, such as `Delete`, the response is 3279 /// method returns no data on success, such as `Delete`, the response is
3312 * `google.protobuf.Empty`. If the original method is standard 3280 /// `google.protobuf.Empty`. If the original method is standard
3313 * `Get`/`Create`/`Update`, the response should be the resource. For other 3281 /// `Get`/`Create`/`Update`, the response should be the resource. For other
3314 * methods, the response should have the type `XxxResponse`, where `Xxx` 3282 /// methods, the response should have the type `XxxResponse`, where `Xxx`
3315 * is the original method name. For example, if the original method name 3283 /// is the original method name. For example, if the original method name
3316 * is `TakeSnapshot()`, the inferred response type is 3284 /// is `TakeSnapshot()`, the inferred response type is
3317 * `TakeSnapshotResponse`. 3285 /// `TakeSnapshotResponse`.
3318 * 3286 ///
3319 * The values for Object must be JSON objects. It can consist of `num`, 3287 /// The values for Object must be JSON objects. It can consist of `num`,
3320 * `String`, `bool` and `null` as well as `Map` and `List` values. 3288 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3321 */
3322 core.Map<core.String, core.Object> response; 3289 core.Map<core.String, core.Object> response;
3323 3290
3324 Operation(); 3291 Operation();
3325 3292
3326 Operation.fromJson(core.Map _json) { 3293 Operation.fromJson(core.Map _json) {
3327 if (_json.containsKey("done")) { 3294 if (_json.containsKey("done")) {
3328 done = _json["done"]; 3295 done = _json["done"];
3329 } 3296 }
3330 if (_json.containsKey("error")) { 3297 if (_json.containsKey("error")) {
3331 error = new Status.fromJson(_json["error"]); 3298 error = new Status.fromJson(_json["error"]);
3332 } 3299 }
3333 if (_json.containsKey("metadata")) { 3300 if (_json.containsKey("metadata")) {
3334 metadata = _json["metadata"]; 3301 metadata = _json["metadata"];
3335 } 3302 }
3336 if (_json.containsKey("name")) { 3303 if (_json.containsKey("name")) {
3337 name = _json["name"]; 3304 name = _json["name"];
3338 } 3305 }
3339 if (_json.containsKey("response")) { 3306 if (_json.containsKey("response")) {
3340 response = _json["response"]; 3307 response = _json["response"];
3341 } 3308 }
3342 } 3309 }
3343 3310
3344 core.Map<core.String, core.Object> toJson() { 3311 core.Map<core.String, core.Object> toJson() {
3345 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3312 final core.Map<core.String, core.Object> _json =
3313 new core.Map<core.String, core.Object>();
3346 if (done != null) { 3314 if (done != null) {
3347 _json["done"] = done; 3315 _json["done"] = done;
3348 } 3316 }
3349 if (error != null) { 3317 if (error != null) {
3350 _json["error"] = (error).toJson(); 3318 _json["error"] = (error).toJson();
3351 } 3319 }
3352 if (metadata != null) { 3320 if (metadata != null) {
3353 _json["metadata"] = metadata; 3321 _json["metadata"] = metadata;
3354 } 3322 }
3355 if (name != null) { 3323 if (name != null) {
3356 _json["name"] = name; 3324 _json["name"] = name;
3357 } 3325 }
3358 if (response != null) { 3326 if (response != null) {
3359 _json["response"] = response; 3327 _json["response"] = response;
3360 } 3328 }
3361 return _json; 3329 return _json;
3362 } 3330 }
3363 } 3331 }
3364 3332
3365 /** The metadata associated with a long running operation resource. */ 3333 /// The metadata associated with a long running operation resource.
3366 class OperationMetadata { 3334 class OperationMetadata {
3367 /** Percentage of completion of this operation, ranging from 0 to 100. */ 3335 /// Percentage of completion of this operation, ranging from 0 to 100.
3368 core.int progressPercentage; 3336 core.int progressPercentage;
3369 /** 3337
3370 * The full name of the resources that this operation is directly 3338 /// The full name of the resources that this operation is directly
3371 * associated with. 3339 /// associated with.
3372 */
3373 core.List<core.String> resourceNames; 3340 core.List<core.String> resourceNames;
3374 /** The start time of the operation. */ 3341
3342 /// The start time of the operation.
3375 core.String startTime; 3343 core.String startTime;
3376 /** Detailed status information for each step. The order is undetermined. */ 3344
3345 /// Detailed status information for each step. The order is undetermined.
3377 core.List<Step> steps; 3346 core.List<Step> steps;
3378 3347
3379 OperationMetadata(); 3348 OperationMetadata();
3380 3349
3381 OperationMetadata.fromJson(core.Map _json) { 3350 OperationMetadata.fromJson(core.Map _json) {
3382 if (_json.containsKey("progressPercentage")) { 3351 if (_json.containsKey("progressPercentage")) {
3383 progressPercentage = _json["progressPercentage"]; 3352 progressPercentage = _json["progressPercentage"];
3384 } 3353 }
3385 if (_json.containsKey("resourceNames")) { 3354 if (_json.containsKey("resourceNames")) {
3386 resourceNames = _json["resourceNames"]; 3355 resourceNames = _json["resourceNames"];
3387 } 3356 }
3388 if (_json.containsKey("startTime")) { 3357 if (_json.containsKey("startTime")) {
3389 startTime = _json["startTime"]; 3358 startTime = _json["startTime"];
3390 } 3359 }
3391 if (_json.containsKey("steps")) { 3360 if (_json.containsKey("steps")) {
3392 steps = _json["steps"].map((value) => new Step.fromJson(value)).toList(); 3361 steps = _json["steps"].map((value) => new Step.fromJson(value)).toList();
3393 } 3362 }
3394 } 3363 }
3395 3364
3396 core.Map<core.String, core.Object> toJson() { 3365 core.Map<core.String, core.Object> toJson() {
3397 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3366 final core.Map<core.String, core.Object> _json =
3367 new core.Map<core.String, core.Object>();
3398 if (progressPercentage != null) { 3368 if (progressPercentage != null) {
3399 _json["progressPercentage"] = progressPercentage; 3369 _json["progressPercentage"] = progressPercentage;
3400 } 3370 }
3401 if (resourceNames != null) { 3371 if (resourceNames != null) {
3402 _json["resourceNames"] = resourceNames; 3372 _json["resourceNames"] = resourceNames;
3403 } 3373 }
3404 if (startTime != null) { 3374 if (startTime != null) {
3405 _json["startTime"] = startTime; 3375 _json["startTime"] = startTime;
3406 } 3376 }
3407 if (steps != null) { 3377 if (steps != null) {
3408 _json["steps"] = steps.map((value) => (value).toJson()).toList(); 3378 _json["steps"] = steps.map((value) => (value).toJson()).toList();
3409 } 3379 }
3410 return _json; 3380 return _json;
3411 } 3381 }
3412 } 3382 }
3413 3383
3414 /** 3384 /// A protocol buffer option, which can be attached to a message, field,
3415 * A protocol buffer option, which can be attached to a message, field, 3385 /// enumeration, etc.
3416 * enumeration, etc.
3417 */
3418 class Option { 3386 class Option {
3419 /** 3387 /// The option's name. For protobuf built-in options (options defined in
3420 * The option's name. For protobuf built-in options (options defined in 3388 /// descriptor.proto), this is the short name. For example, `"map_entry"`.
3421 * descriptor.proto), this is the short name. For example, `"map_entry"`. 3389 /// For custom options, it should be the fully-qualified name. For example,
3422 * For custom options, it should be the fully-qualified name. For example, 3390 /// `"google.api.http"`.
3423 * `"google.api.http"`.
3424 */
3425 core.String name; 3391 core.String name;
3426 /** 3392
3427 * The option's value packed in an Any message. If the value is a primitive, 3393 /// The option's value packed in an Any message. If the value is a primitive,
3428 * the corresponding wrapper type defined in google/protobuf/wrappers.proto 3394 /// the corresponding wrapper type defined in google/protobuf/wrappers.proto
3429 * should be used. If the value is an enum, it should be stored as an int32 3395 /// should be used. If the value is an enum, it should be stored as an int32
3430 * value using the google.protobuf.Int32Value type. 3396 /// value using the google.protobuf.Int32Value type.
3431 * 3397 ///
3432 * The values for Object must be JSON objects. It can consist of `num`, 3398 /// The values for Object must be JSON objects. It can consist of `num`,
3433 * `String`, `bool` and `null` as well as `Map` and `List` values. 3399 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3434 */
3435 core.Map<core.String, core.Object> value; 3400 core.Map<core.String, core.Object> value;
3436 3401
3437 Option(); 3402 Option();
3438 3403
3439 Option.fromJson(core.Map _json) { 3404 Option.fromJson(core.Map _json) {
3440 if (_json.containsKey("name")) { 3405 if (_json.containsKey("name")) {
3441 name = _json["name"]; 3406 name = _json["name"];
3442 } 3407 }
3443 if (_json.containsKey("value")) { 3408 if (_json.containsKey("value")) {
3444 value = _json["value"]; 3409 value = _json["value"];
3445 } 3410 }
3446 } 3411 }
3447 3412
3448 core.Map<core.String, core.Object> toJson() { 3413 core.Map<core.String, core.Object> toJson() {
3449 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3414 final core.Map<core.String, core.Object> _json =
3415 new core.Map<core.String, core.Object>();
3450 if (name != null) { 3416 if (name != null) {
3451 _json["name"] = name; 3417 _json["name"] = name;
3452 } 3418 }
3453 if (value != null) { 3419 if (value != null) {
3454 _json["value"] = value; 3420 _json["value"] = value;
3455 } 3421 }
3456 return _json; 3422 return _json;
3457 } 3423 }
3458 } 3424 }
3459 3425
3460 /** 3426 /// Represents a documentation page. A page can contain subpages to represent
3461 * Represents a documentation page. A page can contain subpages to represent 3427 /// nested documentation set structure.
3462 * nested documentation set structure.
3463 */
3464 class Page { 3428 class Page {
3465 /** 3429 /// The Markdown content of the page. You can use <code>&#40;== include
3466 * The Markdown content of the page. You can use <code>&#40;== include {path} 3430 /// {path} ==&#41;</code>
3467 * ==&#41;</code> 3431 /// to include content from a Markdown file.
3468 * to include content from a Markdown file.
3469 */
3470 core.String content; 3432 core.String content;
3471 /** 3433
3472 * The name of the page. It will be used as an identity of the page to 3434 /// The name of the page. It will be used as an identity of the page to
3473 * generate URI of the page, text of the link to this page in navigation, 3435 /// generate URI of the page, text of the link to this page in navigation,
3474 * etc. The full page name (start from the root page name to this page 3436 /// etc. The full page name (start from the root page name to this page
3475 * concatenated with `.`) can be used as reference to the page in your 3437 /// concatenated with `.`) can be used as reference to the page in your
3476 * documentation. For example: 3438 /// documentation. For example:
3477 * <pre><code>pages: 3439 /// <pre><code>pages:
3478 * - name: Tutorial 3440 /// - name: Tutorial
3479 * content: &#40;== include tutorial.md ==&#41; 3441 /// content: &#40;== include tutorial.md ==&#41;
3480 * subpages: 3442 /// subpages:
3481 * - name: Java 3443 /// - name: Java
3482 * content: &#40;== include tutorial_java.md ==&#41; 3444 /// content: &#40;== include tutorial_java.md ==&#41;
3483 * </code></pre> 3445 /// </code></pre>
3484 * You can reference `Java` page using Markdown reference link syntax: 3446 /// You can reference `Java` page using Markdown reference link syntax:
3485 * `Java`. 3447 /// `Java`.
3486 */
3487 core.String name; 3448 core.String name;
3488 /** 3449
3489 * Subpages of this page. The order of subpages specified here will be 3450 /// Subpages of this page. The order of subpages specified here will be
3490 * honored in the generated docset. 3451 /// honored in the generated docset.
3491 */
3492 core.List<Page> subpages; 3452 core.List<Page> subpages;
3493 3453
3494 Page(); 3454 Page();
3495 3455
3496 Page.fromJson(core.Map _json) { 3456 Page.fromJson(core.Map _json) {
3497 if (_json.containsKey("content")) { 3457 if (_json.containsKey("content")) {
3498 content = _json["content"]; 3458 content = _json["content"];
3499 } 3459 }
3500 if (_json.containsKey("name")) { 3460 if (_json.containsKey("name")) {
3501 name = _json["name"]; 3461 name = _json["name"];
3502 } 3462 }
3503 if (_json.containsKey("subpages")) { 3463 if (_json.containsKey("subpages")) {
3504 subpages = _json["subpages"].map((value) => new Page.fromJson(value)).toLi st(); 3464 subpages =
3465 _json["subpages"].map((value) => new Page.fromJson(value)).toList();
3505 } 3466 }
3506 } 3467 }
3507 3468
3508 core.Map<core.String, core.Object> toJson() { 3469 core.Map<core.String, core.Object> toJson() {
3509 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3470 final core.Map<core.String, core.Object> _json =
3471 new core.Map<core.String, core.Object>();
3510 if (content != null) { 3472 if (content != null) {
3511 _json["content"] = content; 3473 _json["content"] = content;
3512 } 3474 }
3513 if (name != null) { 3475 if (name != null) {
3514 _json["name"] = name; 3476 _json["name"] = name;
3515 } 3477 }
3516 if (subpages != null) { 3478 if (subpages != null) {
3517 _json["subpages"] = subpages.map((value) => (value).toJson()).toList(); 3479 _json["subpages"] = subpages.map((value) => (value).toJson()).toList();
3518 } 3480 }
3519 return _json; 3481 return _json;
3520 } 3482 }
3521 } 3483 }
3522 3484
3523 /** 3485 /// The published version of a Service that is managed by
3524 * The published version of a Service that is managed by 3486 /// Google Service Management.
3525 * Google Service Management.
3526 */
3527 class PublishedService { 3487 class PublishedService {
3528 /** 3488 /// The resource name of the service.
3529 * The resource name of the service. 3489 ///
3530 * 3490 /// A valid name would be:
3531 * A valid name would be: 3491 /// - services/serviceuser.googleapis.com
3532 * - services/serviceuser.googleapis.com
3533 */
3534 core.String name; 3492 core.String name;
3535 /** The service's published configuration. */ 3493
3494 /// The service's published configuration.
3536 Service service; 3495 Service service;
3537 3496
3538 PublishedService(); 3497 PublishedService();
3539 3498
3540 PublishedService.fromJson(core.Map _json) { 3499 PublishedService.fromJson(core.Map _json) {
3541 if (_json.containsKey("name")) { 3500 if (_json.containsKey("name")) {
3542 name = _json["name"]; 3501 name = _json["name"];
3543 } 3502 }
3544 if (_json.containsKey("service")) { 3503 if (_json.containsKey("service")) {
3545 service = new Service.fromJson(_json["service"]); 3504 service = new Service.fromJson(_json["service"]);
3546 } 3505 }
3547 } 3506 }
3548 3507
3549 core.Map<core.String, core.Object> toJson() { 3508 core.Map<core.String, core.Object> toJson() {
3550 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3509 final core.Map<core.String, core.Object> _json =
3510 new core.Map<core.String, core.Object>();
3551 if (name != null) { 3511 if (name != null) {
3552 _json["name"] = name; 3512 _json["name"] = name;
3553 } 3513 }
3554 if (service != null) { 3514 if (service != null) {
3555 _json["service"] = (service).toJson(); 3515 _json["service"] = (service).toJson();
3556 } 3516 }
3557 return _json; 3517 return _json;
3558 } 3518 }
3559 } 3519 }
3560 3520
3561 /** 3521 /// Quota configuration helps to achieve fairness and budgeting in service
3562 * Quota configuration helps to achieve fairness and budgeting in service 3522 /// usage.
3563 * usage. 3523 ///
3564 * 3524 /// The quota configuration works this way:
3565 * The quota configuration works this way: 3525 /// - The service configuration defines a set of metrics.
3566 * - The service configuration defines a set of metrics. 3526 /// - For API calls, the quota.metric_rules maps methods to metrics with
3567 * - For API calls, the quota.metric_rules maps methods to metrics with 3527 /// corresponding costs.
3568 * corresponding costs. 3528 /// - The quota.limits defines limits on the metrics, which will be used for
3569 * - The quota.limits defines limits on the metrics, which will be used for 3529 /// quota checks at runtime.
3570 * quota checks at runtime. 3530 ///
3571 * 3531 /// An example quota configuration in yaml format:
3572 * An example quota configuration in yaml format: 3532 ///
3573 * 3533 /// quota:
3574 * quota: 3534 ///
3575 * 3535 /// - name: apiWriteQpsPerProject
3576 * - name: apiWriteQpsPerProject 3536 /// metric: library.googleapis.com/write_calls
3577 * metric: library.googleapis.com/write_calls 3537 /// unit: "1/min/{project}" # rate limit for consumer projects
3578 * unit: "1/min/{project}" # rate limit for consumer projects 3538 /// values:
3579 * values: 3539 /// STANDARD: 10000
3580 * STANDARD: 10000 3540 ///
3581 * 3541 ///
3582 * 3542 /// # The metric rules bind all methods to the read_calls metric,
3583 * # The metric rules bind all methods to the read_calls metric, 3543 /// # except for the UpdateBook and DeleteBook methods. These two methods
3584 * # except for the UpdateBook and DeleteBook methods. These two methods 3544 /// # are mapped to the write_calls metric, with the UpdateBook method
3585 * # are mapped to the write_calls metric, with the UpdateBook method 3545 /// # consuming at twice rate as the DeleteBook method.
3586 * # consuming at twice rate as the DeleteBook method. 3546 /// metric_rules:
3587 * metric_rules: 3547 /// - selector: "*"
3588 * - selector: "*" 3548 /// metric_costs:
3589 * metric_costs: 3549 /// library.googleapis.com/read_calls: 1
3590 * library.googleapis.com/read_calls: 1 3550 /// - selector: google.example.library.v1.LibraryService.UpdateBook
3591 * - selector: google.example.library.v1.LibraryService.UpdateBook 3551 /// metric_costs:
3592 * metric_costs: 3552 /// library.googleapis.com/write_calls: 2
3593 * library.googleapis.com/write_calls: 2 3553 /// - selector: google.example.library.v1.LibraryService.DeleteBook
3594 * - selector: google.example.library.v1.LibraryService.DeleteBook 3554 /// metric_costs:
3595 * metric_costs: 3555 /// library.googleapis.com/write_calls: 1
3596 * library.googleapis.com/write_calls: 1 3556 ///
3597 * 3557 /// Corresponding Metric definition:
3598 * Corresponding Metric definition: 3558 ///
3599 * 3559 /// metrics:
3600 * metrics: 3560 /// - name: library.googleapis.com/read_calls
3601 * - name: library.googleapis.com/read_calls 3561 /// display_name: Read requests
3602 * display_name: Read requests 3562 /// metric_kind: DELTA
3603 * metric_kind: DELTA 3563 /// value_type: INT64
3604 * value_type: INT64 3564 ///
3605 * 3565 /// - name: library.googleapis.com/write_calls
3606 * - name: library.googleapis.com/write_calls 3566 /// display_name: Write requests
3607 * display_name: Write requests 3567 /// metric_kind: DELTA
3608 * metric_kind: DELTA 3568 /// value_type: INT64
3609 * value_type: INT64
3610 */
3611 class Quota { 3569 class Quota {
3612 /** List of `QuotaLimit` definitions for the service. */ 3570 /// List of `QuotaLimit` definitions for the service.
3613 core.List<QuotaLimit> limits; 3571 core.List<QuotaLimit> limits;
3614 /** 3572
3615 * List of `MetricRule` definitions, each one mapping a selected method to one 3573 /// List of `MetricRule` definitions, each one mapping a selected method to
3616 * or more metrics. 3574 /// one
3617 */ 3575 /// or more metrics.
3618 core.List<MetricRule> metricRules; 3576 core.List<MetricRule> metricRules;
3619 3577
3620 Quota(); 3578 Quota();
3621 3579
3622 Quota.fromJson(core.Map _json) { 3580 Quota.fromJson(core.Map _json) {
3623 if (_json.containsKey("limits")) { 3581 if (_json.containsKey("limits")) {
3624 limits = _json["limits"].map((value) => new QuotaLimit.fromJson(value)).to List(); 3582 limits = _json["limits"]
3583 .map((value) => new QuotaLimit.fromJson(value))
3584 .toList();
3625 } 3585 }
3626 if (_json.containsKey("metricRules")) { 3586 if (_json.containsKey("metricRules")) {
3627 metricRules = _json["metricRules"].map((value) => new MetricRule.fromJson( value)).toList(); 3587 metricRules = _json["metricRules"]
3588 .map((value) => new MetricRule.fromJson(value))
3589 .toList();
3628 } 3590 }
3629 } 3591 }
3630 3592
3631 core.Map<core.String, core.Object> toJson() { 3593 core.Map<core.String, core.Object> toJson() {
3632 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3594 final core.Map<core.String, core.Object> _json =
3595 new core.Map<core.String, core.Object>();
3633 if (limits != null) { 3596 if (limits != null) {
3634 _json["limits"] = limits.map((value) => (value).toJson()).toList(); 3597 _json["limits"] = limits.map((value) => (value).toJson()).toList();
3635 } 3598 }
3636 if (metricRules != null) { 3599 if (metricRules != null) {
3637 _json["metricRules"] = metricRules.map((value) => (value).toJson()).toList (); 3600 _json["metricRules"] =
3601 metricRules.map((value) => (value).toJson()).toList();
3638 } 3602 }
3639 return _json; 3603 return _json;
3640 } 3604 }
3641 } 3605 }
3642 3606
3643 /** 3607 /// `QuotaLimit` defines a specific limit that applies over a specified
3644 * `QuotaLimit` defines a specific limit that applies over a specified duration 3608 /// duration
3645 * for a limit type. There can be at most one limit for a duration and limit 3609 /// for a limit type. There can be at most one limit for a duration and limit
3646 * type combination defined within a `QuotaGroup`. 3610 /// type combination defined within a `QuotaGroup`.
3647 */
3648 class QuotaLimit { 3611 class QuotaLimit {
3649 /** 3612 /// Default number of tokens that can be consumed during the specified
3650 * Default number of tokens that can be consumed during the specified 3613 /// duration. This is the number of tokens assigned when a client
3651 * duration. This is the number of tokens assigned when a client 3614 /// application developer activates the service for his/her project.
3652 * application developer activates the service for his/her project. 3615 ///
3653 * 3616 /// Specifying a value of 0 will block all requests. This can be used if you
3654 * Specifying a value of 0 will block all requests. This can be used if you 3617 /// are provisioning quota to selected consumers and blocking others.
3655 * are provisioning quota to selected consumers and blocking others. 3618 /// Similarly, a value of -1 will indicate an unlimited quota. No other
3656 * Similarly, a value of -1 will indicate an unlimited quota. No other 3619 /// negative values are allowed.
3657 * negative values are allowed. 3620 ///
3658 * 3621 /// Used by group-based quotas only.
3659 * Used by group-based quotas only.
3660 */
3661 core.String defaultLimit; 3622 core.String defaultLimit;
3662 /** 3623
3663 * Optional. User-visible, extended description for this quota limit. 3624 /// Optional. User-visible, extended description for this quota limit.
3664 * Should be used only when more context is needed to understand this limit 3625 /// Should be used only when more context is needed to understand this limit
3665 * than provided by the limit's display name (see: `display_name`). 3626 /// than provided by the limit's display name (see: `display_name`).
3666 */
3667 core.String description; 3627 core.String description;
3668 /** 3628
3669 * User-visible display name for this limit. 3629 /// User-visible display name for this limit.
3670 * Optional. If not set, the UI will provide a default display name based on 3630 /// Optional. If not set, the UI will provide a default display name based on
3671 * the quota configuration. This field can be used to override the default 3631 /// the quota configuration. This field can be used to override the default
3672 * display name generated from the configuration. 3632 /// display name generated from the configuration.
3673 */
3674 core.String displayName; 3633 core.String displayName;
3675 /** 3634
3676 * Duration of this limit in textual notation. Example: "100s", "24h", "1d". 3635 /// Duration of this limit in textual notation. Example: "100s", "24h", "1d".
3677 * For duration longer than a day, only multiple of days is supported. We 3636 /// For duration longer than a day, only multiple of days is supported. We
3678 * support only "100s" and "1d" for now. Additional support will be added in 3637 /// support only "100s" and "1d" for now. Additional support will be added in
3679 * the future. "0" indicates indefinite duration. 3638 /// the future. "0" indicates indefinite duration.
3680 * 3639 ///
3681 * Used by group-based quotas only. 3640 /// Used by group-based quotas only.
3682 */
3683 core.String duration; 3641 core.String duration;
3684 /** 3642
3685 * Free tier value displayed in the Developers Console for this limit. 3643 /// Free tier value displayed in the Developers Console for this limit.
3686 * The free tier is the number of tokens that will be subtracted from the 3644 /// The free tier is the number of tokens that will be subtracted from the
3687 * billed amount when billing is enabled. 3645 /// billed amount when billing is enabled.
3688 * This field can only be set on a limit with duration "1d", in a billable 3646 /// This field can only be set on a limit with duration "1d", in a billable
3689 * group; it is invalid on any other limit. If this field is not set, it 3647 /// group; it is invalid on any other limit. If this field is not set, it
3690 * defaults to 0, indicating that there is no free tier for this service. 3648 /// defaults to 0, indicating that there is no free tier for this service.
3691 * 3649 ///
3692 * Used by group-based quotas only. 3650 /// Used by group-based quotas only.
3693 */
3694 core.String freeTier; 3651 core.String freeTier;
3695 /** 3652
3696 * Maximum number of tokens that can be consumed during the specified 3653 /// Maximum number of tokens that can be consumed during the specified
3697 * duration. Client application developers can override the default limit up 3654 /// duration. Client application developers can override the default limit up
3698 * to this maximum. If specified, this value cannot be set to a value less 3655 /// to this maximum. If specified, this value cannot be set to a value less
3699 * than the default limit. If not specified, it is set to the default limit. 3656 /// than the default limit. If not specified, it is set to the default limit.
3700 * 3657 ///
3701 * To allow clients to apply overrides with no upper bound, set this to -1, 3658 /// To allow clients to apply overrides with no upper bound, set this to -1,
3702 * indicating unlimited maximum quota. 3659 /// indicating unlimited maximum quota.
3703 * 3660 ///
3704 * Used by group-based quotas only. 3661 /// Used by group-based quotas only.
3705 */
3706 core.String maxLimit; 3662 core.String maxLimit;
3707 /** 3663
3708 * The name of the metric this quota limit applies to. The quota limits with 3664 /// The name of the metric this quota limit applies to. The quota limits with
3709 * the same metric will be checked together during runtime. The metric must be 3665 /// the same metric will be checked together during runtime. The metric must
3710 * defined within the service config. 3666 /// be
3711 * 3667 /// defined within the service config.
3712 * Used by metric-based quotas only. 3668 ///
3713 */ 3669 /// Used by metric-based quotas only.
3714 core.String metric; 3670 core.String metric;
3715 /** 3671
3716 * Name of the quota limit. The name is used to refer to the limit when 3672 /// Name of the quota limit. The name is used to refer to the limit when
3717 * overriding the default limit on per-consumer basis. 3673 /// overriding the default limit on per-consumer basis.
3718 * 3674 ///
3719 * For metric-based quota limits, the name must be provided, and it must be 3675 /// For metric-based quota limits, the name must be provided, and it must be
3720 * unique within the service. The name can only include alphanumeric 3676 /// unique within the service. The name can only include alphanumeric
3721 * characters as well as '-'. 3677 /// characters as well as '-'.
3722 * 3678 ///
3723 * The maximum length of the limit name is 64 characters. 3679 /// The maximum length of the limit name is 64 characters.
3724 * 3680 ///
3725 * The name of a limit is used as a unique identifier for this limit. 3681 /// The name of a limit is used as a unique identifier for this limit.
3726 * Therefore, once a limit has been put into use, its name should be 3682 /// Therefore, once a limit has been put into use, its name should be
3727 * immutable. You can use the display_name field to provide a user-friendly 3683 /// immutable. You can use the display_name field to provide a user-friendly
3728 * name for the limit. The display name can be evolved over time without 3684 /// name for the limit. The display name can be evolved over time without
3729 * affecting the identity of the limit. 3685 /// affecting the identity of the limit.
3730 */
3731 core.String name; 3686 core.String name;
3732 /** 3687
3733 * Specify the unit of the quota limit. It uses the same syntax as 3688 /// Specify the unit of the quota limit. It uses the same syntax as
3734 * Metric.unit. The supported unit kinds are determined by the quota 3689 /// Metric.unit. The supported unit kinds are determined by the quota
3735 * backend system. 3690 /// backend system.
3736 * 3691 ///
3737 * The [Google Service Control](https://cloud.google.com/service-control) 3692 /// The [Google Service Control](https://cloud.google.com/service-control)
3738 * supports the following unit components: 3693 /// supports the following unit components:
3739 * * One of the time intevals: 3694 /// * One of the time intevals:
3740 * * "/min" for quota every minute. 3695 /// * "/min" for quota every minute.
3741 * * "/d" for quota every 24 hours, starting 00:00 US Pacific Time. 3696 /// * "/d" for quota every 24 hours, starting 00:00 US Pacific Time.
3742 * * Otherwise the quota won't be reset by time, such as storage limit. 3697 /// * Otherwise the quota won't be reset by time, such as storage limit.
3743 * * One and only one of the granted containers: 3698 /// * One and only one of the granted containers:
3744 * * "/{project}" quota for a project 3699 /// * "/{project}" quota for a project
3745 * 3700 ///
3746 * Here are some examples: 3701 /// Here are some examples:
3747 * * "1/min/{project}" for quota per minute per project. 3702 /// * "1/min/{project}" for quota per minute per project.
3748 * 3703 ///
3749 * Note: the order of unit components is insignificant. 3704 /// Note: the order of unit components is insignificant.
3750 * The "1" at the beginning is required to follow the metric unit syntax. 3705 /// The "1" at the beginning is required to follow the metric unit syntax.
3751 * 3706 ///
3752 * Used by metric-based quotas only. 3707 /// Used by metric-based quotas only.
3753 */
3754 core.String unit; 3708 core.String unit;
3755 /** Tiered limit values, currently only STANDARD is supported. */ 3709
3710 /// Tiered limit values, currently only STANDARD is supported.
3756 core.Map<core.String, core.String> values; 3711 core.Map<core.String, core.String> values;
3757 3712
3758 QuotaLimit(); 3713 QuotaLimit();
3759 3714
3760 QuotaLimit.fromJson(core.Map _json) { 3715 QuotaLimit.fromJson(core.Map _json) {
3761 if (_json.containsKey("defaultLimit")) { 3716 if (_json.containsKey("defaultLimit")) {
3762 defaultLimit = _json["defaultLimit"]; 3717 defaultLimit = _json["defaultLimit"];
3763 } 3718 }
3764 if (_json.containsKey("description")) { 3719 if (_json.containsKey("description")) {
3765 description = _json["description"]; 3720 description = _json["description"];
(...skipping 18 matching lines...) Expand all
3784 } 3739 }
3785 if (_json.containsKey("unit")) { 3740 if (_json.containsKey("unit")) {
3786 unit = _json["unit"]; 3741 unit = _json["unit"];
3787 } 3742 }
3788 if (_json.containsKey("values")) { 3743 if (_json.containsKey("values")) {
3789 values = _json["values"]; 3744 values = _json["values"];
3790 } 3745 }
3791 } 3746 }
3792 3747
3793 core.Map<core.String, core.Object> toJson() { 3748 core.Map<core.String, core.Object> toJson() {
3794 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3749 final core.Map<core.String, core.Object> _json =
3750 new core.Map<core.String, core.Object>();
3795 if (defaultLimit != null) { 3751 if (defaultLimit != null) {
3796 _json["defaultLimit"] = defaultLimit; 3752 _json["defaultLimit"] = defaultLimit;
3797 } 3753 }
3798 if (description != null) { 3754 if (description != null) {
3799 _json["description"] = description; 3755 _json["description"] = description;
3800 } 3756 }
3801 if (displayName != null) { 3757 if (displayName != null) {
3802 _json["displayName"] = displayName; 3758 _json["displayName"] = displayName;
3803 } 3759 }
3804 if (duration != null) { 3760 if (duration != null) {
(...skipping 14 matching lines...) Expand all
3819 if (unit != null) { 3775 if (unit != null) {
3820 _json["unit"] = unit; 3776 _json["unit"] = unit;
3821 } 3777 }
3822 if (values != null) { 3778 if (values != null) {
3823 _json["values"] = values; 3779 _json["values"] = values;
3824 } 3780 }
3825 return _json; 3781 return _json;
3826 } 3782 }
3827 } 3783 }
3828 3784
3829 /** Response message for SearchServices method. */ 3785 /// Response message for SearchServices method.
3830 class SearchServicesResponse { 3786 class SearchServicesResponse {
3831 /** 3787 /// Token that can be passed to `ListAvailableServices` to resume a paginated
3832 * Token that can be passed to `ListAvailableServices` to resume a paginated 3788 /// query.
3833 * query.
3834 */
3835 core.String nextPageToken; 3789 core.String nextPageToken;
3836 /** Services available publicly or available to the authenticated caller. */ 3790
3791 /// Services available publicly or available to the authenticated caller.
3837 core.List<PublishedService> services; 3792 core.List<PublishedService> services;
3838 3793
3839 SearchServicesResponse(); 3794 SearchServicesResponse();
3840 3795
3841 SearchServicesResponse.fromJson(core.Map _json) { 3796 SearchServicesResponse.fromJson(core.Map _json) {
3842 if (_json.containsKey("nextPageToken")) { 3797 if (_json.containsKey("nextPageToken")) {
3843 nextPageToken = _json["nextPageToken"]; 3798 nextPageToken = _json["nextPageToken"];
3844 } 3799 }
3845 if (_json.containsKey("services")) { 3800 if (_json.containsKey("services")) {
3846 services = _json["services"].map((value) => new PublishedService.fromJson( value)).toList(); 3801 services = _json["services"]
3802 .map((value) => new PublishedService.fromJson(value))
3803 .toList();
3847 } 3804 }
3848 } 3805 }
3849 3806
3850 core.Map<core.String, core.Object> toJson() { 3807 core.Map<core.String, core.Object> toJson() {
3851 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3808 final core.Map<core.String, core.Object> _json =
3809 new core.Map<core.String, core.Object>();
3852 if (nextPageToken != null) { 3810 if (nextPageToken != null) {
3853 _json["nextPageToken"] = nextPageToken; 3811 _json["nextPageToken"] = nextPageToken;
3854 } 3812 }
3855 if (services != null) { 3813 if (services != null) {
3856 _json["services"] = services.map((value) => (value).toJson()).toList(); 3814 _json["services"] = services.map((value) => (value).toJson()).toList();
3857 } 3815 }
3858 return _json; 3816 return _json;
3859 } 3817 }
3860 } 3818 }
3861 3819
3862 /** 3820 /// `Service` is the root object of Google service configuration schema. It
3863 * `Service` is the root object of Google service configuration schema. It 3821 /// describes basic information about a service, such as the name and the
3864 * describes basic information about a service, such as the name and the 3822 /// title, and delegates other aspects to sub-sections. Each sub-section is
3865 * title, and delegates other aspects to sub-sections. Each sub-section is 3823 /// either a proto message or a repeated proto message that configures a
3866 * either a proto message or a repeated proto message that configures a 3824 /// specific aspect, such as auth. See each proto message definition for
3867 * specific aspect, such as auth. See each proto message definition for details. 3825 /// details.
3868 * 3826 ///
3869 * Example: 3827 /// Example:
3870 * 3828 ///
3871 * type: google.api.Service 3829 /// type: google.api.Service
3872 * config_version: 3 3830 /// config_version: 3
3873 * name: calendar.googleapis.com 3831 /// name: calendar.googleapis.com
3874 * title: Google Calendar API 3832 /// title: Google Calendar API
3875 * apis: 3833 /// apis:
3876 * - name: google.calendar.v3.Calendar 3834 /// - name: google.calendar.v3.Calendar
3877 * authentication: 3835 /// authentication:
3878 * providers: 3836 /// providers:
3879 * - id: google_calendar_auth 3837 /// - id: google_calendar_auth
3880 * jwks_uri: https://www.googleapis.com/oauth2/v1/certs 3838 /// jwks_uri: https://www.googleapis.com/oauth2/v1/certs
3881 * issuer: https://securetoken.google.com 3839 /// issuer: https://securetoken.google.com
3882 * rules: 3840 /// rules:
3883 * - selector: "*" 3841 /// - selector: "*"
3884 * requirements: 3842 /// requirements:
3885 * provider_id: google_calendar_auth 3843 /// provider_id: google_calendar_auth
3886 */
3887 class Service { 3844 class Service {
3888 /** 3845 /// A list of API interfaces exported by this service. Only the `name` field
3889 * A list of API interfaces exported by this service. Only the `name` field 3846 /// of the google.protobuf.Api needs to be provided by the configuration
3890 * of the google.protobuf.Api needs to be provided by the configuration 3847 /// author, as the remaining fields will be derived from the IDL during the
3891 * author, as the remaining fields will be derived from the IDL during the 3848 /// normalization process. It is an error to specify an API interface here
3892 * normalization process. It is an error to specify an API interface here 3849 /// which cannot be resolved against the associated IDL files.
3893 * which cannot be resolved against the associated IDL files.
3894 */
3895 core.List<Api> apis; 3850 core.List<Api> apis;
3896 /** Auth configuration. */ 3851
3852 /// Auth configuration.
3897 Authentication authentication; 3853 Authentication authentication;
3898 /** API backend configuration. */ 3854
3855 /// API backend configuration.
3899 Backend backend; 3856 Backend backend;
3900 /** 3857
3901 * The semantic version of the service configuration. The config version 3858 /// The semantic version of the service configuration. The config version
3902 * affects the interpretation of the service configuration. For example, 3859 /// affects the interpretation of the service configuration. For example,
3903 * certain features are enabled by default for certain config versions. 3860 /// certain features are enabled by default for certain config versions.
3904 * The latest config version is `3`. 3861 /// The latest config version is `3`.
3905 */
3906 core.int configVersion; 3862 core.int configVersion;
3907 /** Context configuration. */ 3863
3864 /// Context configuration.
3908 Context context; 3865 Context context;
3909 /** Configuration for the service control plane. */ 3866
3867 /// Configuration for the service control plane.
3910 Control control; 3868 Control control;
3911 /** Custom error configuration. */ 3869
3870 /// Custom error configuration.
3912 CustomError customError; 3871 CustomError customError;
3913 /** Additional API documentation. */ 3872
3873 /// Additional API documentation.
3914 Documentation documentation; 3874 Documentation documentation;
3915 /** 3875
3916 * Configuration for network endpoints. If this is empty, then an endpoint 3876 /// Configuration for network endpoints. If this is empty, then an endpoint
3917 * with the same name as the service is automatically generated to service all 3877 /// with the same name as the service is automatically generated to service
3918 * defined APIs. 3878 /// all
3919 */ 3879 /// defined APIs.
3920 core.List<Endpoint> endpoints; 3880 core.List<Endpoint> endpoints;
3921 /** 3881
3922 * A list of all enum types included in this API service. Enums 3882 /// A list of all enum types included in this API service. Enums
3923 * referenced directly or indirectly by the `apis` are automatically 3883 /// referenced directly or indirectly by the `apis` are automatically
3924 * included. Enums which are not referenced but shall be included 3884 /// included. Enums which are not referenced but shall be included
3925 * should be listed here by name. Example: 3885 /// should be listed here by name. Example:
3926 * 3886 ///
3927 * enums: 3887 /// enums:
3928 * - name: google.someapi.v1.SomeEnum 3888 /// - name: google.someapi.v1.SomeEnum
3929 */
3930 core.List<Enum> enums; 3889 core.List<Enum> enums;
3931 /** Experimental configuration. */ 3890
3891 /// Experimental configuration.
3932 Experimental experimental; 3892 Experimental experimental;
3933 /** HTTP configuration. */ 3893
3894 /// HTTP configuration.
3934 Http http; 3895 Http http;
3935 /** 3896
3936 * A unique ID for a specific instance of this message, typically assigned 3897 /// A unique ID for a specific instance of this message, typically assigned
3937 * by the client for tracking purpose. If empty, the server may choose to 3898 /// by the client for tracking purpose. If empty, the server may choose to
3938 * generate one instead. 3899 /// generate one instead.
3939 */
3940 core.String id; 3900 core.String id;
3941 /** Logging configuration. */ 3901
3902 /// Logging configuration.
3942 Logging logging; 3903 Logging logging;
3943 /** Defines the logs used by this service. */ 3904
3905 /// Defines the logs used by this service.
3944 core.List<LogDescriptor> logs; 3906 core.List<LogDescriptor> logs;
3945 /** Defines the metrics used by this service. */ 3907
3908 /// Defines the metrics used by this service.
3946 core.List<MetricDescriptor> metrics; 3909 core.List<MetricDescriptor> metrics;
3947 /** 3910
3948 * Defines the monitored resources used by this service. This is required 3911 /// Defines the monitored resources used by this service. This is required
3949 * by the Service.monitoring and Service.logging configurations. 3912 /// by the Service.monitoring and Service.logging configurations.
3950 */
3951 core.List<MonitoredResourceDescriptor> monitoredResources; 3913 core.List<MonitoredResourceDescriptor> monitoredResources;
3952 /** Monitoring configuration. */ 3914
3915 /// Monitoring configuration.
3953 Monitoring monitoring; 3916 Monitoring monitoring;
3954 /** 3917
3955 * The DNS address at which this service is available, 3918 /// The DNS address at which this service is available,
3956 * e.g. `calendar.googleapis.com`. 3919 /// e.g. `calendar.googleapis.com`.
3957 */
3958 core.String name; 3920 core.String name;
3959 /** The Google project that owns this service. */ 3921
3922 /// The Google project that owns this service.
3960 core.String producerProjectId; 3923 core.String producerProjectId;
3961 /** Quota configuration. */ 3924
3925 /// Quota configuration.
3962 Quota quota; 3926 Quota quota;
3963 /** 3927
3964 * Output only. The source information for this configuration if available. 3928 /// Output only. The source information for this configuration if available.
3965 */
3966 SourceInfo sourceInfo; 3929 SourceInfo sourceInfo;
3967 /** System parameter configuration. */ 3930
3931 /// System parameter configuration.
3968 SystemParameters systemParameters; 3932 SystemParameters systemParameters;
3969 /** 3933
3970 * A list of all proto message types included in this API service. 3934 /// A list of all proto message types included in this API service.
3971 * It serves similar purpose as [google.api.Service.types], except that 3935 /// It serves similar purpose as [google.api.Service.types], except that
3972 * these types are not needed by user-defined APIs. Therefore, they will not 3936 /// these types are not needed by user-defined APIs. Therefore, they will not
3973 * show up in the generated discovery doc. This field should only be used 3937 /// show up in the generated discovery doc. This field should only be used
3974 * to define system APIs in ESF. 3938 /// to define system APIs in ESF.
3975 */
3976 core.List<Type> systemTypes; 3939 core.List<Type> systemTypes;
3977 /** The product title for this service. */ 3940
3941 /// The product title for this service.
3978 core.String title; 3942 core.String title;
3979 /** 3943
3980 * A list of all proto message types included in this API service. 3944 /// A list of all proto message types included in this API service.
3981 * Types referenced directly or indirectly by the `apis` are 3945 /// Types referenced directly or indirectly by the `apis` are
3982 * automatically included. Messages which are not referenced but 3946 /// automatically included. Messages which are not referenced but
3983 * shall be included, such as types used by the `google.protobuf.Any` type, 3947 /// shall be included, such as types used by the `google.protobuf.Any` type,
3984 * should be listed here by name. Example: 3948 /// should be listed here by name. Example:
3985 * 3949 ///
3986 * types: 3950 /// types:
3987 * - name: google.protobuf.Int32 3951 /// - name: google.protobuf.Int32
3988 */
3989 core.List<Type> types; 3952 core.List<Type> types;
3990 /** Configuration controlling usage of this service. */ 3953
3954 /// Configuration controlling usage of this service.
3991 Usage usage; 3955 Usage usage;
3992 /** API visibility configuration. */ 3956
3957 /// API visibility configuration.
3993 Visibility visibility; 3958 Visibility visibility;
3994 3959
3995 Service(); 3960 Service();
3996 3961
3997 Service.fromJson(core.Map _json) { 3962 Service.fromJson(core.Map _json) {
3998 if (_json.containsKey("apis")) { 3963 if (_json.containsKey("apis")) {
3999 apis = _json["apis"].map((value) => new Api.fromJson(value)).toList(); 3964 apis = _json["apis"].map((value) => new Api.fromJson(value)).toList();
4000 } 3965 }
4001 if (_json.containsKey("authentication")) { 3966 if (_json.containsKey("authentication")) {
4002 authentication = new Authentication.fromJson(_json["authentication"]); 3967 authentication = new Authentication.fromJson(_json["authentication"]);
(...skipping 10 matching lines...) Expand all
4013 if (_json.containsKey("control")) { 3978 if (_json.containsKey("control")) {
4014 control = new Control.fromJson(_json["control"]); 3979 control = new Control.fromJson(_json["control"]);
4015 } 3980 }
4016 if (_json.containsKey("customError")) { 3981 if (_json.containsKey("customError")) {
4017 customError = new CustomError.fromJson(_json["customError"]); 3982 customError = new CustomError.fromJson(_json["customError"]);
4018 } 3983 }
4019 if (_json.containsKey("documentation")) { 3984 if (_json.containsKey("documentation")) {
4020 documentation = new Documentation.fromJson(_json["documentation"]); 3985 documentation = new Documentation.fromJson(_json["documentation"]);
4021 } 3986 }
4022 if (_json.containsKey("endpoints")) { 3987 if (_json.containsKey("endpoints")) {
4023 endpoints = _json["endpoints"].map((value) => new Endpoint.fromJson(value) ).toList(); 3988 endpoints = _json["endpoints"]
3989 .map((value) => new Endpoint.fromJson(value))
3990 .toList();
4024 } 3991 }
4025 if (_json.containsKey("enums")) { 3992 if (_json.containsKey("enums")) {
4026 enums = _json["enums"].map((value) => new Enum.fromJson(value)).toList(); 3993 enums = _json["enums"].map((value) => new Enum.fromJson(value)).toList();
4027 } 3994 }
4028 if (_json.containsKey("experimental")) { 3995 if (_json.containsKey("experimental")) {
4029 experimental = new Experimental.fromJson(_json["experimental"]); 3996 experimental = new Experimental.fromJson(_json["experimental"]);
4030 } 3997 }
4031 if (_json.containsKey("http")) { 3998 if (_json.containsKey("http")) {
4032 http = new Http.fromJson(_json["http"]); 3999 http = new Http.fromJson(_json["http"]);
4033 } 4000 }
4034 if (_json.containsKey("id")) { 4001 if (_json.containsKey("id")) {
4035 id = _json["id"]; 4002 id = _json["id"];
4036 } 4003 }
4037 if (_json.containsKey("logging")) { 4004 if (_json.containsKey("logging")) {
4038 logging = new Logging.fromJson(_json["logging"]); 4005 logging = new Logging.fromJson(_json["logging"]);
4039 } 4006 }
4040 if (_json.containsKey("logs")) { 4007 if (_json.containsKey("logs")) {
4041 logs = _json["logs"].map((value) => new LogDescriptor.fromJson(value)).toL ist(); 4008 logs = _json["logs"]
4009 .map((value) => new LogDescriptor.fromJson(value))
4010 .toList();
4042 } 4011 }
4043 if (_json.containsKey("metrics")) { 4012 if (_json.containsKey("metrics")) {
4044 metrics = _json["metrics"].map((value) => new MetricDescriptor.fromJson(va lue)).toList(); 4013 metrics = _json["metrics"]
4014 .map((value) => new MetricDescriptor.fromJson(value))
4015 .toList();
4045 } 4016 }
4046 if (_json.containsKey("monitoredResources")) { 4017 if (_json.containsKey("monitoredResources")) {
4047 monitoredResources = _json["monitoredResources"].map((value) => new Monito redResourceDescriptor.fromJson(value)).toList(); 4018 monitoredResources = _json["monitoredResources"]
4019 .map((value) => new MonitoredResourceDescriptor.fromJson(value))
4020 .toList();
4048 } 4021 }
4049 if (_json.containsKey("monitoring")) { 4022 if (_json.containsKey("monitoring")) {
4050 monitoring = new Monitoring.fromJson(_json["monitoring"]); 4023 monitoring = new Monitoring.fromJson(_json["monitoring"]);
4051 } 4024 }
4052 if (_json.containsKey("name")) { 4025 if (_json.containsKey("name")) {
4053 name = _json["name"]; 4026 name = _json["name"];
4054 } 4027 }
4055 if (_json.containsKey("producerProjectId")) { 4028 if (_json.containsKey("producerProjectId")) {
4056 producerProjectId = _json["producerProjectId"]; 4029 producerProjectId = _json["producerProjectId"];
4057 } 4030 }
4058 if (_json.containsKey("quota")) { 4031 if (_json.containsKey("quota")) {
4059 quota = new Quota.fromJson(_json["quota"]); 4032 quota = new Quota.fromJson(_json["quota"]);
4060 } 4033 }
4061 if (_json.containsKey("sourceInfo")) { 4034 if (_json.containsKey("sourceInfo")) {
4062 sourceInfo = new SourceInfo.fromJson(_json["sourceInfo"]); 4035 sourceInfo = new SourceInfo.fromJson(_json["sourceInfo"]);
4063 } 4036 }
4064 if (_json.containsKey("systemParameters")) { 4037 if (_json.containsKey("systemParameters")) {
4065 systemParameters = new SystemParameters.fromJson(_json["systemParameters"] ); 4038 systemParameters =
4039 new SystemParameters.fromJson(_json["systemParameters"]);
4066 } 4040 }
4067 if (_json.containsKey("systemTypes")) { 4041 if (_json.containsKey("systemTypes")) {
4068 systemTypes = _json["systemTypes"].map((value) => new Type.fromJson(value) ).toList(); 4042 systemTypes = _json["systemTypes"]
4043 .map((value) => new Type.fromJson(value))
4044 .toList();
4069 } 4045 }
4070 if (_json.containsKey("title")) { 4046 if (_json.containsKey("title")) {
4071 title = _json["title"]; 4047 title = _json["title"];
4072 } 4048 }
4073 if (_json.containsKey("types")) { 4049 if (_json.containsKey("types")) {
4074 types = _json["types"].map((value) => new Type.fromJson(value)).toList(); 4050 types = _json["types"].map((value) => new Type.fromJson(value)).toList();
4075 } 4051 }
4076 if (_json.containsKey("usage")) { 4052 if (_json.containsKey("usage")) {
4077 usage = new Usage.fromJson(_json["usage"]); 4053 usage = new Usage.fromJson(_json["usage"]);
4078 } 4054 }
4079 if (_json.containsKey("visibility")) { 4055 if (_json.containsKey("visibility")) {
4080 visibility = new Visibility.fromJson(_json["visibility"]); 4056 visibility = new Visibility.fromJson(_json["visibility"]);
4081 } 4057 }
4082 } 4058 }
4083 4059
4084 core.Map<core.String, core.Object> toJson() { 4060 core.Map<core.String, core.Object> toJson() {
4085 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4061 final core.Map<core.String, core.Object> _json =
4062 new core.Map<core.String, core.Object>();
4086 if (apis != null) { 4063 if (apis != null) {
4087 _json["apis"] = apis.map((value) => (value).toJson()).toList(); 4064 _json["apis"] = apis.map((value) => (value).toJson()).toList();
4088 } 4065 }
4089 if (authentication != null) { 4066 if (authentication != null) {
4090 _json["authentication"] = (authentication).toJson(); 4067 _json["authentication"] = (authentication).toJson();
4091 } 4068 }
4092 if (backend != null) { 4069 if (backend != null) {
4093 _json["backend"] = (backend).toJson(); 4070 _json["backend"] = (backend).toJson();
4094 } 4071 }
4095 if (configVersion != null) { 4072 if (configVersion != null) {
(...skipping 29 matching lines...) Expand all
4125 if (logging != null) { 4102 if (logging != null) {
4126 _json["logging"] = (logging).toJson(); 4103 _json["logging"] = (logging).toJson();
4127 } 4104 }
4128 if (logs != null) { 4105 if (logs != null) {
4129 _json["logs"] = logs.map((value) => (value).toJson()).toList(); 4106 _json["logs"] = logs.map((value) => (value).toJson()).toList();
4130 } 4107 }
4131 if (metrics != null) { 4108 if (metrics != null) {
4132 _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); 4109 _json["metrics"] = metrics.map((value) => (value).toJson()).toList();
4133 } 4110 }
4134 if (monitoredResources != null) { 4111 if (monitoredResources != null) {
4135 _json["monitoredResources"] = monitoredResources.map((value) => (value).to Json()).toList(); 4112 _json["monitoredResources"] =
4113 monitoredResources.map((value) => (value).toJson()).toList();
4136 } 4114 }
4137 if (monitoring != null) { 4115 if (monitoring != null) {
4138 _json["monitoring"] = (monitoring).toJson(); 4116 _json["monitoring"] = (monitoring).toJson();
4139 } 4117 }
4140 if (name != null) { 4118 if (name != null) {
4141 _json["name"] = name; 4119 _json["name"] = name;
4142 } 4120 }
4143 if (producerProjectId != null) { 4121 if (producerProjectId != null) {
4144 _json["producerProjectId"] = producerProjectId; 4122 _json["producerProjectId"] = producerProjectId;
4145 } 4123 }
4146 if (quota != null) { 4124 if (quota != null) {
4147 _json["quota"] = (quota).toJson(); 4125 _json["quota"] = (quota).toJson();
4148 } 4126 }
4149 if (sourceInfo != null) { 4127 if (sourceInfo != null) {
4150 _json["sourceInfo"] = (sourceInfo).toJson(); 4128 _json["sourceInfo"] = (sourceInfo).toJson();
4151 } 4129 }
4152 if (systemParameters != null) { 4130 if (systemParameters != null) {
4153 _json["systemParameters"] = (systemParameters).toJson(); 4131 _json["systemParameters"] = (systemParameters).toJson();
4154 } 4132 }
4155 if (systemTypes != null) { 4133 if (systemTypes != null) {
4156 _json["systemTypes"] = systemTypes.map((value) => (value).toJson()).toList (); 4134 _json["systemTypes"] =
4135 systemTypes.map((value) => (value).toJson()).toList();
4157 } 4136 }
4158 if (title != null) { 4137 if (title != null) {
4159 _json["title"] = title; 4138 _json["title"] = title;
4160 } 4139 }
4161 if (types != null) { 4140 if (types != null) {
4162 _json["types"] = types.map((value) => (value).toJson()).toList(); 4141 _json["types"] = types.map((value) => (value).toJson()).toList();
4163 } 4142 }
4164 if (usage != null) { 4143 if (usage != null) {
4165 _json["usage"] = (usage).toJson(); 4144 _json["usage"] = (usage).toJson();
4166 } 4145 }
4167 if (visibility != null) { 4146 if (visibility != null) {
4168 _json["visibility"] = (visibility).toJson(); 4147 _json["visibility"] = (visibility).toJson();
4169 } 4148 }
4170 return _json; 4149 return _json;
4171 } 4150 }
4172 } 4151 }
4173 4152
4174 /** 4153 /// `SourceContext` represents information about the source of a
4175 * `SourceContext` represents information about the source of a 4154 /// protobuf element, like the file in which it is defined.
4176 * protobuf element, like the file in which it is defined.
4177 */
4178 class SourceContext { 4155 class SourceContext {
4179 /** 4156 /// The path-qualified name of the .proto file that contained the associated
4180 * The path-qualified name of the .proto file that contained the associated 4157 /// protobuf element. For example: `"google/protobuf/source_context.proto"`.
4181 * protobuf element. For example: `"google/protobuf/source_context.proto"`.
4182 */
4183 core.String fileName; 4158 core.String fileName;
4184 4159
4185 SourceContext(); 4160 SourceContext();
4186 4161
4187 SourceContext.fromJson(core.Map _json) { 4162 SourceContext.fromJson(core.Map _json) {
4188 if (_json.containsKey("fileName")) { 4163 if (_json.containsKey("fileName")) {
4189 fileName = _json["fileName"]; 4164 fileName = _json["fileName"];
4190 } 4165 }
4191 } 4166 }
4192 4167
4193 core.Map<core.String, core.Object> toJson() { 4168 core.Map<core.String, core.Object> toJson() {
4194 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4169 final core.Map<core.String, core.Object> _json =
4170 new core.Map<core.String, core.Object>();
4195 if (fileName != null) { 4171 if (fileName != null) {
4196 _json["fileName"] = fileName; 4172 _json["fileName"] = fileName;
4197 } 4173 }
4198 return _json; 4174 return _json;
4199 } 4175 }
4200 } 4176 }
4201 4177
4202 /** Source information used to create a Service Config */ 4178 /// Source information used to create a Service Config
4203 class SourceInfo { 4179 class SourceInfo {
4204 /** 4180 /// All files used during config generation.
4205 * All files used during config generation. 4181 ///
4206 * 4182 /// The values for Object must be JSON objects. It can consist of `num`,
4207 * The values for Object must be JSON objects. It can consist of `num`, 4183 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4208 * `String`, `bool` and `null` as well as `Map` and `List` values.
4209 */
4210 core.List<core.Map<core.String, core.Object>> sourceFiles; 4184 core.List<core.Map<core.String, core.Object>> sourceFiles;
4211 4185
4212 SourceInfo(); 4186 SourceInfo();
4213 4187
4214 SourceInfo.fromJson(core.Map _json) { 4188 SourceInfo.fromJson(core.Map _json) {
4215 if (_json.containsKey("sourceFiles")) { 4189 if (_json.containsKey("sourceFiles")) {
4216 sourceFiles = _json["sourceFiles"]; 4190 sourceFiles = _json["sourceFiles"];
4217 } 4191 }
4218 } 4192 }
4219 4193
4220 core.Map<core.String, core.Object> toJson() { 4194 core.Map<core.String, core.Object> toJson() {
4221 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4195 final core.Map<core.String, core.Object> _json =
4196 new core.Map<core.String, core.Object>();
4222 if (sourceFiles != null) { 4197 if (sourceFiles != null) {
4223 _json["sourceFiles"] = sourceFiles; 4198 _json["sourceFiles"] = sourceFiles;
4224 } 4199 }
4225 return _json; 4200 return _json;
4226 } 4201 }
4227 } 4202 }
4228 4203
4229 /** 4204 /// The `Status` type defines a logical error model that is suitable for
4230 * The `Status` type defines a logical error model that is suitable for 4205 /// different
4231 * different 4206 /// programming environments, including REST APIs and RPC APIs. It is used by
4232 * programming environments, including REST APIs and RPC APIs. It is used by 4207 /// [gRPC](https://github.com/grpc). The error model is designed to be:
4233 * [gRPC](https://github.com/grpc). The error model is designed to be: 4208 ///
4234 * 4209 /// - Simple to use and understand for most users
4235 * - Simple to use and understand for most users 4210 /// - Flexible enough to meet unexpected needs
4236 * - Flexible enough to meet unexpected needs 4211 ///
4237 * 4212 /// # Overview
4238 * # Overview 4213 ///
4239 * 4214 /// The `Status` message contains three pieces of data: error code, error
4240 * The `Status` message contains three pieces of data: error code, error 4215 /// message,
4241 * message, 4216 /// and error details. The error code should be an enum value of
4242 * and error details. The error code should be an enum value of 4217 /// google.rpc.Code, but it may accept additional error codes if needed. The
4243 * google.rpc.Code, but it may accept additional error codes if needed. The 4218 /// error message should be a developer-facing English message that helps
4244 * error message should be a developer-facing English message that helps 4219 /// developers *understand* and *resolve* the error. If a localized user-facing
4245 * developers *understand* and *resolve* the error. If a localized user-facing 4220 /// error message is needed, put the localized message in the error details or
4246 * error message is needed, put the localized message in the error details or 4221 /// localize it in the client. The optional error details may contain arbitrary
4247 * localize it in the client. The optional error details may contain arbitrary 4222 /// information about the error. There is a predefined set of error detail
4248 * information about the error. There is a predefined set of error detail types 4223 /// types
4249 * in the package `google.rpc` that can be used for common error conditions. 4224 /// in the package `google.rpc` that can be used for common error conditions.
4250 * 4225 ///
4251 * # Language mapping 4226 /// # Language mapping
4252 * 4227 ///
4253 * The `Status` message is the logical representation of the error model, but it 4228 /// The `Status` message is the logical representation of the error model, but
4254 * is not necessarily the actual wire format. When the `Status` message is 4229 /// it
4255 * exposed in different client libraries and different wire protocols, it can be 4230 /// is not necessarily the actual wire format. When the `Status` message is
4256 * mapped differently. For example, it will likely be mapped to some exceptions 4231 /// exposed in different client libraries and different wire protocols, it can
4257 * in Java, but more likely mapped to some error codes in C. 4232 /// be
4258 * 4233 /// mapped differently. For example, it will likely be mapped to some
4259 * # Other uses 4234 /// exceptions
4260 * 4235 /// in Java, but more likely mapped to some error codes in C.
4261 * The error model and the `Status` message can be used in a variety of 4236 ///
4262 * environments, either with or without APIs, to provide a 4237 /// # Other uses
4263 * consistent developer experience across different environments. 4238 ///
4264 * 4239 /// The error model and the `Status` message can be used in a variety of
4265 * Example uses of this error model include: 4240 /// environments, either with or without APIs, to provide a
4266 * 4241 /// consistent developer experience across different environments.
4267 * - Partial errors. If a service needs to return partial errors to the client, 4242 ///
4268 * it may embed the `Status` in the normal response to indicate the partial 4243 /// Example uses of this error model include:
4269 * errors. 4244 ///
4270 * 4245 /// - Partial errors. If a service needs to return partial errors to the
4271 * - Workflow errors. A typical workflow has multiple steps. Each step may 4246 /// client,
4272 * have a `Status` message for error reporting. 4247 /// it may embed the `Status` in the normal response to indicate the partial
4273 * 4248 /// errors.
4274 * - Batch operations. If a client uses batch request and batch response, the 4249 ///
4275 * `Status` message should be used directly inside batch response, one for 4250 /// - Workflow errors. A typical workflow has multiple steps. Each step may
4276 * each error sub-response. 4251 /// have a `Status` message for error reporting.
4277 * 4252 ///
4278 * - Asynchronous operations. If an API call embeds asynchronous operation 4253 /// - Batch operations. If a client uses batch request and batch response, the
4279 * results in its response, the status of those operations should be 4254 /// `Status` message should be used directly inside batch response, one for
4280 * represented directly using the `Status` message. 4255 /// each error sub-response.
4281 * 4256 ///
4282 * - Logging. If some API errors are stored in logs, the message `Status` could 4257 /// - Asynchronous operations. If an API call embeds asynchronous operation
4283 * be used directly after any stripping needed for security/privacy reasons. 4258 /// results in its response, the status of those operations should be
4284 */ 4259 /// represented directly using the `Status` message.
4260 ///
4261 /// - Logging. If some API errors are stored in logs, the message `Status`
4262 /// could
4263 /// be used directly after any stripping needed for security/privacy reasons.
4285 class Status { 4264 class Status {
4286 /** The status code, which should be an enum value of google.rpc.Code. */ 4265 /// The status code, which should be an enum value of google.rpc.Code.
4287 core.int code; 4266 core.int code;
4288 /** 4267
4289 * A list of messages that carry the error details. There is a common set of 4268 /// A list of messages that carry the error details. There is a common set
4290 * message types for APIs to use. 4269 /// of
4291 * 4270 /// message types for APIs to use.
4292 * The values for Object must be JSON objects. It can consist of `num`, 4271 ///
4293 * `String`, `bool` and `null` as well as `Map` and `List` values. 4272 /// The values for Object must be JSON objects. It can consist of `num`,
4294 */ 4273 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4295 core.List<core.Map<core.String, core.Object>> details; 4274 core.List<core.Map<core.String, core.Object>> details;
4296 /** 4275
4297 * A developer-facing error message, which should be in English. Any 4276 /// A developer-facing error message, which should be in English. Any
4298 * user-facing error message should be localized and sent in the 4277 /// user-facing error message should be localized and sent in the
4299 * google.rpc.Status.details field, or localized by the client. 4278 /// google.rpc.Status.details field, or localized by the client.
4300 */
4301 core.String message; 4279 core.String message;
4302 4280
4303 Status(); 4281 Status();
4304 4282
4305 Status.fromJson(core.Map _json) { 4283 Status.fromJson(core.Map _json) {
4306 if (_json.containsKey("code")) { 4284 if (_json.containsKey("code")) {
4307 code = _json["code"]; 4285 code = _json["code"];
4308 } 4286 }
4309 if (_json.containsKey("details")) { 4287 if (_json.containsKey("details")) {
4310 details = _json["details"]; 4288 details = _json["details"];
4311 } 4289 }
4312 if (_json.containsKey("message")) { 4290 if (_json.containsKey("message")) {
4313 message = _json["message"]; 4291 message = _json["message"];
4314 } 4292 }
4315 } 4293 }
4316 4294
4317 core.Map<core.String, core.Object> toJson() { 4295 core.Map<core.String, core.Object> toJson() {
4318 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4296 final core.Map<core.String, core.Object> _json =
4297 new core.Map<core.String, core.Object>();
4319 if (code != null) { 4298 if (code != null) {
4320 _json["code"] = code; 4299 _json["code"] = code;
4321 } 4300 }
4322 if (details != null) { 4301 if (details != null) {
4323 _json["details"] = details; 4302 _json["details"] = details;
4324 } 4303 }
4325 if (message != null) { 4304 if (message != null) {
4326 _json["message"] = message; 4305 _json["message"] = message;
4327 } 4306 }
4328 return _json; 4307 return _json;
4329 } 4308 }
4330 } 4309 }
4331 4310
4332 /** Represents the status of one operation step. */ 4311 /// Represents the status of one operation step.
4333 class Step { 4312 class Step {
4334 /** The short description of the step. */ 4313 /// The short description of the step.
4335 core.String description; 4314 core.String description;
4336 /** 4315
4337 * The status code. 4316 /// The status code.
4338 * Possible string values are: 4317 /// Possible string values are:
4339 * - "STATUS_UNSPECIFIED" : Unspecifed code. 4318 /// - "STATUS_UNSPECIFIED" : Unspecifed code.
4340 * - "DONE" : The operation or step has completed without errors. 4319 /// - "DONE" : The operation or step has completed without errors.
4341 * - "NOT_STARTED" : The operation or step has not started yet. 4320 /// - "NOT_STARTED" : The operation or step has not started yet.
4342 * - "IN_PROGRESS" : The operation or step is in progress. 4321 /// - "IN_PROGRESS" : The operation or step is in progress.
4343 * - "FAILED" : The operation or step has completed with errors. If the 4322 /// - "FAILED" : The operation or step has completed with errors. If the
4344 * operation is 4323 /// operation is
4345 * rollbackable, the rollback completed with errors too. 4324 /// rollbackable, the rollback completed with errors too.
4346 * - "CANCELLED" : The operation or step has completed with cancellation. 4325 /// - "CANCELLED" : The operation or step has completed with cancellation.
4347 */
4348 core.String status; 4326 core.String status;
4349 4327
4350 Step(); 4328 Step();
4351 4329
4352 Step.fromJson(core.Map _json) { 4330 Step.fromJson(core.Map _json) {
4353 if (_json.containsKey("description")) { 4331 if (_json.containsKey("description")) {
4354 description = _json["description"]; 4332 description = _json["description"];
4355 } 4333 }
4356 if (_json.containsKey("status")) { 4334 if (_json.containsKey("status")) {
4357 status = _json["status"]; 4335 status = _json["status"];
4358 } 4336 }
4359 } 4337 }
4360 4338
4361 core.Map<core.String, core.Object> toJson() { 4339 core.Map<core.String, core.Object> toJson() {
4362 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4340 final core.Map<core.String, core.Object> _json =
4341 new core.Map<core.String, core.Object>();
4363 if (description != null) { 4342 if (description != null) {
4364 _json["description"] = description; 4343 _json["description"] = description;
4365 } 4344 }
4366 if (status != null) { 4345 if (status != null) {
4367 _json["status"] = status; 4346 _json["status"] = status;
4368 } 4347 }
4369 return _json; 4348 return _json;
4370 } 4349 }
4371 } 4350 }
4372 4351
4373 /** 4352 /// Define a parameter's name and location. The parameter may be passed as
4374 * Define a parameter's name and location. The parameter may be passed as either 4353 /// either
4375 * an HTTP header or a URL query parameter, and if both are passed the behavior 4354 /// an HTTP header or a URL query parameter, and if both are passed the
4376 * is implementation-dependent. 4355 /// behavior
4377 */ 4356 /// is implementation-dependent.
4378 class SystemParameter { 4357 class SystemParameter {
4379 /** 4358 /// Define the HTTP header name to use for the parameter. It is case
4380 * Define the HTTP header name to use for the parameter. It is case 4359 /// insensitive.
4381 * insensitive.
4382 */
4383 core.String httpHeader; 4360 core.String httpHeader;
4384 /** 4361
4385 * Define the name of the parameter, such as "api_key" . It is case sensitive. 4362 /// Define the name of the parameter, such as "api_key" . It is case
4386 */ 4363 /// sensitive.
4387 core.String name; 4364 core.String name;
4388 /** 4365
4389 * Define the URL query parameter name to use for the parameter. It is case 4366 /// Define the URL query parameter name to use for the parameter. It is case
4390 * sensitive. 4367 /// sensitive.
4391 */
4392 core.String urlQueryParameter; 4368 core.String urlQueryParameter;
4393 4369
4394 SystemParameter(); 4370 SystemParameter();
4395 4371
4396 SystemParameter.fromJson(core.Map _json) { 4372 SystemParameter.fromJson(core.Map _json) {
4397 if (_json.containsKey("httpHeader")) { 4373 if (_json.containsKey("httpHeader")) {
4398 httpHeader = _json["httpHeader"]; 4374 httpHeader = _json["httpHeader"];
4399 } 4375 }
4400 if (_json.containsKey("name")) { 4376 if (_json.containsKey("name")) {
4401 name = _json["name"]; 4377 name = _json["name"];
4402 } 4378 }
4403 if (_json.containsKey("urlQueryParameter")) { 4379 if (_json.containsKey("urlQueryParameter")) {
4404 urlQueryParameter = _json["urlQueryParameter"]; 4380 urlQueryParameter = _json["urlQueryParameter"];
4405 } 4381 }
4406 } 4382 }
4407 4383
4408 core.Map<core.String, core.Object> toJson() { 4384 core.Map<core.String, core.Object> toJson() {
4409 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4385 final core.Map<core.String, core.Object> _json =
4386 new core.Map<core.String, core.Object>();
4410 if (httpHeader != null) { 4387 if (httpHeader != null) {
4411 _json["httpHeader"] = httpHeader; 4388 _json["httpHeader"] = httpHeader;
4412 } 4389 }
4413 if (name != null) { 4390 if (name != null) {
4414 _json["name"] = name; 4391 _json["name"] = name;
4415 } 4392 }
4416 if (urlQueryParameter != null) { 4393 if (urlQueryParameter != null) {
4417 _json["urlQueryParameter"] = urlQueryParameter; 4394 _json["urlQueryParameter"] = urlQueryParameter;
4418 } 4395 }
4419 return _json; 4396 return _json;
4420 } 4397 }
4421 } 4398 }
4422 4399
4423 /** 4400 /// Define a system parameter rule mapping system parameter definitions to
4424 * Define a system parameter rule mapping system parameter definitions to 4401 /// methods.
4425 * methods.
4426 */
4427 class SystemParameterRule { 4402 class SystemParameterRule {
4428 /** 4403 /// Define parameters. Multiple names may be defined for a parameter.
4429 * Define parameters. Multiple names may be defined for a parameter. 4404 /// For a given method call, only one of them should be used. If multiple
4430 * For a given method call, only one of them should be used. If multiple 4405 /// names are used the behavior is implementation-dependent.
4431 * names are used the behavior is implementation-dependent. 4406 /// If none of the specified names are present the behavior is
4432 * If none of the specified names are present the behavior is 4407 /// parameter-dependent.
4433 * parameter-dependent.
4434 */
4435 core.List<SystemParameter> parameters; 4408 core.List<SystemParameter> parameters;
4436 /** 4409
4437 * Selects the methods to which this rule applies. Use '*' to indicate all 4410 /// Selects the methods to which this rule applies. Use '*' to indicate all
4438 * methods in all APIs. 4411 /// methods in all APIs.
4439 * 4412 ///
4440 * Refer to selector for syntax details. 4413 /// Refer to selector for syntax details.
4441 */
4442 core.String selector; 4414 core.String selector;
4443 4415
4444 SystemParameterRule(); 4416 SystemParameterRule();
4445 4417
4446 SystemParameterRule.fromJson(core.Map _json) { 4418 SystemParameterRule.fromJson(core.Map _json) {
4447 if (_json.containsKey("parameters")) { 4419 if (_json.containsKey("parameters")) {
4448 parameters = _json["parameters"].map((value) => new SystemParameter.fromJs on(value)).toList(); 4420 parameters = _json["parameters"]
4421 .map((value) => new SystemParameter.fromJson(value))
4422 .toList();
4449 } 4423 }
4450 if (_json.containsKey("selector")) { 4424 if (_json.containsKey("selector")) {
4451 selector = _json["selector"]; 4425 selector = _json["selector"];
4452 } 4426 }
4453 } 4427 }
4454 4428
4455 core.Map<core.String, core.Object> toJson() { 4429 core.Map<core.String, core.Object> toJson() {
4456 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4430 final core.Map<core.String, core.Object> _json =
4431 new core.Map<core.String, core.Object>();
4457 if (parameters != null) { 4432 if (parameters != null) {
4458 _json["parameters"] = parameters.map((value) => (value).toJson()).toList() ; 4433 _json["parameters"] =
4434 parameters.map((value) => (value).toJson()).toList();
4459 } 4435 }
4460 if (selector != null) { 4436 if (selector != null) {
4461 _json["selector"] = selector; 4437 _json["selector"] = selector;
4462 } 4438 }
4463 return _json; 4439 return _json;
4464 } 4440 }
4465 } 4441 }
4466 4442
4467 /** 4443 /// ### System parameter configuration
4468 * ### System parameter configuration 4444 ///
4469 * 4445 /// A system parameter is a special kind of parameter defined by the API
4470 * A system parameter is a special kind of parameter defined by the API 4446 /// system, not by an individual API. It is typically mapped to an HTTP header
4471 * system, not by an individual API. It is typically mapped to an HTTP header 4447 /// and/or a URL query parameter. This configuration specifies which methods
4472 * and/or a URL query parameter. This configuration specifies which methods 4448 /// change the names of the system parameters.
4473 * change the names of the system parameters.
4474 */
4475 class SystemParameters { 4449 class SystemParameters {
4476 /** 4450 /// Define system parameters.
4477 * Define system parameters. 4451 ///
4478 * 4452 /// The parameters defined here will override the default parameters
4479 * The parameters defined here will override the default parameters 4453 /// implemented by the system. If this field is missing from the service
4480 * implemented by the system. If this field is missing from the service 4454 /// config, default system parameters will be used. Default system parameters
4481 * config, default system parameters will be used. Default system parameters 4455 /// and names is implementation-dependent.
4482 * and names is implementation-dependent. 4456 ///
4483 * 4457 /// Example: define api key for all methods
4484 * Example: define api key for all methods 4458 ///
4485 * 4459 /// system_parameters
4486 * system_parameters 4460 /// rules:
4487 * rules: 4461 /// - selector: "*"
4488 * - selector: "*" 4462 /// parameters:
4489 * parameters: 4463 /// - name: api_key
4490 * - name: api_key 4464 /// url_query_parameter: api_key
4491 * url_query_parameter: api_key 4465 ///
4492 * 4466 ///
4493 * 4467 /// Example: define 2 api key names for a specific method.
4494 * Example: define 2 api key names for a specific method. 4468 ///
4495 * 4469 /// system_parameters
4496 * system_parameters 4470 /// rules:
4497 * rules: 4471 /// - selector: "/ListShelves"
4498 * - selector: "/ListShelves" 4472 /// parameters:
4499 * parameters: 4473 /// - name: api_key
4500 * - name: api_key 4474 /// http_header: Api-Key1
4501 * http_header: Api-Key1 4475 /// - name: api_key
4502 * - name: api_key 4476 /// http_header: Api-Key2
4503 * http_header: Api-Key2 4477 ///
4504 * 4478 /// **NOTE:** All service configuration rules follow "last one wins" order.
4505 * **NOTE:** All service configuration rules follow "last one wins" order.
4506 */
4507 core.List<SystemParameterRule> rules; 4479 core.List<SystemParameterRule> rules;
4508 4480
4509 SystemParameters(); 4481 SystemParameters();
4510 4482
4511 SystemParameters.fromJson(core.Map _json) { 4483 SystemParameters.fromJson(core.Map _json) {
4512 if (_json.containsKey("rules")) { 4484 if (_json.containsKey("rules")) {
4513 rules = _json["rules"].map((value) => new SystemParameterRule.fromJson(val ue)).toList(); 4485 rules = _json["rules"]
4486 .map((value) => new SystemParameterRule.fromJson(value))
4487 .toList();
4514 } 4488 }
4515 } 4489 }
4516 4490
4517 core.Map<core.String, core.Object> toJson() { 4491 core.Map<core.String, core.Object> toJson() {
4518 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4492 final core.Map<core.String, core.Object> _json =
4493 new core.Map<core.String, core.Object>();
4519 if (rules != null) { 4494 if (rules != null) {
4520 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 4495 _json["rules"] = rules.map((value) => (value).toJson()).toList();
4521 } 4496 }
4522 return _json; 4497 return _json;
4523 } 4498 }
4524 } 4499 }
4525 4500
4526 /** A protocol buffer message type. */ 4501 /// A protocol buffer message type.
4527 class Type { 4502 class Type {
4528 /** The list of fields. */ 4503 /// The list of fields.
4529 core.List<Field> fields; 4504 core.List<Field> fields;
4530 /** The fully qualified message name. */ 4505
4506 /// The fully qualified message name.
4531 core.String name; 4507 core.String name;
4532 /** The list of types appearing in `oneof` definitions in this type. */ 4508
4509 /// The list of types appearing in `oneof` definitions in this type.
4533 core.List<core.String> oneofs; 4510 core.List<core.String> oneofs;
4534 /** The protocol buffer options. */ 4511
4512 /// The protocol buffer options.
4535 core.List<Option> options; 4513 core.List<Option> options;
4536 /** The source context. */ 4514
4515 /// The source context.
4537 SourceContext sourceContext; 4516 SourceContext sourceContext;
4538 /** 4517
4539 * The source syntax. 4518 /// The source syntax.
4540 * Possible string values are: 4519 /// Possible string values are:
4541 * - "SYNTAX_PROTO2" : Syntax `proto2`. 4520 /// - "SYNTAX_PROTO2" : Syntax `proto2`.
4542 * - "SYNTAX_PROTO3" : Syntax `proto3`. 4521 /// - "SYNTAX_PROTO3" : Syntax `proto3`.
4543 */
4544 core.String syntax; 4522 core.String syntax;
4545 4523
4546 Type(); 4524 Type();
4547 4525
4548 Type.fromJson(core.Map _json) { 4526 Type.fromJson(core.Map _json) {
4549 if (_json.containsKey("fields")) { 4527 if (_json.containsKey("fields")) {
4550 fields = _json["fields"].map((value) => new Field.fromJson(value)).toList( ); 4528 fields =
4529 _json["fields"].map((value) => new Field.fromJson(value)).toList();
4551 } 4530 }
4552 if (_json.containsKey("name")) { 4531 if (_json.containsKey("name")) {
4553 name = _json["name"]; 4532 name = _json["name"];
4554 } 4533 }
4555 if (_json.containsKey("oneofs")) { 4534 if (_json.containsKey("oneofs")) {
4556 oneofs = _json["oneofs"]; 4535 oneofs = _json["oneofs"];
4557 } 4536 }
4558 if (_json.containsKey("options")) { 4537 if (_json.containsKey("options")) {
4559 options = _json["options"].map((value) => new Option.fromJson(value)).toLi st(); 4538 options =
4539 _json["options"].map((value) => new Option.fromJson(value)).toList();
4560 } 4540 }
4561 if (_json.containsKey("sourceContext")) { 4541 if (_json.containsKey("sourceContext")) {
4562 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); 4542 sourceContext = new SourceContext.fromJson(_json["sourceContext"]);
4563 } 4543 }
4564 if (_json.containsKey("syntax")) { 4544 if (_json.containsKey("syntax")) {
4565 syntax = _json["syntax"]; 4545 syntax = _json["syntax"];
4566 } 4546 }
4567 } 4547 }
4568 4548
4569 core.Map<core.String, core.Object> toJson() { 4549 core.Map<core.String, core.Object> toJson() {
4570 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4550 final core.Map<core.String, core.Object> _json =
4551 new core.Map<core.String, core.Object>();
4571 if (fields != null) { 4552 if (fields != null) {
4572 _json["fields"] = fields.map((value) => (value).toJson()).toList(); 4553 _json["fields"] = fields.map((value) => (value).toJson()).toList();
4573 } 4554 }
4574 if (name != null) { 4555 if (name != null) {
4575 _json["name"] = name; 4556 _json["name"] = name;
4576 } 4557 }
4577 if (oneofs != null) { 4558 if (oneofs != null) {
4578 _json["oneofs"] = oneofs; 4559 _json["oneofs"] = oneofs;
4579 } 4560 }
4580 if (options != null) { 4561 if (options != null) {
4581 _json["options"] = options.map((value) => (value).toJson()).toList(); 4562 _json["options"] = options.map((value) => (value).toJson()).toList();
4582 } 4563 }
4583 if (sourceContext != null) { 4564 if (sourceContext != null) {
4584 _json["sourceContext"] = (sourceContext).toJson(); 4565 _json["sourceContext"] = (sourceContext).toJson();
4585 } 4566 }
4586 if (syntax != null) { 4567 if (syntax != null) {
4587 _json["syntax"] = syntax; 4568 _json["syntax"] = syntax;
4588 } 4569 }
4589 return _json; 4570 return _json;
4590 } 4571 }
4591 } 4572 }
4592 4573
4593 /** Configuration controlling usage of a service. */ 4574 /// Configuration controlling usage of a service.
4594 class Usage { 4575 class Usage {
4595 /** 4576 /// The full resource name of a channel used for sending notifications to the
4596 * The full resource name of a channel used for sending notifications to the 4577 /// service producer.
4597 * service producer. 4578 ///
4598 * 4579 /// Google Service Management currently only supports
4599 * Google Service Management currently only supports 4580 /// [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
4600 * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification 4581 /// channel. To use Google Cloud Pub/Sub as the channel, this must be the
4601 * channel. To use Google Cloud Pub/Sub as the channel, this must be the name 4582 /// name
4602 * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format 4583 /// of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
4603 * documented in https://cloud.google.com/pubsub/docs/overview. 4584 /// documented in https://cloud.google.com/pubsub/docs/overview.
4604 */
4605 core.String producerNotificationChannel; 4585 core.String producerNotificationChannel;
4606 /** 4586
4607 * Requirements that must be satisfied before a consumer project can use the 4587 /// Requirements that must be satisfied before a consumer project can use the
4608 * service. Each requirement is of the form <service.name>/<requirement-id>; 4588 /// service. Each requirement is of the form <service.name>/<requirement-id>;
4609 * for example 'serviceusage.googleapis.com/billing-enabled'. 4589 /// for example 'serviceusage.googleapis.com/billing-enabled'.
4610 */
4611 core.List<core.String> requirements; 4590 core.List<core.String> requirements;
4612 /** 4591
4613 * A list of usage rules that apply to individual API methods. 4592 /// A list of usage rules that apply to individual API methods.
4614 * 4593 ///
4615 * **NOTE:** All service configuration rules follow "last one wins" order. 4594 /// **NOTE:** All service configuration rules follow "last one wins" order.
4616 */
4617 core.List<UsageRule> rules; 4595 core.List<UsageRule> rules;
4618 4596
4619 Usage(); 4597 Usage();
4620 4598
4621 Usage.fromJson(core.Map _json) { 4599 Usage.fromJson(core.Map _json) {
4622 if (_json.containsKey("producerNotificationChannel")) { 4600 if (_json.containsKey("producerNotificationChannel")) {
4623 producerNotificationChannel = _json["producerNotificationChannel"]; 4601 producerNotificationChannel = _json["producerNotificationChannel"];
4624 } 4602 }
4625 if (_json.containsKey("requirements")) { 4603 if (_json.containsKey("requirements")) {
4626 requirements = _json["requirements"]; 4604 requirements = _json["requirements"];
4627 } 4605 }
4628 if (_json.containsKey("rules")) { 4606 if (_json.containsKey("rules")) {
4629 rules = _json["rules"].map((value) => new UsageRule.fromJson(value)).toLis t(); 4607 rules =
4608 _json["rules"].map((value) => new UsageRule.fromJson(value)).toList();
4630 } 4609 }
4631 } 4610 }
4632 4611
4633 core.Map<core.String, core.Object> toJson() { 4612 core.Map<core.String, core.Object> toJson() {
4634 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4613 final core.Map<core.String, core.Object> _json =
4614 new core.Map<core.String, core.Object>();
4635 if (producerNotificationChannel != null) { 4615 if (producerNotificationChannel != null) {
4636 _json["producerNotificationChannel"] = producerNotificationChannel; 4616 _json["producerNotificationChannel"] = producerNotificationChannel;
4637 } 4617 }
4638 if (requirements != null) { 4618 if (requirements != null) {
4639 _json["requirements"] = requirements; 4619 _json["requirements"] = requirements;
4640 } 4620 }
4641 if (rules != null) { 4621 if (rules != null) {
4642 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 4622 _json["rules"] = rules.map((value) => (value).toJson()).toList();
4643 } 4623 }
4644 return _json; 4624 return _json;
4645 } 4625 }
4646 } 4626 }
4647 4627
4648 /** 4628 /// Usage configuration rules for the service.
4649 * Usage configuration rules for the service. 4629 ///
4650 * 4630 /// NOTE: Under development.
4651 * NOTE: Under development. 4631 ///
4652 * 4632 ///
4653 * 4633 /// Use this rule to configure unregistered calls for the service. Unregistered
4654 * Use this rule to configure unregistered calls for the service. Unregistered 4634 /// calls are calls that do not contain consumer project identity.
4655 * calls are calls that do not contain consumer project identity. 4635 /// (Example: calls that do not contain an API key).
4656 * (Example: calls that do not contain an API key). 4636 /// By default, API methods do not allow unregistered calls, and each method
4657 * By default, API methods do not allow unregistered calls, and each method call 4637 /// call
4658 * must be identified by a consumer project identity. Use this rule to 4638 /// must be identified by a consumer project identity. Use this rule to
4659 * allow/disallow unregistered calls. 4639 /// allow/disallow unregistered calls.
4660 * 4640 ///
4661 * Example of an API that wants to allow unregistered calls for entire service. 4641 /// Example of an API that wants to allow unregistered calls for entire
4662 * 4642 /// service.
4663 * usage: 4643 ///
4664 * rules: 4644 /// usage:
4665 * - selector: "*" 4645 /// rules:
4666 * allow_unregistered_calls: true 4646 /// - selector: "*"
4667 * 4647 /// allow_unregistered_calls: true
4668 * Example of a method that wants to allow unregistered calls. 4648 ///
4669 * 4649 /// Example of a method that wants to allow unregistered calls.
4670 * usage: 4650 ///
4671 * rules: 4651 /// usage:
4672 * - selector: "google.example.library.v1.LibraryService.CreateBook" 4652 /// rules:
4673 * allow_unregistered_calls: true 4653 /// - selector: "google.example.library.v1.LibraryService.CreateBook"
4674 */ 4654 /// allow_unregistered_calls: true
4675 class UsageRule { 4655 class UsageRule {
4676 /** True, if the method allows unregistered calls; false otherwise. */ 4656 /// True, if the method allows unregistered calls; false otherwise.
4677 core.bool allowUnregisteredCalls; 4657 core.bool allowUnregisteredCalls;
4678 /** 4658
4679 * Selects the methods to which this rule applies. Use '*' to indicate all 4659 /// Selects the methods to which this rule applies. Use '*' to indicate all
4680 * methods in all APIs. 4660 /// methods in all APIs.
4681 * 4661 ///
4682 * Refer to selector for syntax details. 4662 /// Refer to selector for syntax details.
4683 */
4684 core.String selector; 4663 core.String selector;
4685 /** 4664
4686 * True, if the method should skip service control. If so, no control plane 4665 /// True, if the method should skip service control. If so, no control plane
4687 * feature (like quota and billing) will be enabled. 4666 /// feature (like quota and billing) will be enabled.
4688 */
4689 core.bool skipServiceControl; 4667 core.bool skipServiceControl;
4690 4668
4691 UsageRule(); 4669 UsageRule();
4692 4670
4693 UsageRule.fromJson(core.Map _json) { 4671 UsageRule.fromJson(core.Map _json) {
4694 if (_json.containsKey("allowUnregisteredCalls")) { 4672 if (_json.containsKey("allowUnregisteredCalls")) {
4695 allowUnregisteredCalls = _json["allowUnregisteredCalls"]; 4673 allowUnregisteredCalls = _json["allowUnregisteredCalls"];
4696 } 4674 }
4697 if (_json.containsKey("selector")) { 4675 if (_json.containsKey("selector")) {
4698 selector = _json["selector"]; 4676 selector = _json["selector"];
4699 } 4677 }
4700 if (_json.containsKey("skipServiceControl")) { 4678 if (_json.containsKey("skipServiceControl")) {
4701 skipServiceControl = _json["skipServiceControl"]; 4679 skipServiceControl = _json["skipServiceControl"];
4702 } 4680 }
4703 } 4681 }
4704 4682
4705 core.Map<core.String, core.Object> toJson() { 4683 core.Map<core.String, core.Object> toJson() {
4706 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4684 final core.Map<core.String, core.Object> _json =
4685 new core.Map<core.String, core.Object>();
4707 if (allowUnregisteredCalls != null) { 4686 if (allowUnregisteredCalls != null) {
4708 _json["allowUnregisteredCalls"] = allowUnregisteredCalls; 4687 _json["allowUnregisteredCalls"] = allowUnregisteredCalls;
4709 } 4688 }
4710 if (selector != null) { 4689 if (selector != null) {
4711 _json["selector"] = selector; 4690 _json["selector"] = selector;
4712 } 4691 }
4713 if (skipServiceControl != null) { 4692 if (skipServiceControl != null) {
4714 _json["skipServiceControl"] = skipServiceControl; 4693 _json["skipServiceControl"] = skipServiceControl;
4715 } 4694 }
4716 return _json; 4695 return _json;
4717 } 4696 }
4718 } 4697 }
4719 4698
4720 /** 4699 /// `Visibility` defines restrictions for the visibility of service
4721 * `Visibility` defines restrictions for the visibility of service 4700 /// elements. Restrictions are specified using visibility labels
4722 * elements. Restrictions are specified using visibility labels 4701 /// (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
4723 * (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects. 4702 ///
4724 * 4703 /// Users and projects can have access to more than one visibility label. The
4725 * Users and projects can have access to more than one visibility label. The 4704 /// effective visibility for multiple labels is the union of each label's
4726 * effective visibility for multiple labels is the union of each label's 4705 /// elements, plus any unrestricted elements.
4727 * elements, plus any unrestricted elements. 4706 ///
4728 * 4707 /// If an element and its parents have no restrictions, visibility is
4729 * If an element and its parents have no restrictions, visibility is 4708 /// unconditionally granted.
4730 * unconditionally granted. 4709 ///
4731 * 4710 /// Example:
4732 * Example: 4711 ///
4733 * 4712 /// visibility:
4734 * visibility: 4713 /// rules:
4735 * rules: 4714 /// - selector: google.calendar.Calendar.EnhancedSearch
4736 * - selector: google.calendar.Calendar.EnhancedSearch 4715 /// restriction: TRUSTED_TESTER
4737 * restriction: TRUSTED_TESTER 4716 /// - selector: google.calendar.Calendar.Delegate
4738 * - selector: google.calendar.Calendar.Delegate 4717 /// restriction: GOOGLE_INTERNAL
4739 * restriction: GOOGLE_INTERNAL 4718 ///
4740 * 4719 /// Here, all methods are publicly visible except for the restricted methods
4741 * Here, all methods are publicly visible except for the restricted methods 4720 /// EnhancedSearch and Delegate.
4742 * EnhancedSearch and Delegate.
4743 */
4744 class Visibility { 4721 class Visibility {
4745 /** 4722 /// A list of visibility rules that apply to individual API elements.
4746 * A list of visibility rules that apply to individual API elements. 4723 ///
4747 * 4724 /// **NOTE:** All service configuration rules follow "last one wins" order.
4748 * **NOTE:** All service configuration rules follow "last one wins" order.
4749 */
4750 core.List<VisibilityRule> rules; 4725 core.List<VisibilityRule> rules;
4751 4726
4752 Visibility(); 4727 Visibility();
4753 4728
4754 Visibility.fromJson(core.Map _json) { 4729 Visibility.fromJson(core.Map _json) {
4755 if (_json.containsKey("rules")) { 4730 if (_json.containsKey("rules")) {
4756 rules = _json["rules"].map((value) => new VisibilityRule.fromJson(value)). toList(); 4731 rules = _json["rules"]
4732 .map((value) => new VisibilityRule.fromJson(value))
4733 .toList();
4757 } 4734 }
4758 } 4735 }
4759 4736
4760 core.Map<core.String, core.Object> toJson() { 4737 core.Map<core.String, core.Object> toJson() {
4761 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4738 final core.Map<core.String, core.Object> _json =
4739 new core.Map<core.String, core.Object>();
4762 if (rules != null) { 4740 if (rules != null) {
4763 _json["rules"] = rules.map((value) => (value).toJson()).toList(); 4741 _json["rules"] = rules.map((value) => (value).toJson()).toList();
4764 } 4742 }
4765 return _json; 4743 return _json;
4766 } 4744 }
4767 } 4745 }
4768 4746
4769 /** 4747 /// A visibility rule provides visibility configuration for an individual API
4770 * A visibility rule provides visibility configuration for an individual API 4748 /// element.
4771 * element.
4772 */
4773 class VisibilityRule { 4749 class VisibilityRule {
4774 /** 4750 /// A comma-separated list of visibility labels that apply to the `selector`.
4775 * A comma-separated list of visibility labels that apply to the `selector`. 4751 /// Any of the listed labels can be used to grant the visibility.
4776 * Any of the listed labels can be used to grant the visibility. 4752 ///
4777 * 4753 /// If a rule has multiple labels, removing one of the labels but not all of
4778 * If a rule has multiple labels, removing one of the labels but not all of 4754 /// them can break clients.
4779 * them can break clients. 4755 ///
4780 * 4756 /// Example:
4781 * Example: 4757 ///
4782 * 4758 /// visibility:
4783 * visibility: 4759 /// rules:
4784 * rules: 4760 /// - selector: google.calendar.Calendar.EnhancedSearch
4785 * - selector: google.calendar.Calendar.EnhancedSearch 4761 /// restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
4786 * restriction: GOOGLE_INTERNAL, TRUSTED_TESTER 4762 ///
4787 * 4763 /// Removing GOOGLE_INTERNAL from this restriction will break clients that
4788 * Removing GOOGLE_INTERNAL from this restriction will break clients that 4764 /// rely on this method and only had access to it through GOOGLE_INTERNAL.
4789 * rely on this method and only had access to it through GOOGLE_INTERNAL.
4790 */
4791 core.String restriction; 4765 core.String restriction;
4792 /** 4766
4793 * Selects methods, messages, fields, enums, etc. to which this rule applies. 4767 /// Selects methods, messages, fields, enums, etc. to which this rule
4794 * 4768 /// applies.
4795 * Refer to selector for syntax details. 4769 ///
4796 */ 4770 /// Refer to selector for syntax details.
4797 core.String selector; 4771 core.String selector;
4798 4772
4799 VisibilityRule(); 4773 VisibilityRule();
4800 4774
4801 VisibilityRule.fromJson(core.Map _json) { 4775 VisibilityRule.fromJson(core.Map _json) {
4802 if (_json.containsKey("restriction")) { 4776 if (_json.containsKey("restriction")) {
4803 restriction = _json["restriction"]; 4777 restriction = _json["restriction"];
4804 } 4778 }
4805 if (_json.containsKey("selector")) { 4779 if (_json.containsKey("selector")) {
4806 selector = _json["selector"]; 4780 selector = _json["selector"];
4807 } 4781 }
4808 } 4782 }
4809 4783
4810 core.Map<core.String, core.Object> toJson() { 4784 core.Map<core.String, core.Object> toJson() {
4811 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4785 final core.Map<core.String, core.Object> _json =
4786 new core.Map<core.String, core.Object>();
4812 if (restriction != null) { 4787 if (restriction != null) {
4813 _json["restriction"] = restriction; 4788 _json["restriction"] = restriction;
4814 } 4789 }
4815 if (selector != null) { 4790 if (selector != null) {
4816 _json["selector"] = selector; 4791 _json["selector"] = selector;
4817 } 4792 }
4818 return _json; 4793 return _json;
4819 } 4794 }
4820 } 4795 }
OLDNEW
« 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