| OLD | NEW |
| (Empty) | |
| 1 // This is a generated file (see the discoveryapis_generator project). |
| 2 |
| 3 library googleapis.servicemanagement.v1; |
| 4 |
| 5 import 'dart:core' as core; |
| 6 import 'dart:async' as async; |
| 7 import 'dart:convert' as convert; |
| 8 |
| 9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| 10 import 'package:http/http.dart' as http_1; |
| 11 |
| 12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show |
| 13 ApiRequestError, DetailedApiRequestError; |
| 14 |
| 15 const core.String USER_AGENT = 'dart-api-client servicemanagement/v1'; |
| 16 |
| 17 /** The service management API for Google Cloud Platform */ |
| 18 class ServicemanagementApi { |
| 19 /** View and manage your data across Google Cloud Platform services */ |
| 20 static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platf
orm"; |
| 21 |
| 22 /** View your data across Google Cloud Platform services */ |
| 23 static const CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/clo
ud-platform.read-only"; |
| 24 |
| 25 /** Manage your Google API service configuration */ |
| 26 static const ServiceManagementScope = "https://www.googleapis.com/auth/service
.management"; |
| 27 |
| 28 /** View your Google API service configuration */ |
| 29 static const ServiceManagementReadonlyScope = "https://www.googleapis.com/auth
/service.management.readonly"; |
| 30 |
| 31 |
| 32 final commons.ApiRequester _requester; |
| 33 |
| 34 OperationsResourceApi get operations => new OperationsResourceApi(_requester); |
| 35 ServicesResourceApi get services => new ServicesResourceApi(_requester); |
| 36 |
| 37 ServicemanagementApi(http_1.Client client, {core.String rootUrl: "https://serv
icemanagement.googleapis.com/", core.String servicePath: ""}) : |
| 38 _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_A
GENT); |
| 39 } |
| 40 |
| 41 |
| 42 class OperationsResourceApi { |
| 43 final commons.ApiRequester _requester; |
| 44 |
| 45 OperationsResourceApi(commons.ApiRequester client) : |
| 46 _requester = client; |
| 47 |
| 48 /** |
| 49 * Gets the latest state of a long-running operation. Clients can use this |
| 50 * method to poll the operation result at intervals as recommended by the API |
| 51 * service. |
| 52 * |
| 53 * Request parameters: |
| 54 * |
| 55 * [name] - The name of the operation resource. |
| 56 * Value must have pattern "^operations/.*$". |
| 57 * |
| 58 * Completes with a [Operation]. |
| 59 * |
| 60 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 61 * error. |
| 62 * |
| 63 * If the used [http_1.Client] completes with an error when making a REST |
| 64 * call, this method will complete with the same error. |
| 65 */ |
| 66 async.Future<Operation> get(core.String name) { |
| 67 var _url = null; |
| 68 var _queryParams = new core.Map(); |
| 69 var _uploadMedia = null; |
| 70 var _uploadOptions = null; |
| 71 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 72 var _body = null; |
| 73 |
| 74 if (name == null) { |
| 75 throw new core.ArgumentError("Parameter name is required."); |
| 76 } |
| 77 |
| 78 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| 79 |
| 80 var _response = _requester.request(_url, |
| 81 "GET", |
| 82 body: _body, |
| 83 queryParams: _queryParams, |
| 84 uploadOptions: _uploadOptions, |
| 85 uploadMedia: _uploadMedia, |
| 86 downloadOptions: _downloadOptions); |
| 87 return _response.then((data) => new Operation.fromJson(data)); |
| 88 } |
| 89 |
| 90 } |
| 91 |
| 92 |
| 93 class ServicesResourceApi { |
| 94 final commons.ApiRequester _requester; |
| 95 |
| 96 ServicesConfigsResourceApi get configs => new ServicesConfigsResourceApi(_requ
ester); |
| 97 ServicesRolloutsResourceApi get rollouts => new ServicesRolloutsResourceApi(_r
equester); |
| 98 |
| 99 ServicesResourceApi(commons.ApiRequester client) : |
| 100 _requester = client; |
| 101 |
| 102 /** |
| 103 * Creates a new managed service. |
| 104 * |
| 105 * Operation<response: ManagedService> |
| 106 * |
| 107 * [request] - The metadata request object. |
| 108 * |
| 109 * Request parameters: |
| 110 * |
| 111 * Completes with a [Operation]. |
| 112 * |
| 113 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 114 * error. |
| 115 * |
| 116 * If the used [http_1.Client] completes with an error when making a REST |
| 117 * call, this method will complete with the same error. |
| 118 */ |
| 119 async.Future<Operation> create(ManagedService request) { |
| 120 var _url = null; |
| 121 var _queryParams = new core.Map(); |
| 122 var _uploadMedia = null; |
| 123 var _uploadOptions = null; |
| 124 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 125 var _body = null; |
| 126 |
| 127 if (request != null) { |
| 128 _body = convert.JSON.encode((request).toJson()); |
| 129 } |
| 130 |
| 131 _url = 'v1/services'; |
| 132 |
| 133 var _response = _requester.request(_url, |
| 134 "POST", |
| 135 body: _body, |
| 136 queryParams: _queryParams, |
| 137 uploadOptions: _uploadOptions, |
| 138 uploadMedia: _uploadMedia, |
| 139 downloadOptions: _downloadOptions); |
| 140 return _response.then((data) => new Operation.fromJson(data)); |
| 141 } |
| 142 |
| 143 /** |
| 144 * Deletes a managed service. This method will change the serivce in the |
| 145 * `Soft-Delete` state for 30 days. Within this period, service producers may |
| 146 * call UndeleteService to restore the service. |
| 147 * After 30 days, the service will be permanently deleted. |
| 148 * |
| 149 * Operation<response: google.protobuf.Empty> |
| 150 * |
| 151 * Request parameters: |
| 152 * |
| 153 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 154 * for naming |
| 155 * requirements. For example: `example.googleapis.com`. |
| 156 * |
| 157 * Completes with a [Operation]. |
| 158 * |
| 159 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 160 * error. |
| 161 * |
| 162 * If the used [http_1.Client] completes with an error when making a REST |
| 163 * call, this method will complete with the same error. |
| 164 */ |
| 165 async.Future<Operation> delete(core.String serviceName) { |
| 166 var _url = null; |
| 167 var _queryParams = new core.Map(); |
| 168 var _uploadMedia = null; |
| 169 var _uploadOptions = null; |
| 170 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 171 var _body = null; |
| 172 |
| 173 if (serviceName == null) { |
| 174 throw new core.ArgumentError("Parameter serviceName is required."); |
| 175 } |
| 176 |
| 177 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName'); |
| 178 |
| 179 var _response = _requester.request(_url, |
| 180 "DELETE", |
| 181 body: _body, |
| 182 queryParams: _queryParams, |
| 183 uploadOptions: _uploadOptions, |
| 184 uploadMedia: _uploadMedia, |
| 185 downloadOptions: _downloadOptions); |
| 186 return _response.then((data) => new Operation.fromJson(data)); |
| 187 } |
| 188 |
| 189 /** |
| 190 * Disable a managed service for a project. |
| 191 * |
| 192 * Operation<response: DisableServiceResponse> |
| 193 * |
| 194 * [request] - The metadata request object. |
| 195 * |
| 196 * Request parameters: |
| 197 * |
| 198 * [serviceName] - Name of the service to disable. Specifying an unknown |
| 199 * service name |
| 200 * will cause the request to fail. |
| 201 * |
| 202 * Completes with a [Operation]. |
| 203 * |
| 204 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 205 * error. |
| 206 * |
| 207 * If the used [http_1.Client] completes with an error when making a REST |
| 208 * call, this method will complete with the same error. |
| 209 */ |
| 210 async.Future<Operation> disable(DisableServiceRequest request, core.String ser
viceName) { |
| 211 var _url = null; |
| 212 var _queryParams = new core.Map(); |
| 213 var _uploadMedia = null; |
| 214 var _uploadOptions = null; |
| 215 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 216 var _body = null; |
| 217 |
| 218 if (request != null) { |
| 219 _body = convert.JSON.encode((request).toJson()); |
| 220 } |
| 221 if (serviceName == null) { |
| 222 throw new core.ArgumentError("Parameter serviceName is required."); |
| 223 } |
| 224 |
| 225 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + ':di
sable'; |
| 226 |
| 227 var _response = _requester.request(_url, |
| 228 "POST", |
| 229 body: _body, |
| 230 queryParams: _queryParams, |
| 231 uploadOptions: _uploadOptions, |
| 232 uploadMedia: _uploadMedia, |
| 233 downloadOptions: _downloadOptions); |
| 234 return _response.then((data) => new Operation.fromJson(data)); |
| 235 } |
| 236 |
| 237 /** |
| 238 * Enable a managed service for a project with default setting. |
| 239 * |
| 240 * Operation<response: EnableServiceResponse> |
| 241 * |
| 242 * [request] - The metadata request object. |
| 243 * |
| 244 * Request parameters: |
| 245 * |
| 246 * [serviceName] - Name of the service to enable. Specifying an unknown |
| 247 * service name will |
| 248 * cause the request to fail. |
| 249 * |
| 250 * Completes with a [Operation]. |
| 251 * |
| 252 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 253 * error. |
| 254 * |
| 255 * If the used [http_1.Client] completes with an error when making a REST |
| 256 * call, this method will complete with the same error. |
| 257 */ |
| 258 async.Future<Operation> enable(EnableServiceRequest request, core.String servi
ceName) { |
| 259 var _url = null; |
| 260 var _queryParams = new core.Map(); |
| 261 var _uploadMedia = null; |
| 262 var _uploadOptions = null; |
| 263 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 264 var _body = null; |
| 265 |
| 266 if (request != null) { |
| 267 _body = convert.JSON.encode((request).toJson()); |
| 268 } |
| 269 if (serviceName == null) { |
| 270 throw new core.ArgumentError("Parameter serviceName is required."); |
| 271 } |
| 272 |
| 273 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + ':en
able'; |
| 274 |
| 275 var _response = _requester.request(_url, |
| 276 "POST", |
| 277 body: _body, |
| 278 queryParams: _queryParams, |
| 279 uploadOptions: _uploadOptions, |
| 280 uploadMedia: _uploadMedia, |
| 281 downloadOptions: _downloadOptions); |
| 282 return _response.then((data) => new Operation.fromJson(data)); |
| 283 } |
| 284 |
| 285 /** |
| 286 * Generates and returns a report (errors, warnings and changes from |
| 287 * existing configurations) associated with |
| 288 * GenerateConfigReportRequest.new_value |
| 289 * |
| 290 * If GenerateConfigReportRequest.old_value is specified, |
| 291 * GenerateConfigReportRequest will contain a single ChangeReport based on the |
| 292 * comparison between GenerateConfigReportRequest.new_value and |
| 293 * GenerateConfigReportRequest.old_value. |
| 294 * If GenerateConfigReportRequest.old_value is not specified, this method |
| 295 * will compare GenerateConfigReportRequest.new_value with the last pushed |
| 296 * service configuration. |
| 297 * |
| 298 * [request] - The metadata request object. |
| 299 * |
| 300 * Request parameters: |
| 301 * |
| 302 * Completes with a [GenerateConfigReportResponse]. |
| 303 * |
| 304 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 305 * error. |
| 306 * |
| 307 * If the used [http_1.Client] completes with an error when making a REST |
| 308 * call, this method will complete with the same error. |
| 309 */ |
| 310 async.Future<GenerateConfigReportResponse> generateConfigReport(GenerateConfig
ReportRequest request) { |
| 311 var _url = null; |
| 312 var _queryParams = new core.Map(); |
| 313 var _uploadMedia = null; |
| 314 var _uploadOptions = null; |
| 315 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 316 var _body = null; |
| 317 |
| 318 if (request != null) { |
| 319 _body = convert.JSON.encode((request).toJson()); |
| 320 } |
| 321 |
| 322 _url = 'v1/services:generateConfigReport'; |
| 323 |
| 324 var _response = _requester.request(_url, |
| 325 "POST", |
| 326 body: _body, |
| 327 queryParams: _queryParams, |
| 328 uploadOptions: _uploadOptions, |
| 329 uploadMedia: _uploadMedia, |
| 330 downloadOptions: _downloadOptions); |
| 331 return _response.then((data) => new GenerateConfigReportResponse.fromJson(da
ta)); |
| 332 } |
| 333 |
| 334 /** |
| 335 * Gets a managed service. |
| 336 * |
| 337 * Request parameters: |
| 338 * |
| 339 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 340 * for naming |
| 341 * requirements. For example: `example.googleapis.com`. |
| 342 * |
| 343 * Completes with a [ManagedService]. |
| 344 * |
| 345 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 346 * error. |
| 347 * |
| 348 * If the used [http_1.Client] completes with an error when making a REST |
| 349 * call, this method will complete with the same error. |
| 350 */ |
| 351 async.Future<ManagedService> get(core.String serviceName) { |
| 352 var _url = null; |
| 353 var _queryParams = new core.Map(); |
| 354 var _uploadMedia = null; |
| 355 var _uploadOptions = null; |
| 356 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 357 var _body = null; |
| 358 |
| 359 if (serviceName == null) { |
| 360 throw new core.ArgumentError("Parameter serviceName is required."); |
| 361 } |
| 362 |
| 363 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName'); |
| 364 |
| 365 var _response = _requester.request(_url, |
| 366 "GET", |
| 367 body: _body, |
| 368 queryParams: _queryParams, |
| 369 uploadOptions: _uploadOptions, |
| 370 uploadMedia: _uploadMedia, |
| 371 downloadOptions: _downloadOptions); |
| 372 return _response.then((data) => new ManagedService.fromJson(data)); |
| 373 } |
| 374 |
| 375 /** |
| 376 * Gets a service configuration (version) for a managed service. |
| 377 * |
| 378 * Request parameters: |
| 379 * |
| 380 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 381 * for naming |
| 382 * requirements. For example: `example.googleapis.com`. |
| 383 * |
| 384 * [configId] - null |
| 385 * |
| 386 * Completes with a [Service]. |
| 387 * |
| 388 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 389 * error. |
| 390 * |
| 391 * If the used [http_1.Client] completes with an error when making a REST |
| 392 * call, this method will complete with the same error. |
| 393 */ |
| 394 async.Future<Service> getConfig(core.String serviceName, {core.String configId
}) { |
| 395 var _url = null; |
| 396 var _queryParams = new core.Map(); |
| 397 var _uploadMedia = null; |
| 398 var _uploadOptions = null; |
| 399 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 400 var _body = null; |
| 401 |
| 402 if (serviceName == null) { |
| 403 throw new core.ArgumentError("Parameter serviceName is required."); |
| 404 } |
| 405 if (configId != null) { |
| 406 _queryParams["configId"] = [configId]; |
| 407 } |
| 408 |
| 409 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/co
nfig'; |
| 410 |
| 411 var _response = _requester.request(_url, |
| 412 "GET", |
| 413 body: _body, |
| 414 queryParams: _queryParams, |
| 415 uploadOptions: _uploadOptions, |
| 416 uploadMedia: _uploadMedia, |
| 417 downloadOptions: _downloadOptions); |
| 418 return _response.then((data) => new Service.fromJson(data)); |
| 419 } |
| 420 |
| 421 /** |
| 422 * Gets the access control policy for a resource. |
| 423 * Returns an empty policy if the resource exists and does not have a policy |
| 424 * set. |
| 425 * |
| 426 * [request] - The metadata request object. |
| 427 * |
| 428 * Request parameters: |
| 429 * |
| 430 * [resource] - REQUIRED: The resource for which the policy is being |
| 431 * requested. |
| 432 * `resource` is usually specified as a path. For example, a Project |
| 433 * resource is specified as `projects/{project}`. |
| 434 * Value must have pattern "^services/[^/]*$". |
| 435 * |
| 436 * Completes with a [Policy]. |
| 437 * |
| 438 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 439 * error. |
| 440 * |
| 441 * If the used [http_1.Client] completes with an error when making a REST |
| 442 * call, this method will complete with the same error. |
| 443 */ |
| 444 async.Future<Policy> getIamPolicy(GetIamPolicyRequest request, core.String res
ource) { |
| 445 var _url = null; |
| 446 var _queryParams = new core.Map(); |
| 447 var _uploadMedia = null; |
| 448 var _uploadOptions = null; |
| 449 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 450 var _body = null; |
| 451 |
| 452 if (request != null) { |
| 453 _body = convert.JSON.encode((request).toJson()); |
| 454 } |
| 455 if (resource == null) { |
| 456 throw new core.ArgumentError("Parameter resource is required."); |
| 457 } |
| 458 |
| 459 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIam
Policy'; |
| 460 |
| 461 var _response = _requester.request(_url, |
| 462 "POST", |
| 463 body: _body, |
| 464 queryParams: _queryParams, |
| 465 uploadOptions: _uploadOptions, |
| 466 uploadMedia: _uploadMedia, |
| 467 downloadOptions: _downloadOptions); |
| 468 return _response.then((data) => new Policy.fromJson(data)); |
| 469 } |
| 470 |
| 471 /** |
| 472 * Lists all managed services. |
| 473 * |
| 474 * Request parameters: |
| 475 * |
| 476 * [pageSize] - Requested size of the next page of data. |
| 477 * |
| 478 * [producerProjectId] - Include services produced by the specified project. |
| 479 * |
| 480 * [pageToken] - Token identifying which result to start with; returned by a |
| 481 * previous list |
| 482 * call. |
| 483 * |
| 484 * Completes with a [ListServicesResponse]. |
| 485 * |
| 486 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 487 * error. |
| 488 * |
| 489 * If the used [http_1.Client] completes with an error when making a REST |
| 490 * call, this method will complete with the same error. |
| 491 */ |
| 492 async.Future<ListServicesResponse> list({core.int pageSize, core.String produc
erProjectId, core.String pageToken}) { |
| 493 var _url = null; |
| 494 var _queryParams = new core.Map(); |
| 495 var _uploadMedia = null; |
| 496 var _uploadOptions = null; |
| 497 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 498 var _body = null; |
| 499 |
| 500 if (pageSize != null) { |
| 501 _queryParams["pageSize"] = ["${pageSize}"]; |
| 502 } |
| 503 if (producerProjectId != null) { |
| 504 _queryParams["producerProjectId"] = [producerProjectId]; |
| 505 } |
| 506 if (pageToken != null) { |
| 507 _queryParams["pageToken"] = [pageToken]; |
| 508 } |
| 509 |
| 510 _url = 'v1/services'; |
| 511 |
| 512 var _response = _requester.request(_url, |
| 513 "GET", |
| 514 body: _body, |
| 515 queryParams: _queryParams, |
| 516 uploadOptions: _uploadOptions, |
| 517 uploadMedia: _uploadMedia, |
| 518 downloadOptions: _downloadOptions); |
| 519 return _response.then((data) => new ListServicesResponse.fromJson(data)); |
| 520 } |
| 521 |
| 522 /** |
| 523 * Sets the access control policy on the specified resource. Replaces any |
| 524 * existing policy. |
| 525 * |
| 526 * [request] - The metadata request object. |
| 527 * |
| 528 * Request parameters: |
| 529 * |
| 530 * [resource] - REQUIRED: The resource for which the policy is being |
| 531 * specified. |
| 532 * `resource` is usually specified as a path. For example, a Project |
| 533 * resource is specified as `projects/{project}`. |
| 534 * Value must have pattern "^services/[^/]*$". |
| 535 * |
| 536 * Completes with a [Policy]. |
| 537 * |
| 538 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 539 * error. |
| 540 * |
| 541 * If the used [http_1.Client] completes with an error when making a REST |
| 542 * call, this method will complete with the same error. |
| 543 */ |
| 544 async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String res
ource) { |
| 545 var _url = null; |
| 546 var _queryParams = new core.Map(); |
| 547 var _uploadMedia = null; |
| 548 var _uploadOptions = null; |
| 549 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 550 var _body = null; |
| 551 |
| 552 if (request != null) { |
| 553 _body = convert.JSON.encode((request).toJson()); |
| 554 } |
| 555 if (resource == null) { |
| 556 throw new core.ArgumentError("Parameter resource is required."); |
| 557 } |
| 558 |
| 559 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIam
Policy'; |
| 560 |
| 561 var _response = _requester.request(_url, |
| 562 "POST", |
| 563 body: _body, |
| 564 queryParams: _queryParams, |
| 565 uploadOptions: _uploadOptions, |
| 566 uploadMedia: _uploadMedia, |
| 567 downloadOptions: _downloadOptions); |
| 568 return _response.then((data) => new Policy.fromJson(data)); |
| 569 } |
| 570 |
| 571 /** |
| 572 * Returns permissions that a caller has on the specified resource. |
| 573 * |
| 574 * [request] - The metadata request object. |
| 575 * |
| 576 * Request parameters: |
| 577 * |
| 578 * [resource] - REQUIRED: The resource for which the policy detail is being |
| 579 * requested. |
| 580 * `resource` is usually specified as a path. For example, a Project |
| 581 * resource is specified as `projects/{project}`. |
| 582 * Value must have pattern "^services/[^/]*$". |
| 583 * |
| 584 * Completes with a [TestIamPermissionsResponse]. |
| 585 * |
| 586 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 587 * error. |
| 588 * |
| 589 * If the used [http_1.Client] completes with an error when making a REST |
| 590 * call, this method will complete with the same error. |
| 591 */ |
| 592 async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissions
Request request, core.String resource) { |
| 593 var _url = null; |
| 594 var _queryParams = new core.Map(); |
| 595 var _uploadMedia = null; |
| 596 var _uploadOptions = null; |
| 597 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 598 var _body = null; |
| 599 |
| 600 if (request != null) { |
| 601 _body = convert.JSON.encode((request).toJson()); |
| 602 } |
| 603 if (resource == null) { |
| 604 throw new core.ArgumentError("Parameter resource is required."); |
| 605 } |
| 606 |
| 607 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIa
mPermissions'; |
| 608 |
| 609 var _response = _requester.request(_url, |
| 610 "POST", |
| 611 body: _body, |
| 612 queryParams: _queryParams, |
| 613 uploadOptions: _uploadOptions, |
| 614 uploadMedia: _uploadMedia, |
| 615 downloadOptions: _downloadOptions); |
| 616 return _response.then((data) => new TestIamPermissionsResponse.fromJson(data
)); |
| 617 } |
| 618 |
| 619 /** |
| 620 * Revives a previously deleted managed service. The method restores the |
| 621 * service using the configuration at the time the service was deleted. |
| 622 * The target service must exist and must have been deleted within the |
| 623 * last 30 days. |
| 624 * |
| 625 * Operation<response: UndeleteServiceResponse> |
| 626 * |
| 627 * Request parameters: |
| 628 * |
| 629 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 630 * for naming |
| 631 * requirements. For example: `example.googleapis.com`. |
| 632 * |
| 633 * Completes with a [Operation]. |
| 634 * |
| 635 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 636 * error. |
| 637 * |
| 638 * If the used [http_1.Client] completes with an error when making a REST |
| 639 * call, this method will complete with the same error. |
| 640 */ |
| 641 async.Future<Operation> undelete(core.String serviceName) { |
| 642 var _url = null; |
| 643 var _queryParams = new core.Map(); |
| 644 var _uploadMedia = null; |
| 645 var _uploadOptions = null; |
| 646 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 647 var _body = null; |
| 648 |
| 649 if (serviceName == null) { |
| 650 throw new core.ArgumentError("Parameter serviceName is required."); |
| 651 } |
| 652 |
| 653 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + ':un
delete'; |
| 654 |
| 655 var _response = _requester.request(_url, |
| 656 "POST", |
| 657 body: _body, |
| 658 queryParams: _queryParams, |
| 659 uploadOptions: _uploadOptions, |
| 660 uploadMedia: _uploadMedia, |
| 661 downloadOptions: _downloadOptions); |
| 662 return _response.then((data) => new Operation.fromJson(data)); |
| 663 } |
| 664 |
| 665 } |
| 666 |
| 667 |
| 668 class ServicesConfigsResourceApi { |
| 669 final commons.ApiRequester _requester; |
| 670 |
| 671 ServicesConfigsResourceApi(commons.ApiRequester client) : |
| 672 _requester = client; |
| 673 |
| 674 /** |
| 675 * Creates a new service configuration (version) for a managed service. |
| 676 * This method only stores the service configuration. To roll out the service |
| 677 * configuration to backend systems please call |
| 678 * CreateServiceRollout. |
| 679 * |
| 680 * [request] - The metadata request object. |
| 681 * |
| 682 * Request parameters: |
| 683 * |
| 684 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 685 * for naming |
| 686 * requirements. For example: `example.googleapis.com`. |
| 687 * |
| 688 * Completes with a [Service]. |
| 689 * |
| 690 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 691 * error. |
| 692 * |
| 693 * If the used [http_1.Client] completes with an error when making a REST |
| 694 * call, this method will complete with the same error. |
| 695 */ |
| 696 async.Future<Service> create(Service request, core.String serviceName) { |
| 697 var _url = null; |
| 698 var _queryParams = new core.Map(); |
| 699 var _uploadMedia = null; |
| 700 var _uploadOptions = null; |
| 701 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 702 var _body = null; |
| 703 |
| 704 if (request != null) { |
| 705 _body = convert.JSON.encode((request).toJson()); |
| 706 } |
| 707 if (serviceName == null) { |
| 708 throw new core.ArgumentError("Parameter serviceName is required."); |
| 709 } |
| 710 |
| 711 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/co
nfigs'; |
| 712 |
| 713 var _response = _requester.request(_url, |
| 714 "POST", |
| 715 body: _body, |
| 716 queryParams: _queryParams, |
| 717 uploadOptions: _uploadOptions, |
| 718 uploadMedia: _uploadMedia, |
| 719 downloadOptions: _downloadOptions); |
| 720 return _response.then((data) => new Service.fromJson(data)); |
| 721 } |
| 722 |
| 723 /** |
| 724 * Gets a service configuration (version) for a managed service. |
| 725 * |
| 726 * Request parameters: |
| 727 * |
| 728 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 729 * for naming |
| 730 * requirements. For example: `example.googleapis.com`. |
| 731 * |
| 732 * [configId] - null |
| 733 * |
| 734 * Completes with a [Service]. |
| 735 * |
| 736 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 737 * error. |
| 738 * |
| 739 * If the used [http_1.Client] completes with an error when making a REST |
| 740 * call, this method will complete with the same error. |
| 741 */ |
| 742 async.Future<Service> get(core.String serviceName, core.String configId) { |
| 743 var _url = null; |
| 744 var _queryParams = new core.Map(); |
| 745 var _uploadMedia = null; |
| 746 var _uploadOptions = null; |
| 747 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 748 var _body = null; |
| 749 |
| 750 if (serviceName == null) { |
| 751 throw new core.ArgumentError("Parameter serviceName is required."); |
| 752 } |
| 753 if (configId == null) { |
| 754 throw new core.ArgumentError("Parameter configId is required."); |
| 755 } |
| 756 |
| 757 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/co
nfigs/' + commons.Escaper.ecapeVariable('$configId'); |
| 758 |
| 759 var _response = _requester.request(_url, |
| 760 "GET", |
| 761 body: _body, |
| 762 queryParams: _queryParams, |
| 763 uploadOptions: _uploadOptions, |
| 764 uploadMedia: _uploadMedia, |
| 765 downloadOptions: _downloadOptions); |
| 766 return _response.then((data) => new Service.fromJson(data)); |
| 767 } |
| 768 |
| 769 /** |
| 770 * Lists the history of the service configuration for a managed service, |
| 771 * from the newest to the oldest. |
| 772 * |
| 773 * Request parameters: |
| 774 * |
| 775 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 776 * for naming |
| 777 * requirements. For example: `example.googleapis.com`. |
| 778 * |
| 779 * [pageSize] - The max number of items to include in the response list. |
| 780 * |
| 781 * [pageToken] - The token of the page to retrieve. |
| 782 * |
| 783 * Completes with a [ListServiceConfigsResponse]. |
| 784 * |
| 785 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 786 * error. |
| 787 * |
| 788 * If the used [http_1.Client] completes with an error when making a REST |
| 789 * call, this method will complete with the same error. |
| 790 */ |
| 791 async.Future<ListServiceConfigsResponse> list(core.String serviceName, {core.i
nt pageSize, core.String pageToken}) { |
| 792 var _url = null; |
| 793 var _queryParams = new core.Map(); |
| 794 var _uploadMedia = null; |
| 795 var _uploadOptions = null; |
| 796 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 797 var _body = null; |
| 798 |
| 799 if (serviceName == null) { |
| 800 throw new core.ArgumentError("Parameter serviceName is required."); |
| 801 } |
| 802 if (pageSize != null) { |
| 803 _queryParams["pageSize"] = ["${pageSize}"]; |
| 804 } |
| 805 if (pageToken != null) { |
| 806 _queryParams["pageToken"] = [pageToken]; |
| 807 } |
| 808 |
| 809 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/co
nfigs'; |
| 810 |
| 811 var _response = _requester.request(_url, |
| 812 "GET", |
| 813 body: _body, |
| 814 queryParams: _queryParams, |
| 815 uploadOptions: _uploadOptions, |
| 816 uploadMedia: _uploadMedia, |
| 817 downloadOptions: _downloadOptions); |
| 818 return _response.then((data) => new ListServiceConfigsResponse.fromJson(data
)); |
| 819 } |
| 820 |
| 821 /** |
| 822 * Creates a new service configuration (version) for a managed service based |
| 823 * on |
| 824 * user-supplied configuration source files (for example: OpenAPI |
| 825 * Specification). This method stores the source configurations as well as the |
| 826 * generated service configuration. To rollout the service configuration to |
| 827 * other services, |
| 828 * please call CreateServiceRollout. |
| 829 * |
| 830 * Operation<response: SubmitConfigSourceResponse> |
| 831 * |
| 832 * [request] - The metadata request object. |
| 833 * |
| 834 * Request parameters: |
| 835 * |
| 836 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 837 * for naming |
| 838 * requirements. For example: `example.googleapis.com`. |
| 839 * |
| 840 * Completes with a [Operation]. |
| 841 * |
| 842 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 843 * error. |
| 844 * |
| 845 * If the used [http_1.Client] completes with an error when making a REST |
| 846 * call, this method will complete with the same error. |
| 847 */ |
| 848 async.Future<Operation> submit(SubmitConfigSourceRequest request, core.String
serviceName) { |
| 849 var _url = null; |
| 850 var _queryParams = new core.Map(); |
| 851 var _uploadMedia = null; |
| 852 var _uploadOptions = null; |
| 853 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 854 var _body = null; |
| 855 |
| 856 if (request != null) { |
| 857 _body = convert.JSON.encode((request).toJson()); |
| 858 } |
| 859 if (serviceName == null) { |
| 860 throw new core.ArgumentError("Parameter serviceName is required."); |
| 861 } |
| 862 |
| 863 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/co
nfigs:submit'; |
| 864 |
| 865 var _response = _requester.request(_url, |
| 866 "POST", |
| 867 body: _body, |
| 868 queryParams: _queryParams, |
| 869 uploadOptions: _uploadOptions, |
| 870 uploadMedia: _uploadMedia, |
| 871 downloadOptions: _downloadOptions); |
| 872 return _response.then((data) => new Operation.fromJson(data)); |
| 873 } |
| 874 |
| 875 } |
| 876 |
| 877 |
| 878 class ServicesRolloutsResourceApi { |
| 879 final commons.ApiRequester _requester; |
| 880 |
| 881 ServicesRolloutsResourceApi(commons.ApiRequester client) : |
| 882 _requester = client; |
| 883 |
| 884 /** |
| 885 * Creates a new service configuration rollout. Based on rollout, the |
| 886 * Google Service Management will roll out the service configurations to |
| 887 * different backend services. For example, the logging configuration will be |
| 888 * pushed to Google Cloud Logging. |
| 889 * |
| 890 * Operation<response: Rollout> |
| 891 * |
| 892 * [request] - The metadata request object. |
| 893 * |
| 894 * Request parameters: |
| 895 * |
| 896 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 897 * for naming |
| 898 * requirements. For example: `example.googleapis.com`. |
| 899 * |
| 900 * Completes with a [Operation]. |
| 901 * |
| 902 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 903 * error. |
| 904 * |
| 905 * If the used [http_1.Client] completes with an error when making a REST |
| 906 * call, this method will complete with the same error. |
| 907 */ |
| 908 async.Future<Operation> create(Rollout request, core.String serviceName) { |
| 909 var _url = null; |
| 910 var _queryParams = new core.Map(); |
| 911 var _uploadMedia = null; |
| 912 var _uploadOptions = null; |
| 913 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 914 var _body = null; |
| 915 |
| 916 if (request != null) { |
| 917 _body = convert.JSON.encode((request).toJson()); |
| 918 } |
| 919 if (serviceName == null) { |
| 920 throw new core.ArgumentError("Parameter serviceName is required."); |
| 921 } |
| 922 |
| 923 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/ro
llouts'; |
| 924 |
| 925 var _response = _requester.request(_url, |
| 926 "POST", |
| 927 body: _body, |
| 928 queryParams: _queryParams, |
| 929 uploadOptions: _uploadOptions, |
| 930 uploadMedia: _uploadMedia, |
| 931 downloadOptions: _downloadOptions); |
| 932 return _response.then((data) => new Operation.fromJson(data)); |
| 933 } |
| 934 |
| 935 /** |
| 936 * Gets a service configuration rollout. |
| 937 * |
| 938 * Request parameters: |
| 939 * |
| 940 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 941 * for naming |
| 942 * requirements. For example: `example.googleapis.com`. |
| 943 * |
| 944 * [rolloutId] - The id of the rollout resource. |
| 945 * |
| 946 * Completes with a [Rollout]. |
| 947 * |
| 948 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 949 * error. |
| 950 * |
| 951 * If the used [http_1.Client] completes with an error when making a REST |
| 952 * call, this method will complete with the same error. |
| 953 */ |
| 954 async.Future<Rollout> get(core.String serviceName, core.String rolloutId) { |
| 955 var _url = null; |
| 956 var _queryParams = new core.Map(); |
| 957 var _uploadMedia = null; |
| 958 var _uploadOptions = null; |
| 959 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 960 var _body = null; |
| 961 |
| 962 if (serviceName == null) { |
| 963 throw new core.ArgumentError("Parameter serviceName is required."); |
| 964 } |
| 965 if (rolloutId == null) { |
| 966 throw new core.ArgumentError("Parameter rolloutId is required."); |
| 967 } |
| 968 |
| 969 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/ro
llouts/' + commons.Escaper.ecapeVariable('$rolloutId'); |
| 970 |
| 971 var _response = _requester.request(_url, |
| 972 "GET", |
| 973 body: _body, |
| 974 queryParams: _queryParams, |
| 975 uploadOptions: _uploadOptions, |
| 976 uploadMedia: _uploadMedia, |
| 977 downloadOptions: _downloadOptions); |
| 978 return _response.then((data) => new Rollout.fromJson(data)); |
| 979 } |
| 980 |
| 981 /** |
| 982 * Lists the history of the service configuration rollouts for a managed |
| 983 * service, from the newest to the oldest. |
| 984 * |
| 985 * Request parameters: |
| 986 * |
| 987 * [serviceName] - The name of the service. See the `ServiceManager` overview |
| 988 * for naming |
| 989 * requirements. For example: `example.googleapis.com`. |
| 990 * |
| 991 * [pageSize] - The max number of items to include in the response list. |
| 992 * |
| 993 * [pageToken] - The token of the page to retrieve. |
| 994 * |
| 995 * Completes with a [ListServiceRolloutsResponse]. |
| 996 * |
| 997 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| 998 * error. |
| 999 * |
| 1000 * If the used [http_1.Client] completes with an error when making a REST |
| 1001 * call, this method will complete with the same error. |
| 1002 */ |
| 1003 async.Future<ListServiceRolloutsResponse> list(core.String serviceName, {core.
int pageSize, core.String pageToken}) { |
| 1004 var _url = null; |
| 1005 var _queryParams = new core.Map(); |
| 1006 var _uploadMedia = null; |
| 1007 var _uploadOptions = null; |
| 1008 var _downloadOptions = commons.DownloadOptions.Metadata; |
| 1009 var _body = null; |
| 1010 |
| 1011 if (serviceName == null) { |
| 1012 throw new core.ArgumentError("Parameter serviceName is required."); |
| 1013 } |
| 1014 if (pageSize != null) { |
| 1015 _queryParams["pageSize"] = ["${pageSize}"]; |
| 1016 } |
| 1017 if (pageToken != null) { |
| 1018 _queryParams["pageToken"] = [pageToken]; |
| 1019 } |
| 1020 |
| 1021 _url = 'v1/services/' + commons.Escaper.ecapeVariable('$serviceName') + '/ro
llouts'; |
| 1022 |
| 1023 var _response = _requester.request(_url, |
| 1024 "GET", |
| 1025 body: _body, |
| 1026 queryParams: _queryParams, |
| 1027 uploadOptions: _uploadOptions, |
| 1028 uploadMedia: _uploadMedia, |
| 1029 downloadOptions: _downloadOptions); |
| 1030 return _response.then((data) => new ListServiceRolloutsResponse.fromJson(dat
a)); |
| 1031 } |
| 1032 |
| 1033 } |
| 1034 |
| 1035 |
| 1036 |
| 1037 /** |
| 1038 * Generated advice about this change, used for providing more |
| 1039 * information about how a change will affect the existing service. |
| 1040 */ |
| 1041 class Advice { |
| 1042 /** |
| 1043 * Useful description for why this advice was applied and what actions should |
| 1044 * be taken to mitigate any implied risks. |
| 1045 */ |
| 1046 core.String description; |
| 1047 |
| 1048 Advice(); |
| 1049 |
| 1050 Advice.fromJson(core.Map _json) { |
| 1051 if (_json.containsKey("description")) { |
| 1052 description = _json["description"]; |
| 1053 } |
| 1054 } |
| 1055 |
| 1056 core.Map toJson() { |
| 1057 var _json = new core.Map(); |
| 1058 if (description != null) { |
| 1059 _json["description"] = description; |
| 1060 } |
| 1061 return _json; |
| 1062 } |
| 1063 } |
| 1064 |
| 1065 /** Api is a light-weight descriptor for a protocol buffer service. */ |
| 1066 class Api { |
| 1067 /** The methods of this api, in unspecified order. */ |
| 1068 core.List<Method> methods; |
| 1069 /** Included APIs. See Mixin. */ |
| 1070 core.List<Mixin> mixins; |
| 1071 /** |
| 1072 * The fully qualified name of this api, including package name |
| 1073 * followed by the api's simple name. |
| 1074 */ |
| 1075 core.String name; |
| 1076 /** Any metadata attached to the API. */ |
| 1077 core.List<Option> options; |
| 1078 /** |
| 1079 * Source context for the protocol buffer service represented by this |
| 1080 * message. |
| 1081 */ |
| 1082 SourceContext sourceContext; |
| 1083 /** |
| 1084 * The source syntax of the service. |
| 1085 * Possible string values are: |
| 1086 * - "SYNTAX_PROTO2" : Syntax `proto2`. |
| 1087 * - "SYNTAX_PROTO3" : Syntax `proto3`. |
| 1088 */ |
| 1089 core.String syntax; |
| 1090 /** |
| 1091 * A version string for this api. If specified, must have the form |
| 1092 * `major-version.minor-version`, as in `1.10`. If the minor version |
| 1093 * is omitted, it defaults to zero. If the entire version field is |
| 1094 * empty, the major version is derived from the package name, as |
| 1095 * outlined below. If the field is not empty, the version in the |
| 1096 * package name will be verified to be consistent with what is |
| 1097 * provided here. |
| 1098 * |
| 1099 * The versioning schema uses [semantic |
| 1100 * versioning](http://semver.org) where the major version number |
| 1101 * indicates a breaking change and the minor version an additive, |
| 1102 * non-breaking change. Both version numbers are signals to users |
| 1103 * what to expect from different versions, and should be carefully |
| 1104 * chosen based on the product plan. |
| 1105 * |
| 1106 * The major version is also reflected in the package name of the |
| 1107 * API, which must end in `v<major-version>`, as in |
| 1108 * `google.feature.v1`. For major versions 0 and 1, the suffix can |
| 1109 * be omitted. Zero major versions must only be used for |
| 1110 * experimental, none-GA apis. |
| 1111 */ |
| 1112 core.String version; |
| 1113 |
| 1114 Api(); |
| 1115 |
| 1116 Api.fromJson(core.Map _json) { |
| 1117 if (_json.containsKey("methods")) { |
| 1118 methods = _json["methods"].map((value) => new Method.fromJson(value)).toLi
st(); |
| 1119 } |
| 1120 if (_json.containsKey("mixins")) { |
| 1121 mixins = _json["mixins"].map((value) => new Mixin.fromJson(value)).toList(
); |
| 1122 } |
| 1123 if (_json.containsKey("name")) { |
| 1124 name = _json["name"]; |
| 1125 } |
| 1126 if (_json.containsKey("options")) { |
| 1127 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 1128 } |
| 1129 if (_json.containsKey("sourceContext")) { |
| 1130 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); |
| 1131 } |
| 1132 if (_json.containsKey("syntax")) { |
| 1133 syntax = _json["syntax"]; |
| 1134 } |
| 1135 if (_json.containsKey("version")) { |
| 1136 version = _json["version"]; |
| 1137 } |
| 1138 } |
| 1139 |
| 1140 core.Map toJson() { |
| 1141 var _json = new core.Map(); |
| 1142 if (methods != null) { |
| 1143 _json["methods"] = methods.map((value) => (value).toJson()).toList(); |
| 1144 } |
| 1145 if (mixins != null) { |
| 1146 _json["mixins"] = mixins.map((value) => (value).toJson()).toList(); |
| 1147 } |
| 1148 if (name != null) { |
| 1149 _json["name"] = name; |
| 1150 } |
| 1151 if (options != null) { |
| 1152 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 1153 } |
| 1154 if (sourceContext != null) { |
| 1155 _json["sourceContext"] = (sourceContext).toJson(); |
| 1156 } |
| 1157 if (syntax != null) { |
| 1158 _json["syntax"] = syntax; |
| 1159 } |
| 1160 if (version != null) { |
| 1161 _json["version"] = version; |
| 1162 } |
| 1163 return _json; |
| 1164 } |
| 1165 } |
| 1166 |
| 1167 /** |
| 1168 * Enables "data access" audit logging for a service and specifies a list |
| 1169 * of members that are log-exempted. |
| 1170 */ |
| 1171 class AuditConfig { |
| 1172 /** |
| 1173 * Specifies the identities that are exempted from "data access" audit |
| 1174 * logging for the `service` specified above. |
| 1175 * Follows the same format of Binding.members. |
| 1176 */ |
| 1177 core.List<core.String> exemptedMembers; |
| 1178 /** |
| 1179 * Specifies a service that will be enabled for "data access" audit |
| 1180 * logging. |
| 1181 * For example, `resourcemanager`, `storage`, `compute`. |
| 1182 * `allServices` is a special value that covers all services. |
| 1183 */ |
| 1184 core.String service; |
| 1185 |
| 1186 AuditConfig(); |
| 1187 |
| 1188 AuditConfig.fromJson(core.Map _json) { |
| 1189 if (_json.containsKey("exemptedMembers")) { |
| 1190 exemptedMembers = _json["exemptedMembers"]; |
| 1191 } |
| 1192 if (_json.containsKey("service")) { |
| 1193 service = _json["service"]; |
| 1194 } |
| 1195 } |
| 1196 |
| 1197 core.Map toJson() { |
| 1198 var _json = new core.Map(); |
| 1199 if (exemptedMembers != null) { |
| 1200 _json["exemptedMembers"] = exemptedMembers; |
| 1201 } |
| 1202 if (service != null) { |
| 1203 _json["service"] = service; |
| 1204 } |
| 1205 return _json; |
| 1206 } |
| 1207 } |
| 1208 |
| 1209 /** |
| 1210 * Configuration for an anthentication provider, including support for |
| 1211 * [JSON Web Token |
| 1212 * (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). |
| 1213 */ |
| 1214 class AuthProvider { |
| 1215 /** |
| 1216 * The unique identifier of the auth provider. It will be referred to by |
| 1217 * `AuthRequirement.provider_id`. |
| 1218 * |
| 1219 * Example: "bookstore_auth". |
| 1220 */ |
| 1221 core.String id; |
| 1222 /** |
| 1223 * Identifies the principal that issued the JWT. See |
| 1224 * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.
1 |
| 1225 * Usually a URL or an email address. |
| 1226 * |
| 1227 * Example: https://securetoken.google.com |
| 1228 * Example: 1234567-compute@developer.gserviceaccount.com |
| 1229 */ |
| 1230 core.String issuer; |
| 1231 /** |
| 1232 * URL of the provider's public key set to validate signature of the JWT. See |
| 1233 * [OpenID |
| 1234 * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#Provi
derMetadata). |
| 1235 * Optional if the key set document: |
| 1236 * - can be retrieved from |
| 1237 * [OpenID |
| 1238 * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html |
| 1239 * of the issuer. |
| 1240 * - can be inferred from the email domain of the issuer (e.g. a Google |
| 1241 * service account). |
| 1242 * |
| 1243 * Example: https://www.googleapis.com/oauth2/v1/certs |
| 1244 */ |
| 1245 core.String jwksUri; |
| 1246 |
| 1247 AuthProvider(); |
| 1248 |
| 1249 AuthProvider.fromJson(core.Map _json) { |
| 1250 if (_json.containsKey("id")) { |
| 1251 id = _json["id"]; |
| 1252 } |
| 1253 if (_json.containsKey("issuer")) { |
| 1254 issuer = _json["issuer"]; |
| 1255 } |
| 1256 if (_json.containsKey("jwksUri")) { |
| 1257 jwksUri = _json["jwksUri"]; |
| 1258 } |
| 1259 } |
| 1260 |
| 1261 core.Map toJson() { |
| 1262 var _json = new core.Map(); |
| 1263 if (id != null) { |
| 1264 _json["id"] = id; |
| 1265 } |
| 1266 if (issuer != null) { |
| 1267 _json["issuer"] = issuer; |
| 1268 } |
| 1269 if (jwksUri != null) { |
| 1270 _json["jwksUri"] = jwksUri; |
| 1271 } |
| 1272 return _json; |
| 1273 } |
| 1274 } |
| 1275 |
| 1276 /** |
| 1277 * User-defined authentication requirements, including support for |
| 1278 * [JSON Web Token |
| 1279 * (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). |
| 1280 */ |
| 1281 class AuthRequirement { |
| 1282 /** |
| 1283 * The list of JWT |
| 1284 * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#
section-4.1.3). |
| 1285 * that are allowed to access. A JWT containing any of these audiences will |
| 1286 * be accepted. When this setting is absent, only JWTs with audience |
| 1287 * "https://Service_name/API_name" |
| 1288 * will be accepted. For example, if no audiences are in the setting, |
| 1289 * LibraryService API will only accept JWTs with the following audience |
| 1290 * "https://library-example.googleapis.com/google.example.library.v1.LibrarySe
rvice". |
| 1291 * |
| 1292 * Example: |
| 1293 * |
| 1294 * audiences: bookstore_android.apps.googleusercontent.com, |
| 1295 * bookstore_web.apps.googleusercontent.com |
| 1296 */ |
| 1297 core.String audiences; |
| 1298 /** |
| 1299 * id from authentication provider. |
| 1300 * |
| 1301 * Example: |
| 1302 * |
| 1303 * provider_id: bookstore_auth |
| 1304 */ |
| 1305 core.String providerId; |
| 1306 |
| 1307 AuthRequirement(); |
| 1308 |
| 1309 AuthRequirement.fromJson(core.Map _json) { |
| 1310 if (_json.containsKey("audiences")) { |
| 1311 audiences = _json["audiences"]; |
| 1312 } |
| 1313 if (_json.containsKey("providerId")) { |
| 1314 providerId = _json["providerId"]; |
| 1315 } |
| 1316 } |
| 1317 |
| 1318 core.Map toJson() { |
| 1319 var _json = new core.Map(); |
| 1320 if (audiences != null) { |
| 1321 _json["audiences"] = audiences; |
| 1322 } |
| 1323 if (providerId != null) { |
| 1324 _json["providerId"] = providerId; |
| 1325 } |
| 1326 return _json; |
| 1327 } |
| 1328 } |
| 1329 |
| 1330 /** |
| 1331 * `Authentication` defines the authentication configuration for an API. |
| 1332 * |
| 1333 * Example for an API targeted for external use: |
| 1334 * |
| 1335 * name: calendar.googleapis.com |
| 1336 * authentication: |
| 1337 * rules: |
| 1338 * - selector: "*" |
| 1339 * oauth: |
| 1340 * canonical_scopes: https://www.googleapis.com/auth/calendar |
| 1341 * |
| 1342 * - selector: google.calendar.Delegate |
| 1343 * oauth: |
| 1344 * canonical_scopes: https://www.googleapis.com/auth/calendar.read |
| 1345 */ |
| 1346 class Authentication { |
| 1347 /** Defines a set of authentication providers that a service supports. */ |
| 1348 core.List<AuthProvider> providers; |
| 1349 /** |
| 1350 * A list of authentication rules that apply to individual API methods. |
| 1351 * |
| 1352 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 1353 */ |
| 1354 core.List<AuthenticationRule> rules; |
| 1355 |
| 1356 Authentication(); |
| 1357 |
| 1358 Authentication.fromJson(core.Map _json) { |
| 1359 if (_json.containsKey("providers")) { |
| 1360 providers = _json["providers"].map((value) => new AuthProvider.fromJson(va
lue)).toList(); |
| 1361 } |
| 1362 if (_json.containsKey("rules")) { |
| 1363 rules = _json["rules"].map((value) => new AuthenticationRule.fromJson(valu
e)).toList(); |
| 1364 } |
| 1365 } |
| 1366 |
| 1367 core.Map toJson() { |
| 1368 var _json = new core.Map(); |
| 1369 if (providers != null) { |
| 1370 _json["providers"] = providers.map((value) => (value).toJson()).toList(); |
| 1371 } |
| 1372 if (rules != null) { |
| 1373 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 1374 } |
| 1375 return _json; |
| 1376 } |
| 1377 } |
| 1378 |
| 1379 /** |
| 1380 * Authentication rules for the service. |
| 1381 * |
| 1382 * By default, if a method has any authentication requirements, every request |
| 1383 * must include a valid credential matching one of the requirements. |
| 1384 * It's an error to include more than one kind of credential in a single |
| 1385 * request. |
| 1386 * |
| 1387 * If a method doesn't have any auth requirements, request credentials will be |
| 1388 * ignored. |
| 1389 */ |
| 1390 class AuthenticationRule { |
| 1391 /** |
| 1392 * Whether to allow requests without a credential. If quota is enabled, an |
| 1393 * API key is required for such request to pass the quota check. |
| 1394 */ |
| 1395 core.bool allowWithoutCredential; |
| 1396 /** The requirements for OAuth credentials. */ |
| 1397 OAuthRequirements oauth; |
| 1398 /** Requirements for additional authentication providers. */ |
| 1399 core.List<AuthRequirement> requirements; |
| 1400 /** |
| 1401 * Selects the methods to which this rule applies. |
| 1402 * |
| 1403 * Refer to selector for syntax details. |
| 1404 */ |
| 1405 core.String selector; |
| 1406 |
| 1407 AuthenticationRule(); |
| 1408 |
| 1409 AuthenticationRule.fromJson(core.Map _json) { |
| 1410 if (_json.containsKey("allowWithoutCredential")) { |
| 1411 allowWithoutCredential = _json["allowWithoutCredential"]; |
| 1412 } |
| 1413 if (_json.containsKey("oauth")) { |
| 1414 oauth = new OAuthRequirements.fromJson(_json["oauth"]); |
| 1415 } |
| 1416 if (_json.containsKey("requirements")) { |
| 1417 requirements = _json["requirements"].map((value) => new AuthRequirement.fr
omJson(value)).toList(); |
| 1418 } |
| 1419 if (_json.containsKey("selector")) { |
| 1420 selector = _json["selector"]; |
| 1421 } |
| 1422 } |
| 1423 |
| 1424 core.Map toJson() { |
| 1425 var _json = new core.Map(); |
| 1426 if (allowWithoutCredential != null) { |
| 1427 _json["allowWithoutCredential"] = allowWithoutCredential; |
| 1428 } |
| 1429 if (oauth != null) { |
| 1430 _json["oauth"] = (oauth).toJson(); |
| 1431 } |
| 1432 if (requirements != null) { |
| 1433 _json["requirements"] = requirements.map((value) => (value).toJson()).toLi
st(); |
| 1434 } |
| 1435 if (selector != null) { |
| 1436 _json["selector"] = selector; |
| 1437 } |
| 1438 return _json; |
| 1439 } |
| 1440 } |
| 1441 |
| 1442 /** `Backend` defines the backend configuration for a service. */ |
| 1443 class Backend { |
| 1444 /** |
| 1445 * A list of API backend rules that apply to individual API methods. |
| 1446 * |
| 1447 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 1448 */ |
| 1449 core.List<BackendRule> rules; |
| 1450 |
| 1451 Backend(); |
| 1452 |
| 1453 Backend.fromJson(core.Map _json) { |
| 1454 if (_json.containsKey("rules")) { |
| 1455 rules = _json["rules"].map((value) => new BackendRule.fromJson(value)).toL
ist(); |
| 1456 } |
| 1457 } |
| 1458 |
| 1459 core.Map toJson() { |
| 1460 var _json = new core.Map(); |
| 1461 if (rules != null) { |
| 1462 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 1463 } |
| 1464 return _json; |
| 1465 } |
| 1466 } |
| 1467 |
| 1468 /** A backend rule provides configuration for an individual API element. */ |
| 1469 class BackendRule { |
| 1470 /** The address of the API backend. */ |
| 1471 core.String address; |
| 1472 /** |
| 1473 * The number of seconds to wait for a response from a request. The |
| 1474 * default depends on the deployment context. |
| 1475 */ |
| 1476 core.double deadline; |
| 1477 /** |
| 1478 * Selects the methods to which this rule applies. |
| 1479 * |
| 1480 * Refer to selector for syntax details. |
| 1481 */ |
| 1482 core.String selector; |
| 1483 |
| 1484 BackendRule(); |
| 1485 |
| 1486 BackendRule.fromJson(core.Map _json) { |
| 1487 if (_json.containsKey("address")) { |
| 1488 address = _json["address"]; |
| 1489 } |
| 1490 if (_json.containsKey("deadline")) { |
| 1491 deadline = _json["deadline"]; |
| 1492 } |
| 1493 if (_json.containsKey("selector")) { |
| 1494 selector = _json["selector"]; |
| 1495 } |
| 1496 } |
| 1497 |
| 1498 core.Map toJson() { |
| 1499 var _json = new core.Map(); |
| 1500 if (address != null) { |
| 1501 _json["address"] = address; |
| 1502 } |
| 1503 if (deadline != null) { |
| 1504 _json["deadline"] = deadline; |
| 1505 } |
| 1506 if (selector != null) { |
| 1507 _json["selector"] = selector; |
| 1508 } |
| 1509 return _json; |
| 1510 } |
| 1511 } |
| 1512 |
| 1513 /** Associates `members` with a `role`. */ |
| 1514 class Binding { |
| 1515 /** |
| 1516 * Specifies the identities requesting access for a Cloud Platform resource. |
| 1517 * `members` can have the following values: |
| 1518 * |
| 1519 * * `allUsers`: A special identifier that represents anyone who is |
| 1520 * on the internet; with or without a Google account. |
| 1521 * |
| 1522 * * `allAuthenticatedUsers`: A special identifier that represents anyone |
| 1523 * who is authenticated with a Google account or a service account. |
| 1524 * |
| 1525 * * `user:{emailid}`: An email address that represents a specific Google |
| 1526 * account. For example, `alice@gmail.com` or `joe@example.com`. |
| 1527 * |
| 1528 * * `serviceAccount:{emailid}`: An email address that represents a service |
| 1529 * account. For example, `my-other-app@appspot.gserviceaccount.com`. |
| 1530 * |
| 1531 * * `group:{emailid}`: An email address that represents a Google group. |
| 1532 * For example, `admins@example.com`. |
| 1533 * |
| 1534 * * `domain:{domain}`: A Google Apps domain name that represents all the |
| 1535 * users of that domain. For example, `google.com` or `example.com`. |
| 1536 */ |
| 1537 core.List<core.String> members; |
| 1538 /** |
| 1539 * Role that is assigned to `members`. |
| 1540 * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. |
| 1541 * Required |
| 1542 */ |
| 1543 core.String role; |
| 1544 |
| 1545 Binding(); |
| 1546 |
| 1547 Binding.fromJson(core.Map _json) { |
| 1548 if (_json.containsKey("members")) { |
| 1549 members = _json["members"]; |
| 1550 } |
| 1551 if (_json.containsKey("role")) { |
| 1552 role = _json["role"]; |
| 1553 } |
| 1554 } |
| 1555 |
| 1556 core.Map toJson() { |
| 1557 var _json = new core.Map(); |
| 1558 if (members != null) { |
| 1559 _json["members"] = members; |
| 1560 } |
| 1561 if (role != null) { |
| 1562 _json["role"] = role; |
| 1563 } |
| 1564 return _json; |
| 1565 } |
| 1566 } |
| 1567 |
| 1568 /** |
| 1569 * Change report associated with a particular service configuration. |
| 1570 * |
| 1571 * It contains a list of ConfigChanges based on the comparison between |
| 1572 * two service configurations. |
| 1573 */ |
| 1574 class ChangeReport { |
| 1575 /** |
| 1576 * List of changes between two service configurations. |
| 1577 * The changes will be alphabetically sorted based on the identifier |
| 1578 * of each change. |
| 1579 * A ConfigChange identifier is a dot separated path to the configuration. |
| 1580 * Example: visibility.rules[selector='LibraryService.CreateBook'].restriction |
| 1581 */ |
| 1582 core.List<ConfigChange> configChanges; |
| 1583 |
| 1584 ChangeReport(); |
| 1585 |
| 1586 ChangeReport.fromJson(core.Map _json) { |
| 1587 if (_json.containsKey("configChanges")) { |
| 1588 configChanges = _json["configChanges"].map((value) => new ConfigChange.fro
mJson(value)).toList(); |
| 1589 } |
| 1590 } |
| 1591 |
| 1592 core.Map toJson() { |
| 1593 var _json = new core.Map(); |
| 1594 if (configChanges != null) { |
| 1595 _json["configChanges"] = configChanges.map((value) => (value).toJson()).to
List(); |
| 1596 } |
| 1597 return _json; |
| 1598 } |
| 1599 } |
| 1600 |
| 1601 /** Write a Cloud Audit log */ |
| 1602 class CloudAuditOptions { |
| 1603 |
| 1604 CloudAuditOptions(); |
| 1605 |
| 1606 CloudAuditOptions.fromJson(core.Map _json) { |
| 1607 } |
| 1608 |
| 1609 core.Map toJson() { |
| 1610 var _json = new core.Map(); |
| 1611 return _json; |
| 1612 } |
| 1613 } |
| 1614 |
| 1615 /** A condition to be met. */ |
| 1616 class Condition { |
| 1617 /** |
| 1618 * Trusted attributes supplied by the IAM system. |
| 1619 * Possible string values are: |
| 1620 * - "NO_ATTR" : Default non-attribute. |
| 1621 * - "AUTHORITY" : Either principal or (if present) authority |
| 1622 * - "ATTRIBUTION" : selector |
| 1623 * Always the original principal, but making clear |
| 1624 */ |
| 1625 core.String iam; |
| 1626 /** |
| 1627 * An operator to apply the subject with. |
| 1628 * Possible string values are: |
| 1629 * - "NO_OP" : Default no-op. |
| 1630 * - "EQUALS" : DEPRECATED. Use IN instead. |
| 1631 * - "NOT_EQUALS" : DEPRECATED. Use NOT_IN instead. |
| 1632 * - "IN" : Set-inclusion check. |
| 1633 * - "NOT_IN" : Set-exclusion check. |
| 1634 * - "DISCHARGED" : Subject is discharged |
| 1635 */ |
| 1636 core.String op; |
| 1637 /** Trusted attributes discharged by the service. */ |
| 1638 core.String svc; |
| 1639 /** |
| 1640 * Trusted attributes supplied by any service that owns resources and uses |
| 1641 * the IAM system for access control. |
| 1642 * Possible string values are: |
| 1643 * - "NO_ATTR" : Default non-attribute type |
| 1644 * - "REGION" : Region of the resource |
| 1645 * - "SERVICE" : Service name |
| 1646 * - "NAME" : Resource name |
| 1647 * - "IP" : IP address of the caller |
| 1648 */ |
| 1649 core.String sys; |
| 1650 /** DEPRECATED. Use 'values' instead. */ |
| 1651 core.String value; |
| 1652 /** The objects of the condition. This is mutually exclusive with 'value'. */ |
| 1653 core.List<core.String> values; |
| 1654 |
| 1655 Condition(); |
| 1656 |
| 1657 Condition.fromJson(core.Map _json) { |
| 1658 if (_json.containsKey("iam")) { |
| 1659 iam = _json["iam"]; |
| 1660 } |
| 1661 if (_json.containsKey("op")) { |
| 1662 op = _json["op"]; |
| 1663 } |
| 1664 if (_json.containsKey("svc")) { |
| 1665 svc = _json["svc"]; |
| 1666 } |
| 1667 if (_json.containsKey("sys")) { |
| 1668 sys = _json["sys"]; |
| 1669 } |
| 1670 if (_json.containsKey("value")) { |
| 1671 value = _json["value"]; |
| 1672 } |
| 1673 if (_json.containsKey("values")) { |
| 1674 values = _json["values"]; |
| 1675 } |
| 1676 } |
| 1677 |
| 1678 core.Map toJson() { |
| 1679 var _json = new core.Map(); |
| 1680 if (iam != null) { |
| 1681 _json["iam"] = iam; |
| 1682 } |
| 1683 if (op != null) { |
| 1684 _json["op"] = op; |
| 1685 } |
| 1686 if (svc != null) { |
| 1687 _json["svc"] = svc; |
| 1688 } |
| 1689 if (sys != null) { |
| 1690 _json["sys"] = sys; |
| 1691 } |
| 1692 if (value != null) { |
| 1693 _json["value"] = value; |
| 1694 } |
| 1695 if (values != null) { |
| 1696 _json["values"] = values; |
| 1697 } |
| 1698 return _json; |
| 1699 } |
| 1700 } |
| 1701 |
| 1702 /** |
| 1703 * Output generated from semantically comparing two versions of a service |
| 1704 * configuration. |
| 1705 * |
| 1706 * Includes detailed information about a field that have changed with |
| 1707 * applicable advice about potential consequences for the change, such as |
| 1708 * backwards-incompatibility. |
| 1709 */ |
| 1710 class ConfigChange { |
| 1711 /** |
| 1712 * Collection of advice provided for this change, useful for determining the |
| 1713 * possible impact of this change. |
| 1714 */ |
| 1715 core.List<Advice> advices; |
| 1716 /** |
| 1717 * The type for this change, either ADDED, REMOVED, or MODIFIED. |
| 1718 * Possible string values are: |
| 1719 * - "CHANGE_TYPE_UNSPECIFIED" : No value was provided. |
| 1720 * - "ADDED" : The changed object exists in the 'new' service configuration, |
| 1721 * but not |
| 1722 * in the 'old' service configuration. |
| 1723 * - "REMOVED" : The changed object exists in the 'old' service configuration, |
| 1724 * but not |
| 1725 * in the 'new' service configuration. |
| 1726 * - "MODIFIED" : The changed object exists in both service configurations, |
| 1727 * but its value |
| 1728 * is different. |
| 1729 */ |
| 1730 core.String changeType; |
| 1731 /** |
| 1732 * Object hierarchy path to the change, with levels separated by a '.' |
| 1733 * character. For repeated fields, an applicable unique identifier field is |
| 1734 * used for the index (usually selector, name, or id). For maps, the term |
| 1735 * 'key' is used. If the field has no unique identifier, the numeric index |
| 1736 * is used. |
| 1737 * Examples: |
| 1738 * - |
| 1739 * visibility.rules[selector=="google.LibraryService.CreateBook"].restriction |
| 1740 * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value |
| 1741 * - logging.producer_destinations[0] |
| 1742 */ |
| 1743 core.String element; |
| 1744 /** |
| 1745 * Value of the changed object in the new Service configuration, |
| 1746 * in JSON format. This field will not be populated if ChangeType == REMOVED. |
| 1747 */ |
| 1748 core.String newValue; |
| 1749 /** |
| 1750 * Value of the changed object in the old Service configuration, |
| 1751 * in JSON format. This field will not be populated if ChangeType == ADDED. |
| 1752 */ |
| 1753 core.String oldValue; |
| 1754 |
| 1755 ConfigChange(); |
| 1756 |
| 1757 ConfigChange.fromJson(core.Map _json) { |
| 1758 if (_json.containsKey("advices")) { |
| 1759 advices = _json["advices"].map((value) => new Advice.fromJson(value)).toLi
st(); |
| 1760 } |
| 1761 if (_json.containsKey("changeType")) { |
| 1762 changeType = _json["changeType"]; |
| 1763 } |
| 1764 if (_json.containsKey("element")) { |
| 1765 element = _json["element"]; |
| 1766 } |
| 1767 if (_json.containsKey("newValue")) { |
| 1768 newValue = _json["newValue"]; |
| 1769 } |
| 1770 if (_json.containsKey("oldValue")) { |
| 1771 oldValue = _json["oldValue"]; |
| 1772 } |
| 1773 } |
| 1774 |
| 1775 core.Map toJson() { |
| 1776 var _json = new core.Map(); |
| 1777 if (advices != null) { |
| 1778 _json["advices"] = advices.map((value) => (value).toJson()).toList(); |
| 1779 } |
| 1780 if (changeType != null) { |
| 1781 _json["changeType"] = changeType; |
| 1782 } |
| 1783 if (element != null) { |
| 1784 _json["element"] = element; |
| 1785 } |
| 1786 if (newValue != null) { |
| 1787 _json["newValue"] = newValue; |
| 1788 } |
| 1789 if (oldValue != null) { |
| 1790 _json["oldValue"] = oldValue; |
| 1791 } |
| 1792 return _json; |
| 1793 } |
| 1794 } |
| 1795 |
| 1796 /** Generic specification of a source configuration file */ |
| 1797 class ConfigFile { |
| 1798 /** The bytes that constitute the file. */ |
| 1799 core.String fileContents; |
| 1800 core.List<core.int> get fileContentsAsBytes { |
| 1801 return convert.BASE64.decode(fileContents); |
| 1802 } |
| 1803 |
| 1804 void set fileContentsAsBytes(core.List<core.int> _bytes) { |
| 1805 fileContents = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll
("+", "-"); |
| 1806 } |
| 1807 /** The file name of the configuration file (full or relative path). */ |
| 1808 core.String filePath; |
| 1809 /** |
| 1810 * The type of configuration file this represents. |
| 1811 * Possible string values are: |
| 1812 * - "FILE_TYPE_UNSPECIFIED" : Unknown file type. |
| 1813 * - "SERVICE_CONFIG_YAML" : YAML-specification of service. |
| 1814 * - "OPEN_API_JSON" : OpenAPI specification, serialized in JSON. |
| 1815 * - "OPEN_API_YAML" : OpenAPI specification, serialized in YAML. |
| 1816 * - "FILE_DESCRIPTOR_SET_PROTO" : FileDescriptorSet, generated by protoc. |
| 1817 * |
| 1818 * To generate, use protoc with imports and source info included. |
| 1819 * For an example test.proto file, the following command would put the value |
| 1820 * in a new file named out.pb. |
| 1821 * |
| 1822 * $protoc --include_imports --include_source_info test.proto -o out.pb |
| 1823 */ |
| 1824 core.String fileType; |
| 1825 |
| 1826 ConfigFile(); |
| 1827 |
| 1828 ConfigFile.fromJson(core.Map _json) { |
| 1829 if (_json.containsKey("fileContents")) { |
| 1830 fileContents = _json["fileContents"]; |
| 1831 } |
| 1832 if (_json.containsKey("filePath")) { |
| 1833 filePath = _json["filePath"]; |
| 1834 } |
| 1835 if (_json.containsKey("fileType")) { |
| 1836 fileType = _json["fileType"]; |
| 1837 } |
| 1838 } |
| 1839 |
| 1840 core.Map toJson() { |
| 1841 var _json = new core.Map(); |
| 1842 if (fileContents != null) { |
| 1843 _json["fileContents"] = fileContents; |
| 1844 } |
| 1845 if (filePath != null) { |
| 1846 _json["filePath"] = filePath; |
| 1847 } |
| 1848 if (fileType != null) { |
| 1849 _json["fileType"] = fileType; |
| 1850 } |
| 1851 return _json; |
| 1852 } |
| 1853 } |
| 1854 |
| 1855 /** |
| 1856 * A set of options to cover use of source config within `ServiceManager` |
| 1857 * and related tools. |
| 1858 */ |
| 1859 class ConfigOptions { |
| 1860 |
| 1861 ConfigOptions(); |
| 1862 |
| 1863 ConfigOptions.fromJson(core.Map _json) { |
| 1864 } |
| 1865 |
| 1866 core.Map toJson() { |
| 1867 var _json = new core.Map(); |
| 1868 return _json; |
| 1869 } |
| 1870 } |
| 1871 |
| 1872 /** Represents a service configuration with its name and id. */ |
| 1873 class ConfigRef { |
| 1874 /** |
| 1875 * Resource name of a service config. It must have the following |
| 1876 * format: "services/{service name}/configs/{config id}". |
| 1877 */ |
| 1878 core.String name; |
| 1879 |
| 1880 ConfigRef(); |
| 1881 |
| 1882 ConfigRef.fromJson(core.Map _json) { |
| 1883 if (_json.containsKey("name")) { |
| 1884 name = _json["name"]; |
| 1885 } |
| 1886 } |
| 1887 |
| 1888 core.Map toJson() { |
| 1889 var _json = new core.Map(); |
| 1890 if (name != null) { |
| 1891 _json["name"] = name; |
| 1892 } |
| 1893 return _json; |
| 1894 } |
| 1895 } |
| 1896 |
| 1897 /** |
| 1898 * Represents a source file which is used to generate the service configuration |
| 1899 * defined by `google.api.Service`. |
| 1900 */ |
| 1901 class ConfigSource { |
| 1902 /** |
| 1903 * Set of source configuration files that are used to generate a service |
| 1904 * configuration (`google.api.Service`). |
| 1905 */ |
| 1906 core.List<ConfigFile> files; |
| 1907 /** |
| 1908 * A unique ID for a specific instance of this message, typically assigned |
| 1909 * by the client for tracking purpose. If empty, the server may choose to |
| 1910 * generate one instead. |
| 1911 */ |
| 1912 core.String id; |
| 1913 /** |
| 1914 * Options to cover use of source configuration within ServiceManager and |
| 1915 * tools |
| 1916 */ |
| 1917 ConfigOptions options; |
| 1918 |
| 1919 ConfigSource(); |
| 1920 |
| 1921 ConfigSource.fromJson(core.Map _json) { |
| 1922 if (_json.containsKey("files")) { |
| 1923 files = _json["files"].map((value) => new ConfigFile.fromJson(value)).toLi
st(); |
| 1924 } |
| 1925 if (_json.containsKey("id")) { |
| 1926 id = _json["id"]; |
| 1927 } |
| 1928 if (_json.containsKey("options")) { |
| 1929 options = new ConfigOptions.fromJson(_json["options"]); |
| 1930 } |
| 1931 } |
| 1932 |
| 1933 core.Map toJson() { |
| 1934 var _json = new core.Map(); |
| 1935 if (files != null) { |
| 1936 _json["files"] = files.map((value) => (value).toJson()).toList(); |
| 1937 } |
| 1938 if (id != null) { |
| 1939 _json["id"] = id; |
| 1940 } |
| 1941 if (options != null) { |
| 1942 _json["options"] = (options).toJson(); |
| 1943 } |
| 1944 return _json; |
| 1945 } |
| 1946 } |
| 1947 |
| 1948 /** |
| 1949 * `Context` defines which contexts an API requests. |
| 1950 * |
| 1951 * Example: |
| 1952 * |
| 1953 * context: |
| 1954 * rules: |
| 1955 * - selector: "*" |
| 1956 * requested: |
| 1957 * - google.rpc.context.ProjectContext |
| 1958 * - google.rpc.context.OriginContext |
| 1959 * |
| 1960 * The above specifies that all methods in the API request |
| 1961 * `google.rpc.context.ProjectContext` and |
| 1962 * `google.rpc.context.OriginContext`. |
| 1963 * |
| 1964 * Available context types are defined in package |
| 1965 * `google.rpc.context`. |
| 1966 */ |
| 1967 class Context { |
| 1968 /** |
| 1969 * A list of RPC context rules that apply to individual API methods. |
| 1970 * |
| 1971 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 1972 */ |
| 1973 core.List<ContextRule> rules; |
| 1974 |
| 1975 Context(); |
| 1976 |
| 1977 Context.fromJson(core.Map _json) { |
| 1978 if (_json.containsKey("rules")) { |
| 1979 rules = _json["rules"].map((value) => new ContextRule.fromJson(value)).toL
ist(); |
| 1980 } |
| 1981 } |
| 1982 |
| 1983 core.Map toJson() { |
| 1984 var _json = new core.Map(); |
| 1985 if (rules != null) { |
| 1986 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 1987 } |
| 1988 return _json; |
| 1989 } |
| 1990 } |
| 1991 |
| 1992 /** |
| 1993 * A context rule provides information about the context for an individual API |
| 1994 * element. |
| 1995 */ |
| 1996 class ContextRule { |
| 1997 /** A list of full type names of provided contexts. */ |
| 1998 core.List<core.String> provided; |
| 1999 /** A list of full type names of requested contexts. */ |
| 2000 core.List<core.String> requested; |
| 2001 /** |
| 2002 * Selects the methods to which this rule applies. |
| 2003 * |
| 2004 * Refer to selector for syntax details. |
| 2005 */ |
| 2006 core.String selector; |
| 2007 |
| 2008 ContextRule(); |
| 2009 |
| 2010 ContextRule.fromJson(core.Map _json) { |
| 2011 if (_json.containsKey("provided")) { |
| 2012 provided = _json["provided"]; |
| 2013 } |
| 2014 if (_json.containsKey("requested")) { |
| 2015 requested = _json["requested"]; |
| 2016 } |
| 2017 if (_json.containsKey("selector")) { |
| 2018 selector = _json["selector"]; |
| 2019 } |
| 2020 } |
| 2021 |
| 2022 core.Map toJson() { |
| 2023 var _json = new core.Map(); |
| 2024 if (provided != null) { |
| 2025 _json["provided"] = provided; |
| 2026 } |
| 2027 if (requested != null) { |
| 2028 _json["requested"] = requested; |
| 2029 } |
| 2030 if (selector != null) { |
| 2031 _json["selector"] = selector; |
| 2032 } |
| 2033 return _json; |
| 2034 } |
| 2035 } |
| 2036 |
| 2037 /** |
| 2038 * Selects and configures the service controller used by the service. The |
| 2039 * service controller handles features like abuse, quota, billing, logging, |
| 2040 * monitoring, etc. |
| 2041 */ |
| 2042 class Control { |
| 2043 /** |
| 2044 * The service control environment to use. If empty, no control plane |
| 2045 * feature (like quota and billing) will be enabled. |
| 2046 */ |
| 2047 core.String environment; |
| 2048 |
| 2049 Control(); |
| 2050 |
| 2051 Control.fromJson(core.Map _json) { |
| 2052 if (_json.containsKey("environment")) { |
| 2053 environment = _json["environment"]; |
| 2054 } |
| 2055 } |
| 2056 |
| 2057 core.Map toJson() { |
| 2058 var _json = new core.Map(); |
| 2059 if (environment != null) { |
| 2060 _json["environment"] = environment; |
| 2061 } |
| 2062 return _json; |
| 2063 } |
| 2064 } |
| 2065 |
| 2066 /** Options for counters */ |
| 2067 class CounterOptions { |
| 2068 /** The field value to attribute. */ |
| 2069 core.String field; |
| 2070 /** The metric to update. */ |
| 2071 core.String metric; |
| 2072 |
| 2073 CounterOptions(); |
| 2074 |
| 2075 CounterOptions.fromJson(core.Map _json) { |
| 2076 if (_json.containsKey("field")) { |
| 2077 field = _json["field"]; |
| 2078 } |
| 2079 if (_json.containsKey("metric")) { |
| 2080 metric = _json["metric"]; |
| 2081 } |
| 2082 } |
| 2083 |
| 2084 core.Map toJson() { |
| 2085 var _json = new core.Map(); |
| 2086 if (field != null) { |
| 2087 _json["field"] = field; |
| 2088 } |
| 2089 if (metric != null) { |
| 2090 _json["metric"] = metric; |
| 2091 } |
| 2092 return _json; |
| 2093 } |
| 2094 } |
| 2095 |
| 2096 /** |
| 2097 * Customize service error responses. For example, list any service |
| 2098 * specific protobuf types that can appear in error detail lists of |
| 2099 * error responses. |
| 2100 * |
| 2101 * Example: |
| 2102 * |
| 2103 * custom_error: |
| 2104 * types: |
| 2105 * - google.foo.v1.CustomError |
| 2106 * - google.foo.v1.AnotherError |
| 2107 */ |
| 2108 class CustomError { |
| 2109 /** |
| 2110 * The list of custom error rules that apply to individual API messages. |
| 2111 * |
| 2112 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 2113 */ |
| 2114 core.List<CustomErrorRule> rules; |
| 2115 /** |
| 2116 * The list of custom error detail types, e.g. 'google.foo.v1.CustomError'. |
| 2117 */ |
| 2118 core.List<core.String> types; |
| 2119 |
| 2120 CustomError(); |
| 2121 |
| 2122 CustomError.fromJson(core.Map _json) { |
| 2123 if (_json.containsKey("rules")) { |
| 2124 rules = _json["rules"].map((value) => new CustomErrorRule.fromJson(value))
.toList(); |
| 2125 } |
| 2126 if (_json.containsKey("types")) { |
| 2127 types = _json["types"]; |
| 2128 } |
| 2129 } |
| 2130 |
| 2131 core.Map toJson() { |
| 2132 var _json = new core.Map(); |
| 2133 if (rules != null) { |
| 2134 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 2135 } |
| 2136 if (types != null) { |
| 2137 _json["types"] = types; |
| 2138 } |
| 2139 return _json; |
| 2140 } |
| 2141 } |
| 2142 |
| 2143 /** A custom error rule. */ |
| 2144 class CustomErrorRule { |
| 2145 /** |
| 2146 * Mark this message as possible payload in error response. Otherwise, |
| 2147 * objects of this type will be filtered when they appear in error payload. |
| 2148 */ |
| 2149 core.bool isErrorType; |
| 2150 /** |
| 2151 * Selects messages to which this rule applies. |
| 2152 * |
| 2153 * Refer to selector for syntax details. |
| 2154 */ |
| 2155 core.String selector; |
| 2156 |
| 2157 CustomErrorRule(); |
| 2158 |
| 2159 CustomErrorRule.fromJson(core.Map _json) { |
| 2160 if (_json.containsKey("isErrorType")) { |
| 2161 isErrorType = _json["isErrorType"]; |
| 2162 } |
| 2163 if (_json.containsKey("selector")) { |
| 2164 selector = _json["selector"]; |
| 2165 } |
| 2166 } |
| 2167 |
| 2168 core.Map toJson() { |
| 2169 var _json = new core.Map(); |
| 2170 if (isErrorType != null) { |
| 2171 _json["isErrorType"] = isErrorType; |
| 2172 } |
| 2173 if (selector != null) { |
| 2174 _json["selector"] = selector; |
| 2175 } |
| 2176 return _json; |
| 2177 } |
| 2178 } |
| 2179 |
| 2180 /** A custom pattern is used for defining custom HTTP verb. */ |
| 2181 class CustomHttpPattern { |
| 2182 /** The name of this custom HTTP verb. */ |
| 2183 core.String kind; |
| 2184 /** The path matched by this custom verb. */ |
| 2185 core.String path; |
| 2186 |
| 2187 CustomHttpPattern(); |
| 2188 |
| 2189 CustomHttpPattern.fromJson(core.Map _json) { |
| 2190 if (_json.containsKey("kind")) { |
| 2191 kind = _json["kind"]; |
| 2192 } |
| 2193 if (_json.containsKey("path")) { |
| 2194 path = _json["path"]; |
| 2195 } |
| 2196 } |
| 2197 |
| 2198 core.Map toJson() { |
| 2199 var _json = new core.Map(); |
| 2200 if (kind != null) { |
| 2201 _json["kind"] = kind; |
| 2202 } |
| 2203 if (path != null) { |
| 2204 _json["path"] = path; |
| 2205 } |
| 2206 return _json; |
| 2207 } |
| 2208 } |
| 2209 |
| 2210 /** Write a Data Access (Gin) log */ |
| 2211 class DataAccessOptions { |
| 2212 |
| 2213 DataAccessOptions(); |
| 2214 |
| 2215 DataAccessOptions.fromJson(core.Map _json) { |
| 2216 } |
| 2217 |
| 2218 core.Map toJson() { |
| 2219 var _json = new core.Map(); |
| 2220 return _json; |
| 2221 } |
| 2222 } |
| 2223 |
| 2224 /** |
| 2225 * Strategy used to delete a service. This strategy is a placeholder only |
| 2226 * used by the system generated rollout to delete a service. |
| 2227 */ |
| 2228 class DeleteServiceStrategy { |
| 2229 |
| 2230 DeleteServiceStrategy(); |
| 2231 |
| 2232 DeleteServiceStrategy.fromJson(core.Map _json) { |
| 2233 } |
| 2234 |
| 2235 core.Map toJson() { |
| 2236 var _json = new core.Map(); |
| 2237 return _json; |
| 2238 } |
| 2239 } |
| 2240 |
| 2241 /** Represents a diagnostic message (error or warning) */ |
| 2242 class Diagnostic { |
| 2243 /** |
| 2244 * The kind of diagnostic information provided. |
| 2245 * Possible string values are: |
| 2246 * - "WARNING" : Warnings and errors |
| 2247 * - "ERROR" : Only errors |
| 2248 */ |
| 2249 core.String kind; |
| 2250 /** File name and line number of the error or warning. */ |
| 2251 core.String location; |
| 2252 /** Message describing the error or warning. */ |
| 2253 core.String message; |
| 2254 |
| 2255 Diagnostic(); |
| 2256 |
| 2257 Diagnostic.fromJson(core.Map _json) { |
| 2258 if (_json.containsKey("kind")) { |
| 2259 kind = _json["kind"]; |
| 2260 } |
| 2261 if (_json.containsKey("location")) { |
| 2262 location = _json["location"]; |
| 2263 } |
| 2264 if (_json.containsKey("message")) { |
| 2265 message = _json["message"]; |
| 2266 } |
| 2267 } |
| 2268 |
| 2269 core.Map toJson() { |
| 2270 var _json = new core.Map(); |
| 2271 if (kind != null) { |
| 2272 _json["kind"] = kind; |
| 2273 } |
| 2274 if (location != null) { |
| 2275 _json["location"] = location; |
| 2276 } |
| 2277 if (message != null) { |
| 2278 _json["message"] = message; |
| 2279 } |
| 2280 return _json; |
| 2281 } |
| 2282 } |
| 2283 |
| 2284 /** Request message for DisableService method. */ |
| 2285 class DisableServiceRequest { |
| 2286 /** |
| 2287 * The identity of consumer resource which service disablement will be |
| 2288 * applied to. |
| 2289 * |
| 2290 * The Google Service Management implementation accepts the following |
| 2291 * forms: "project:<project_id>", "project_number:<project_number>". |
| 2292 * |
| 2293 * Note: this is made compatible with |
| 2294 * google.api.servicecontrol.v1.Operation.consumer_id. |
| 2295 */ |
| 2296 core.String consumerId; |
| 2297 |
| 2298 DisableServiceRequest(); |
| 2299 |
| 2300 DisableServiceRequest.fromJson(core.Map _json) { |
| 2301 if (_json.containsKey("consumerId")) { |
| 2302 consumerId = _json["consumerId"]; |
| 2303 } |
| 2304 } |
| 2305 |
| 2306 core.Map toJson() { |
| 2307 var _json = new core.Map(); |
| 2308 if (consumerId != null) { |
| 2309 _json["consumerId"] = consumerId; |
| 2310 } |
| 2311 return _json; |
| 2312 } |
| 2313 } |
| 2314 |
| 2315 /** |
| 2316 * `Documentation` provides the information for describing a service. |
| 2317 * |
| 2318 * Example: |
| 2319 * <pre><code>documentation: |
| 2320 * summary: > |
| 2321 * The Google Calendar API gives access |
| 2322 * to most calendar features. |
| 2323 * pages: |
| 2324 * - name: Overview |
| 2325 * content: (== include google/foo/overview.md ==) |
| 2326 * - name: Tutorial |
| 2327 * content: (== include google/foo/tutorial.md ==) |
| 2328 * subpages; |
| 2329 * - name: Java |
| 2330 * content: (== include google/foo/tutorial_java.md ==) |
| 2331 * rules: |
| 2332 * - selector: google.calendar.Calendar.Get |
| 2333 * description: > |
| 2334 * ... |
| 2335 * - selector: google.calendar.Calendar.Put |
| 2336 * description: > |
| 2337 * ... |
| 2338 * </code></pre> |
| 2339 * Documentation is provided in markdown syntax. In addition to |
| 2340 * standard markdown features, definition lists, tables and fenced |
| 2341 * code blocks are supported. Section headers can be provided and are |
| 2342 * interpreted relative to the section nesting of the context where |
| 2343 * a documentation fragment is embedded. |
| 2344 * |
| 2345 * Documentation from the IDL is merged with documentation defined |
| 2346 * via the config at normalization time, where documentation provided |
| 2347 * by config rules overrides IDL provided. |
| 2348 * |
| 2349 * A number of constructs specific to the API platform are supported |
| 2350 * in documentation text. |
| 2351 * |
| 2352 * In order to reference a proto element, the following |
| 2353 * notation can be used: |
| 2354 * <pre><code>[fully.qualified.proto.name][]</code></pre> |
| 2355 * To override the display text used for the link, this can be used: |
| 2356 * <pre><code>[display text][fully.qualified.proto.name]</code></pre> |
| 2357 * Text can be excluded from doc using the following notation: |
| 2358 * <pre><code>(-- internal comment --)</code></pre> |
| 2359 * Comments can be made conditional using a visibility label. The below |
| 2360 * text will be only rendered if the `BETA` label is available: |
| 2361 * <pre><code>(--BETA: comment for BETA users --)</code></pre> |
| 2362 * A few directives are available in documentation. Note that |
| 2363 * directives must appear on a single line to be properly |
| 2364 * identified. The `include` directive includes a markdown file from |
| 2365 * an external source: |
| 2366 * <pre><code>(== include path/to/file ==)</code></pre> |
| 2367 * The `resource_for` directive marks a message to be the resource of |
| 2368 * a collection in REST view. If it is not specified, tools attempt |
| 2369 * to infer the resource from the operations in a collection: |
| 2370 * <pre><code>(== resource_for v1.shelves.books ==)</code></pre> |
| 2371 * The directive `suppress_warning` does not directly affect documentation |
| 2372 * and is documented together with service config validation. |
| 2373 */ |
| 2374 class Documentation { |
| 2375 /** The URL to the root of documentation. */ |
| 2376 core.String documentationRootUrl; |
| 2377 /** |
| 2378 * Declares a single overview page. For example: |
| 2379 * <pre><code>documentation: |
| 2380 * summary: ... |
| 2381 * overview: (== include overview.md ==) |
| 2382 * </code></pre> |
| 2383 * This is a shortcut for the following declaration (using pages style): |
| 2384 * <pre><code>documentation: |
| 2385 * summary: ... |
| 2386 * pages: |
| 2387 * - name: Overview |
| 2388 * content: (== include overview.md ==) |
| 2389 * </code></pre> |
| 2390 * Note: you cannot specify both `overview` field and `pages` field. |
| 2391 */ |
| 2392 core.String overview; |
| 2393 /** The top level pages for the documentation set. */ |
| 2394 core.List<Page> pages; |
| 2395 /** |
| 2396 * A list of documentation rules that apply to individual API elements. |
| 2397 * |
| 2398 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 2399 */ |
| 2400 core.List<DocumentationRule> rules; |
| 2401 /** |
| 2402 * A short summary of what the service does. Can only be provided by |
| 2403 * plain text. |
| 2404 */ |
| 2405 core.String summary; |
| 2406 |
| 2407 Documentation(); |
| 2408 |
| 2409 Documentation.fromJson(core.Map _json) { |
| 2410 if (_json.containsKey("documentationRootUrl")) { |
| 2411 documentationRootUrl = _json["documentationRootUrl"]; |
| 2412 } |
| 2413 if (_json.containsKey("overview")) { |
| 2414 overview = _json["overview"]; |
| 2415 } |
| 2416 if (_json.containsKey("pages")) { |
| 2417 pages = _json["pages"].map((value) => new Page.fromJson(value)).toList(); |
| 2418 } |
| 2419 if (_json.containsKey("rules")) { |
| 2420 rules = _json["rules"].map((value) => new DocumentationRule.fromJson(value
)).toList(); |
| 2421 } |
| 2422 if (_json.containsKey("summary")) { |
| 2423 summary = _json["summary"]; |
| 2424 } |
| 2425 } |
| 2426 |
| 2427 core.Map toJson() { |
| 2428 var _json = new core.Map(); |
| 2429 if (documentationRootUrl != null) { |
| 2430 _json["documentationRootUrl"] = documentationRootUrl; |
| 2431 } |
| 2432 if (overview != null) { |
| 2433 _json["overview"] = overview; |
| 2434 } |
| 2435 if (pages != null) { |
| 2436 _json["pages"] = pages.map((value) => (value).toJson()).toList(); |
| 2437 } |
| 2438 if (rules != null) { |
| 2439 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 2440 } |
| 2441 if (summary != null) { |
| 2442 _json["summary"] = summary; |
| 2443 } |
| 2444 return _json; |
| 2445 } |
| 2446 } |
| 2447 |
| 2448 /** A documentation rule provides information about individual API elements. */ |
| 2449 class DocumentationRule { |
| 2450 /** |
| 2451 * Deprecation description of the selected element(s). It can be provided if |
| 2452 * an |
| 2453 * element is marked as `deprecated`. |
| 2454 */ |
| 2455 core.String deprecationDescription; |
| 2456 /** Description of the selected API(s). */ |
| 2457 core.String description; |
| 2458 /** |
| 2459 * The selector is a comma-separated list of patterns. Each pattern is a |
| 2460 * qualified name of the element which may end in "*", indicating a wildcard. |
| 2461 * Wildcards are only allowed at the end and for a whole component of the |
| 2462 * qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To |
| 2463 * specify a default for all applicable elements, the whole pattern "*" |
| 2464 * is used. |
| 2465 */ |
| 2466 core.String selector; |
| 2467 |
| 2468 DocumentationRule(); |
| 2469 |
| 2470 DocumentationRule.fromJson(core.Map _json) { |
| 2471 if (_json.containsKey("deprecationDescription")) { |
| 2472 deprecationDescription = _json["deprecationDescription"]; |
| 2473 } |
| 2474 if (_json.containsKey("description")) { |
| 2475 description = _json["description"]; |
| 2476 } |
| 2477 if (_json.containsKey("selector")) { |
| 2478 selector = _json["selector"]; |
| 2479 } |
| 2480 } |
| 2481 |
| 2482 core.Map toJson() { |
| 2483 var _json = new core.Map(); |
| 2484 if (deprecationDescription != null) { |
| 2485 _json["deprecationDescription"] = deprecationDescription; |
| 2486 } |
| 2487 if (description != null) { |
| 2488 _json["description"] = description; |
| 2489 } |
| 2490 if (selector != null) { |
| 2491 _json["selector"] = selector; |
| 2492 } |
| 2493 return _json; |
| 2494 } |
| 2495 } |
| 2496 |
| 2497 /** Request message for EnableService method. */ |
| 2498 class EnableServiceRequest { |
| 2499 /** |
| 2500 * The identity of consumer resource which service enablement will be |
| 2501 * applied to. |
| 2502 * |
| 2503 * The Google Service Management implementation accepts the following |
| 2504 * forms: "project:<project_id>", "project_number:<project_number>". |
| 2505 * |
| 2506 * Note: this is made compatible with |
| 2507 * google.api.servicecontrol.v1.Operation.consumer_id. |
| 2508 */ |
| 2509 core.String consumerId; |
| 2510 |
| 2511 EnableServiceRequest(); |
| 2512 |
| 2513 EnableServiceRequest.fromJson(core.Map _json) { |
| 2514 if (_json.containsKey("consumerId")) { |
| 2515 consumerId = _json["consumerId"]; |
| 2516 } |
| 2517 } |
| 2518 |
| 2519 core.Map toJson() { |
| 2520 var _json = new core.Map(); |
| 2521 if (consumerId != null) { |
| 2522 _json["consumerId"] = consumerId; |
| 2523 } |
| 2524 return _json; |
| 2525 } |
| 2526 } |
| 2527 |
| 2528 /** Enum type definition. */ |
| 2529 class Enum { |
| 2530 /** Enum value definitions. */ |
| 2531 core.List<EnumValue> enumvalue; |
| 2532 /** Enum type name. */ |
| 2533 core.String name; |
| 2534 /** Protocol buffer options. */ |
| 2535 core.List<Option> options; |
| 2536 /** The source context. */ |
| 2537 SourceContext sourceContext; |
| 2538 /** |
| 2539 * The source syntax. |
| 2540 * Possible string values are: |
| 2541 * - "SYNTAX_PROTO2" : Syntax `proto2`. |
| 2542 * - "SYNTAX_PROTO3" : Syntax `proto3`. |
| 2543 */ |
| 2544 core.String syntax; |
| 2545 |
| 2546 Enum(); |
| 2547 |
| 2548 Enum.fromJson(core.Map _json) { |
| 2549 if (_json.containsKey("enumvalue")) { |
| 2550 enumvalue = _json["enumvalue"].map((value) => new EnumValue.fromJson(value
)).toList(); |
| 2551 } |
| 2552 if (_json.containsKey("name")) { |
| 2553 name = _json["name"]; |
| 2554 } |
| 2555 if (_json.containsKey("options")) { |
| 2556 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 2557 } |
| 2558 if (_json.containsKey("sourceContext")) { |
| 2559 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); |
| 2560 } |
| 2561 if (_json.containsKey("syntax")) { |
| 2562 syntax = _json["syntax"]; |
| 2563 } |
| 2564 } |
| 2565 |
| 2566 core.Map toJson() { |
| 2567 var _json = new core.Map(); |
| 2568 if (enumvalue != null) { |
| 2569 _json["enumvalue"] = enumvalue.map((value) => (value).toJson()).toList(); |
| 2570 } |
| 2571 if (name != null) { |
| 2572 _json["name"] = name; |
| 2573 } |
| 2574 if (options != null) { |
| 2575 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 2576 } |
| 2577 if (sourceContext != null) { |
| 2578 _json["sourceContext"] = (sourceContext).toJson(); |
| 2579 } |
| 2580 if (syntax != null) { |
| 2581 _json["syntax"] = syntax; |
| 2582 } |
| 2583 return _json; |
| 2584 } |
| 2585 } |
| 2586 |
| 2587 /** Enum value definition. */ |
| 2588 class EnumValue { |
| 2589 /** Enum value name. */ |
| 2590 core.String name; |
| 2591 /** Enum value number. */ |
| 2592 core.int number; |
| 2593 /** Protocol buffer options. */ |
| 2594 core.List<Option> options; |
| 2595 |
| 2596 EnumValue(); |
| 2597 |
| 2598 EnumValue.fromJson(core.Map _json) { |
| 2599 if (_json.containsKey("name")) { |
| 2600 name = _json["name"]; |
| 2601 } |
| 2602 if (_json.containsKey("number")) { |
| 2603 number = _json["number"]; |
| 2604 } |
| 2605 if (_json.containsKey("options")) { |
| 2606 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 2607 } |
| 2608 } |
| 2609 |
| 2610 core.Map toJson() { |
| 2611 var _json = new core.Map(); |
| 2612 if (name != null) { |
| 2613 _json["name"] = name; |
| 2614 } |
| 2615 if (number != null) { |
| 2616 _json["number"] = number; |
| 2617 } |
| 2618 if (options != null) { |
| 2619 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 2620 } |
| 2621 return _json; |
| 2622 } |
| 2623 } |
| 2624 |
| 2625 /** A single field of a message type. */ |
| 2626 class Field { |
| 2627 /** |
| 2628 * The field cardinality. |
| 2629 * Possible string values are: |
| 2630 * - "CARDINALITY_UNKNOWN" : For fields with unknown cardinality. |
| 2631 * - "CARDINALITY_OPTIONAL" : For optional fields. |
| 2632 * - "CARDINALITY_REQUIRED" : For required fields. Proto2 syntax only. |
| 2633 * - "CARDINALITY_REPEATED" : For repeated fields. |
| 2634 */ |
| 2635 core.String cardinality; |
| 2636 /** |
| 2637 * The string value of the default value of this field. Proto2 syntax only. |
| 2638 */ |
| 2639 core.String defaultValue; |
| 2640 /** The field JSON name. */ |
| 2641 core.String jsonName; |
| 2642 /** |
| 2643 * The field type. |
| 2644 * Possible string values are: |
| 2645 * - "TYPE_UNKNOWN" : Field type unknown. |
| 2646 * - "TYPE_DOUBLE" : Field type double. |
| 2647 * - "TYPE_FLOAT" : Field type float. |
| 2648 * - "TYPE_INT64" : Field type int64. |
| 2649 * - "TYPE_UINT64" : Field type uint64. |
| 2650 * - "TYPE_INT32" : Field type int32. |
| 2651 * - "TYPE_FIXED64" : Field type fixed64. |
| 2652 * - "TYPE_FIXED32" : Field type fixed32. |
| 2653 * - "TYPE_BOOL" : Field type bool. |
| 2654 * - "TYPE_STRING" : Field type string. |
| 2655 * - "TYPE_GROUP" : Field type group. Proto2 syntax only, and deprecated. |
| 2656 * - "TYPE_MESSAGE" : Field type message. |
| 2657 * - "TYPE_BYTES" : Field type bytes. |
| 2658 * - "TYPE_UINT32" : Field type uint32. |
| 2659 * - "TYPE_ENUM" : Field type enum. |
| 2660 * - "TYPE_SFIXED32" : Field type sfixed32. |
| 2661 * - "TYPE_SFIXED64" : Field type sfixed64. |
| 2662 * - "TYPE_SINT32" : Field type sint32. |
| 2663 * - "TYPE_SINT64" : Field type sint64. |
| 2664 */ |
| 2665 core.String kind; |
| 2666 /** The field name. */ |
| 2667 core.String name; |
| 2668 /** The field number. */ |
| 2669 core.int number; |
| 2670 /** |
| 2671 * The index of the field type in `Type.oneofs`, for message or enumeration |
| 2672 * types. The first type has index 1; zero means the type is not in the list. |
| 2673 */ |
| 2674 core.int oneofIndex; |
| 2675 /** The protocol buffer options. */ |
| 2676 core.List<Option> options; |
| 2677 /** Whether to use alternative packed wire representation. */ |
| 2678 core.bool packed; |
| 2679 /** |
| 2680 * The field type URL, without the scheme, for message or enumeration |
| 2681 * types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. |
| 2682 */ |
| 2683 core.String typeUrl; |
| 2684 |
| 2685 Field(); |
| 2686 |
| 2687 Field.fromJson(core.Map _json) { |
| 2688 if (_json.containsKey("cardinality")) { |
| 2689 cardinality = _json["cardinality"]; |
| 2690 } |
| 2691 if (_json.containsKey("defaultValue")) { |
| 2692 defaultValue = _json["defaultValue"]; |
| 2693 } |
| 2694 if (_json.containsKey("jsonName")) { |
| 2695 jsonName = _json["jsonName"]; |
| 2696 } |
| 2697 if (_json.containsKey("kind")) { |
| 2698 kind = _json["kind"]; |
| 2699 } |
| 2700 if (_json.containsKey("name")) { |
| 2701 name = _json["name"]; |
| 2702 } |
| 2703 if (_json.containsKey("number")) { |
| 2704 number = _json["number"]; |
| 2705 } |
| 2706 if (_json.containsKey("oneofIndex")) { |
| 2707 oneofIndex = _json["oneofIndex"]; |
| 2708 } |
| 2709 if (_json.containsKey("options")) { |
| 2710 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 2711 } |
| 2712 if (_json.containsKey("packed")) { |
| 2713 packed = _json["packed"]; |
| 2714 } |
| 2715 if (_json.containsKey("typeUrl")) { |
| 2716 typeUrl = _json["typeUrl"]; |
| 2717 } |
| 2718 } |
| 2719 |
| 2720 core.Map toJson() { |
| 2721 var _json = new core.Map(); |
| 2722 if (cardinality != null) { |
| 2723 _json["cardinality"] = cardinality; |
| 2724 } |
| 2725 if (defaultValue != null) { |
| 2726 _json["defaultValue"] = defaultValue; |
| 2727 } |
| 2728 if (jsonName != null) { |
| 2729 _json["jsonName"] = jsonName; |
| 2730 } |
| 2731 if (kind != null) { |
| 2732 _json["kind"] = kind; |
| 2733 } |
| 2734 if (name != null) { |
| 2735 _json["name"] = name; |
| 2736 } |
| 2737 if (number != null) { |
| 2738 _json["number"] = number; |
| 2739 } |
| 2740 if (oneofIndex != null) { |
| 2741 _json["oneofIndex"] = oneofIndex; |
| 2742 } |
| 2743 if (options != null) { |
| 2744 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 2745 } |
| 2746 if (packed != null) { |
| 2747 _json["packed"] = packed; |
| 2748 } |
| 2749 if (typeUrl != null) { |
| 2750 _json["typeUrl"] = typeUrl; |
| 2751 } |
| 2752 return _json; |
| 2753 } |
| 2754 } |
| 2755 |
| 2756 /** Request message for GenerateConfigReport method. */ |
| 2757 class GenerateConfigReportRequest { |
| 2758 /** |
| 2759 * Service configuration for which we want to generate the report. |
| 2760 * For this version of API, the supported types are |
| 2761 * google.api.servicemanagement.v1.ConfigRef, |
| 2762 * google.api.servicemanagement.v1.ConfigSource, |
| 2763 * and google.api.Service |
| 2764 * |
| 2765 * The values for Object must be JSON objects. It can consist of `num`, |
| 2766 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 2767 */ |
| 2768 core.Map<core.String, core.Object> newConfig; |
| 2769 /** |
| 2770 * Service configuration against which the comparison will be done. |
| 2771 * For this version of API, the supported types are |
| 2772 * google.api.servicemanagement.v1.ConfigRef, |
| 2773 * google.api.servicemanagement.v1.ConfigSource, |
| 2774 * and google.api.Service |
| 2775 * |
| 2776 * The values for Object must be JSON objects. It can consist of `num`, |
| 2777 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 2778 */ |
| 2779 core.Map<core.String, core.Object> oldConfig; |
| 2780 |
| 2781 GenerateConfigReportRequest(); |
| 2782 |
| 2783 GenerateConfigReportRequest.fromJson(core.Map _json) { |
| 2784 if (_json.containsKey("newConfig")) { |
| 2785 newConfig = _json["newConfig"]; |
| 2786 } |
| 2787 if (_json.containsKey("oldConfig")) { |
| 2788 oldConfig = _json["oldConfig"]; |
| 2789 } |
| 2790 } |
| 2791 |
| 2792 core.Map toJson() { |
| 2793 var _json = new core.Map(); |
| 2794 if (newConfig != null) { |
| 2795 _json["newConfig"] = newConfig; |
| 2796 } |
| 2797 if (oldConfig != null) { |
| 2798 _json["oldConfig"] = oldConfig; |
| 2799 } |
| 2800 return _json; |
| 2801 } |
| 2802 } |
| 2803 |
| 2804 /** Response message for GenerateConfigReport method. */ |
| 2805 class GenerateConfigReportResponse { |
| 2806 /** |
| 2807 * list of ChangeReport, each corresponding to comparison between two |
| 2808 * service configurations. |
| 2809 */ |
| 2810 core.List<ChangeReport> changeReports; |
| 2811 /** |
| 2812 * Errors / Linter warnings associated with the service definition this |
| 2813 * report |
| 2814 * belongs to. |
| 2815 */ |
| 2816 core.List<Diagnostic> diagnostics; |
| 2817 /** ID of the service configuration this report belongs to. */ |
| 2818 core.String id; |
| 2819 /** Name of the service this report belongs to. */ |
| 2820 core.String serviceName; |
| 2821 |
| 2822 GenerateConfigReportResponse(); |
| 2823 |
| 2824 GenerateConfigReportResponse.fromJson(core.Map _json) { |
| 2825 if (_json.containsKey("changeReports")) { |
| 2826 changeReports = _json["changeReports"].map((value) => new ChangeReport.fro
mJson(value)).toList(); |
| 2827 } |
| 2828 if (_json.containsKey("diagnostics")) { |
| 2829 diagnostics = _json["diagnostics"].map((value) => new Diagnostic.fromJson(
value)).toList(); |
| 2830 } |
| 2831 if (_json.containsKey("id")) { |
| 2832 id = _json["id"]; |
| 2833 } |
| 2834 if (_json.containsKey("serviceName")) { |
| 2835 serviceName = _json["serviceName"]; |
| 2836 } |
| 2837 } |
| 2838 |
| 2839 core.Map toJson() { |
| 2840 var _json = new core.Map(); |
| 2841 if (changeReports != null) { |
| 2842 _json["changeReports"] = changeReports.map((value) => (value).toJson()).to
List(); |
| 2843 } |
| 2844 if (diagnostics != null) { |
| 2845 _json["diagnostics"] = diagnostics.map((value) => (value).toJson()).toList
(); |
| 2846 } |
| 2847 if (id != null) { |
| 2848 _json["id"] = id; |
| 2849 } |
| 2850 if (serviceName != null) { |
| 2851 _json["serviceName"] = serviceName; |
| 2852 } |
| 2853 return _json; |
| 2854 } |
| 2855 } |
| 2856 |
| 2857 /** Request message for `GetIamPolicy` method. */ |
| 2858 class GetIamPolicyRequest { |
| 2859 |
| 2860 GetIamPolicyRequest(); |
| 2861 |
| 2862 GetIamPolicyRequest.fromJson(core.Map _json) { |
| 2863 } |
| 2864 |
| 2865 core.Map toJson() { |
| 2866 var _json = new core.Map(); |
| 2867 return _json; |
| 2868 } |
| 2869 } |
| 2870 |
| 2871 /** |
| 2872 * Defines the HTTP configuration for a service. It contains a list of |
| 2873 * HttpRule, each specifying the mapping of an RPC method |
| 2874 * to one or more HTTP REST API methods. |
| 2875 */ |
| 2876 class Http { |
| 2877 /** |
| 2878 * A list of HTTP configuration rules that apply to individual API methods. |
| 2879 * |
| 2880 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 2881 */ |
| 2882 core.List<HttpRule> rules; |
| 2883 |
| 2884 Http(); |
| 2885 |
| 2886 Http.fromJson(core.Map _json) { |
| 2887 if (_json.containsKey("rules")) { |
| 2888 rules = _json["rules"].map((value) => new HttpRule.fromJson(value)).toList
(); |
| 2889 } |
| 2890 } |
| 2891 |
| 2892 core.Map toJson() { |
| 2893 var _json = new core.Map(); |
| 2894 if (rules != null) { |
| 2895 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 2896 } |
| 2897 return _json; |
| 2898 } |
| 2899 } |
| 2900 |
| 2901 /** |
| 2902 * `HttpRule` defines the mapping of an RPC method to one or more HTTP |
| 2903 * REST APIs. The mapping determines what portions of the request |
| 2904 * message are populated from the path, query parameters, or body of |
| 2905 * the HTTP request. The mapping is typically specified as an |
| 2906 * `google.api.http` annotation, see "google/api/annotations.proto" |
| 2907 * for details. |
| 2908 * |
| 2909 * The mapping consists of a field specifying the path template and |
| 2910 * method kind. The path template can refer to fields in the request |
| 2911 * message, as in the example below which describes a REST GET |
| 2912 * operation on a resource collection of messages: |
| 2913 * |
| 2914 * ```proto |
| 2915 * service Messaging { |
| 2916 * rpc GetMessage(GetMessageRequest) returns (Message) { |
| 2917 * option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}"; |
| 2918 * } |
| 2919 * } |
| 2920 * message GetMessageRequest { |
| 2921 * message SubMessage { |
| 2922 * string subfield = 1; |
| 2923 * } |
| 2924 * string message_id = 1; // mapped to the URL |
| 2925 * SubMessage sub = 2; // `sub.subfield` is url-mapped |
| 2926 * } |
| 2927 * message Message { |
| 2928 * string text = 1; // content of the resource |
| 2929 * } |
| 2930 * ``` |
| 2931 * |
| 2932 * This definition enables an automatic, bidrectional mapping of HTTP |
| 2933 * JSON to RPC. Example: |
| 2934 * |
| 2935 * HTTP | RPC |
| 2936 * -----|----- |
| 2937 * `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: |
| 2938 * SubMessage(subfield: "foo"))` |
| 2939 * |
| 2940 * In general, not only fields but also field paths can be referenced |
| 2941 * from a path pattern. Fields mapped to the path pattern cannot be |
| 2942 * repeated and must have a primitive (non-message) type. |
| 2943 * |
| 2944 * Any fields in the request message which are not bound by the path |
| 2945 * pattern automatically become (optional) HTTP query |
| 2946 * parameters. Assume the following definition of the request message: |
| 2947 * |
| 2948 * ```proto |
| 2949 * message GetMessageRequest { |
| 2950 * message SubMessage { |
| 2951 * string subfield = 1; |
| 2952 * } |
| 2953 * string message_id = 1; // mapped to the URL |
| 2954 * int64 revision = 2; // becomes a parameter |
| 2955 * SubMessage sub = 3; // `sub.subfield` becomes a parameter |
| 2956 * } |
| 2957 * ``` |
| 2958 * |
| 2959 * This enables a HTTP JSON to RPC mapping as below: |
| 2960 * |
| 2961 * HTTP | RPC |
| 2962 * -----|----- |
| 2963 * `GET /v1/messages/123456?revision=2&sub.subfield=foo` | |
| 2964 * `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: |
| 2965 * "foo"))` |
| 2966 * |
| 2967 * Note that fields which are mapped to HTTP parameters must have a |
| 2968 * primitive type or a repeated primitive type. Message types are not |
| 2969 * allowed. In the case of a repeated type, the parameter can be |
| 2970 * repeated in the URL, as in `...?param=A¶m=B`. |
| 2971 * |
| 2972 * For HTTP method kinds which allow a request body, the `body` field |
| 2973 * specifies the mapping. Consider a REST update method on the |
| 2974 * message resource collection: |
| 2975 * |
| 2976 * ```proto |
| 2977 * service Messaging { |
| 2978 * rpc UpdateMessage(UpdateMessageRequest) returns (Message) { |
| 2979 * option (google.api.http) = { |
| 2980 * put: "/v1/messages/{message_id}" |
| 2981 * body: "message" |
| 2982 * }; |
| 2983 * } |
| 2984 * } |
| 2985 * message UpdateMessageRequest { |
| 2986 * string message_id = 1; // mapped to the URL |
| 2987 * Message message = 2; // mapped to the body |
| 2988 * } |
| 2989 * ``` |
| 2990 * |
| 2991 * The following HTTP JSON to RPC mapping is enabled, where the |
| 2992 * representation of the JSON in the request body is determined by |
| 2993 * protos JSON encoding: |
| 2994 * |
| 2995 * HTTP | RPC |
| 2996 * -----|----- |
| 2997 * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: |
| 2998 * "123456" message { text: "Hi!" })` |
| 2999 * |
| 3000 * The special name `*` can be used in the body mapping to define that |
| 3001 * every field not bound by the path template should be mapped to the |
| 3002 * request body. This enables the following alternative definition of |
| 3003 * the update method: |
| 3004 * |
| 3005 * ```proto |
| 3006 * service Messaging { |
| 3007 * rpc UpdateMessage(Message) returns (Message) { |
| 3008 * option (google.api.http) = { |
| 3009 * put: "/v1/messages/{message_id}" |
| 3010 * body: "*" |
| 3011 * }; |
| 3012 * } |
| 3013 * } |
| 3014 * message Message { |
| 3015 * string message_id = 1; |
| 3016 * string text = 2; |
| 3017 * } |
| 3018 * ``` |
| 3019 * |
| 3020 * The following HTTP JSON to RPC mapping is enabled: |
| 3021 * |
| 3022 * HTTP | RPC |
| 3023 * -----|----- |
| 3024 * `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: |
| 3025 * "123456" text: "Hi!")` |
| 3026 * |
| 3027 * Note that when using `*` in the body mapping, it is not possible to |
| 3028 * have HTTP parameters, as all fields not bound by the path end in |
| 3029 * the body. This makes this option more rarely used in practice of |
| 3030 * defining REST APIs. The common usage of `*` is in custom methods |
| 3031 * which don't use the URL at all for transferring data. |
| 3032 * |
| 3033 * It is possible to define multiple HTTP methods for one RPC by using |
| 3034 * the `additional_bindings` option. Example: |
| 3035 * |
| 3036 * ```proto |
| 3037 * service Messaging { |
| 3038 * rpc GetMessage(GetMessageRequest) returns (Message) { |
| 3039 * option (google.api.http) = { |
| 3040 * get: "/v1/messages/{message_id}" |
| 3041 * additional_bindings { |
| 3042 * get: "/v1/users/{user_id}/messages/{message_id}" |
| 3043 * } |
| 3044 * }; |
| 3045 * } |
| 3046 * } |
| 3047 * message GetMessageRequest { |
| 3048 * string message_id = 1; |
| 3049 * string user_id = 2; |
| 3050 * } |
| 3051 * ``` |
| 3052 * |
| 3053 * This enables the following two alternative HTTP JSON to RPC |
| 3054 * mappings: |
| 3055 * |
| 3056 * HTTP | RPC |
| 3057 * -----|----- |
| 3058 * `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` |
| 3059 * `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: |
| 3060 * "123456")` |
| 3061 * |
| 3062 * # Rules for HTTP mapping |
| 3063 * |
| 3064 * The rules for mapping HTTP path, query parameters, and body fields |
| 3065 * to the request message are as follows: |
| 3066 * |
| 3067 * 1. The `body` field specifies either `*` or a field path, or is |
| 3068 * omitted. If omitted, it assumes there is no HTTP body. |
| 3069 * 2. Leaf fields (recursive expansion of nested messages in the |
| 3070 * request) can be classified into three types: |
| 3071 * (a) Matched in the URL template. |
| 3072 * (b) Covered by body (if body is `*`, everything except (a) fields; |
| 3073 * else everything under the body field) |
| 3074 * (c) All other fields. |
| 3075 * 3. URL query parameters found in the HTTP request are mapped to (c) fields. |
| 3076 * 4. Any body sent with an HTTP request can contain only (b) fields. |
| 3077 * |
| 3078 * The syntax of the path template is as follows: |
| 3079 * |
| 3080 * Template = "/" Segments [ Verb ] ; |
| 3081 * Segments = Segment { "/" Segment } ; |
| 3082 * Segment = "*" | "**" | LITERAL | Variable ; |
| 3083 * Variable = "{" FieldPath [ "=" Segments ] "}" ; |
| 3084 * FieldPath = IDENT { "." IDENT } ; |
| 3085 * Verb = ":" LITERAL ; |
| 3086 * |
| 3087 * The syntax `*` matches a single path segment. It follows the semantics of |
| 3088 * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String |
| 3089 * Expansion. |
| 3090 * |
| 3091 * The syntax `**` matches zero or more path segments. It follows the semantics |
| 3092 * of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved |
| 3093 * Expansion. |
| 3094 * |
| 3095 * The syntax `LITERAL` matches literal text in the URL path. |
| 3096 * |
| 3097 * The syntax `Variable` matches the entire path as specified by its template; |
| 3098 * this nested template must not contain further variables. If a variable |
| 3099 * matches a single path segment, its template may be omitted, e.g. `{var}` |
| 3100 * is equivalent to `{var=*}`. |
| 3101 * |
| 3102 * NOTE: the field paths in variables and in the `body` must not refer to |
| 3103 * repeated fields or map fields. |
| 3104 * |
| 3105 * Use CustomHttpPattern to specify any HTTP method that is not included in the |
| 3106 * `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified |
| 3107 * for |
| 3108 * a given URL path rule. The wild-card rule is useful for services that provide |
| 3109 * content to Web (HTML) clients. |
| 3110 */ |
| 3111 class HttpRule { |
| 3112 /** |
| 3113 * Additional HTTP bindings for the selector. Nested bindings must |
| 3114 * not contain an `additional_bindings` field themselves (that is, |
| 3115 * the nesting may only be one level deep). |
| 3116 */ |
| 3117 core.List<HttpRule> additionalBindings; |
| 3118 /** |
| 3119 * The name of the request field whose value is mapped to the HTTP body, or |
| 3120 * `*` for mapping all fields not captured by the path pattern to the HTTP |
| 3121 * body. NOTE: the referred field must not be a repeated field and must be |
| 3122 * present at the top-level of response message type. |
| 3123 */ |
| 3124 core.String body; |
| 3125 /** Custom pattern is used for defining custom verbs. */ |
| 3126 CustomHttpPattern custom; |
| 3127 /** Used for deleting a resource. */ |
| 3128 core.String delete; |
| 3129 /** Used for listing and getting information about resources. */ |
| 3130 core.String get; |
| 3131 /** |
| 3132 * Do not use this. For media support, add instead |
| 3133 * [][google.bytestream.RestByteStream] as an API to your |
| 3134 * configuration. |
| 3135 */ |
| 3136 MediaDownload mediaDownload; |
| 3137 /** |
| 3138 * Do not use this. For media support, add instead |
| 3139 * [][google.bytestream.RestByteStream] as an API to your |
| 3140 * configuration. |
| 3141 */ |
| 3142 MediaUpload mediaUpload; |
| 3143 /** Used for updating a resource. */ |
| 3144 core.String patch; |
| 3145 /** Used for creating a resource. */ |
| 3146 core.String post; |
| 3147 /** Used for updating a resource. */ |
| 3148 core.String put; |
| 3149 /** |
| 3150 * The name of the response field whose value is mapped to the HTTP body of |
| 3151 * response. Other response fields are ignored. This field is optional. When |
| 3152 * not set, the response message will be used as HTTP body of response. |
| 3153 * NOTE: the referred field must be not a repeated field and must be present |
| 3154 * at the top-level of response message type. |
| 3155 */ |
| 3156 core.String responseBody; |
| 3157 /** |
| 3158 * Selects methods to which this rule applies. |
| 3159 * |
| 3160 * Refer to selector for syntax details. |
| 3161 */ |
| 3162 core.String selector; |
| 3163 |
| 3164 HttpRule(); |
| 3165 |
| 3166 HttpRule.fromJson(core.Map _json) { |
| 3167 if (_json.containsKey("additionalBindings")) { |
| 3168 additionalBindings = _json["additionalBindings"].map((value) => new HttpRu
le.fromJson(value)).toList(); |
| 3169 } |
| 3170 if (_json.containsKey("body")) { |
| 3171 body = _json["body"]; |
| 3172 } |
| 3173 if (_json.containsKey("custom")) { |
| 3174 custom = new CustomHttpPattern.fromJson(_json["custom"]); |
| 3175 } |
| 3176 if (_json.containsKey("delete")) { |
| 3177 delete = _json["delete"]; |
| 3178 } |
| 3179 if (_json.containsKey("get")) { |
| 3180 get = _json["get"]; |
| 3181 } |
| 3182 if (_json.containsKey("mediaDownload")) { |
| 3183 mediaDownload = new MediaDownload.fromJson(_json["mediaDownload"]); |
| 3184 } |
| 3185 if (_json.containsKey("mediaUpload")) { |
| 3186 mediaUpload = new MediaUpload.fromJson(_json["mediaUpload"]); |
| 3187 } |
| 3188 if (_json.containsKey("patch")) { |
| 3189 patch = _json["patch"]; |
| 3190 } |
| 3191 if (_json.containsKey("post")) { |
| 3192 post = _json["post"]; |
| 3193 } |
| 3194 if (_json.containsKey("put")) { |
| 3195 put = _json["put"]; |
| 3196 } |
| 3197 if (_json.containsKey("responseBody")) { |
| 3198 responseBody = _json["responseBody"]; |
| 3199 } |
| 3200 if (_json.containsKey("selector")) { |
| 3201 selector = _json["selector"]; |
| 3202 } |
| 3203 } |
| 3204 |
| 3205 core.Map toJson() { |
| 3206 var _json = new core.Map(); |
| 3207 if (additionalBindings != null) { |
| 3208 _json["additionalBindings"] = additionalBindings.map((value) => (value).to
Json()).toList(); |
| 3209 } |
| 3210 if (body != null) { |
| 3211 _json["body"] = body; |
| 3212 } |
| 3213 if (custom != null) { |
| 3214 _json["custom"] = (custom).toJson(); |
| 3215 } |
| 3216 if (delete != null) { |
| 3217 _json["delete"] = delete; |
| 3218 } |
| 3219 if (get != null) { |
| 3220 _json["get"] = get; |
| 3221 } |
| 3222 if (mediaDownload != null) { |
| 3223 _json["mediaDownload"] = (mediaDownload).toJson(); |
| 3224 } |
| 3225 if (mediaUpload != null) { |
| 3226 _json["mediaUpload"] = (mediaUpload).toJson(); |
| 3227 } |
| 3228 if (patch != null) { |
| 3229 _json["patch"] = patch; |
| 3230 } |
| 3231 if (post != null) { |
| 3232 _json["post"] = post; |
| 3233 } |
| 3234 if (put != null) { |
| 3235 _json["put"] = put; |
| 3236 } |
| 3237 if (responseBody != null) { |
| 3238 _json["responseBody"] = responseBody; |
| 3239 } |
| 3240 if (selector != null) { |
| 3241 _json["selector"] = selector; |
| 3242 } |
| 3243 return _json; |
| 3244 } |
| 3245 } |
| 3246 |
| 3247 /** A description of a label. */ |
| 3248 class LabelDescriptor { |
| 3249 /** A human-readable description for the label. */ |
| 3250 core.String description; |
| 3251 /** The label key. */ |
| 3252 core.String key; |
| 3253 /** |
| 3254 * The type of data that can be assigned to the label. |
| 3255 * Possible string values are: |
| 3256 * - "STRING" : A variable-length string. This is the default. |
| 3257 * - "BOOL" : Boolean; true or false. |
| 3258 * - "INT64" : A 64-bit signed integer. |
| 3259 */ |
| 3260 core.String valueType; |
| 3261 |
| 3262 LabelDescriptor(); |
| 3263 |
| 3264 LabelDescriptor.fromJson(core.Map _json) { |
| 3265 if (_json.containsKey("description")) { |
| 3266 description = _json["description"]; |
| 3267 } |
| 3268 if (_json.containsKey("key")) { |
| 3269 key = _json["key"]; |
| 3270 } |
| 3271 if (_json.containsKey("valueType")) { |
| 3272 valueType = _json["valueType"]; |
| 3273 } |
| 3274 } |
| 3275 |
| 3276 core.Map toJson() { |
| 3277 var _json = new core.Map(); |
| 3278 if (description != null) { |
| 3279 _json["description"] = description; |
| 3280 } |
| 3281 if (key != null) { |
| 3282 _json["key"] = key; |
| 3283 } |
| 3284 if (valueType != null) { |
| 3285 _json["valueType"] = valueType; |
| 3286 } |
| 3287 return _json; |
| 3288 } |
| 3289 } |
| 3290 |
| 3291 /** Response message for ListServiceConfigs method. */ |
| 3292 class ListServiceConfigsResponse { |
| 3293 /** The token of the next page of results. */ |
| 3294 core.String nextPageToken; |
| 3295 /** The list of service configuration resources. */ |
| 3296 core.List<Service> serviceConfigs; |
| 3297 |
| 3298 ListServiceConfigsResponse(); |
| 3299 |
| 3300 ListServiceConfigsResponse.fromJson(core.Map _json) { |
| 3301 if (_json.containsKey("nextPageToken")) { |
| 3302 nextPageToken = _json["nextPageToken"]; |
| 3303 } |
| 3304 if (_json.containsKey("serviceConfigs")) { |
| 3305 serviceConfigs = _json["serviceConfigs"].map((value) => new Service.fromJs
on(value)).toList(); |
| 3306 } |
| 3307 } |
| 3308 |
| 3309 core.Map toJson() { |
| 3310 var _json = new core.Map(); |
| 3311 if (nextPageToken != null) { |
| 3312 _json["nextPageToken"] = nextPageToken; |
| 3313 } |
| 3314 if (serviceConfigs != null) { |
| 3315 _json["serviceConfigs"] = serviceConfigs.map((value) => (value).toJson()).
toList(); |
| 3316 } |
| 3317 return _json; |
| 3318 } |
| 3319 } |
| 3320 |
| 3321 /** Response message for ListServiceRollouts method. */ |
| 3322 class ListServiceRolloutsResponse { |
| 3323 /** The token of the next page of results. */ |
| 3324 core.String nextPageToken; |
| 3325 /** The list of rollout resources. */ |
| 3326 core.List<Rollout> rollouts; |
| 3327 |
| 3328 ListServiceRolloutsResponse(); |
| 3329 |
| 3330 ListServiceRolloutsResponse.fromJson(core.Map _json) { |
| 3331 if (_json.containsKey("nextPageToken")) { |
| 3332 nextPageToken = _json["nextPageToken"]; |
| 3333 } |
| 3334 if (_json.containsKey("rollouts")) { |
| 3335 rollouts = _json["rollouts"].map((value) => new Rollout.fromJson(value)).t
oList(); |
| 3336 } |
| 3337 } |
| 3338 |
| 3339 core.Map toJson() { |
| 3340 var _json = new core.Map(); |
| 3341 if (nextPageToken != null) { |
| 3342 _json["nextPageToken"] = nextPageToken; |
| 3343 } |
| 3344 if (rollouts != null) { |
| 3345 _json["rollouts"] = rollouts.map((value) => (value).toJson()).toList(); |
| 3346 } |
| 3347 return _json; |
| 3348 } |
| 3349 } |
| 3350 |
| 3351 /** Response message for `ListServices` method. */ |
| 3352 class ListServicesResponse { |
| 3353 /** |
| 3354 * Token that can be passed to `ListServices` to resume a paginated query. |
| 3355 */ |
| 3356 core.String nextPageToken; |
| 3357 /** The results of the query. */ |
| 3358 core.List<ManagedService> services; |
| 3359 |
| 3360 ListServicesResponse(); |
| 3361 |
| 3362 ListServicesResponse.fromJson(core.Map _json) { |
| 3363 if (_json.containsKey("nextPageToken")) { |
| 3364 nextPageToken = _json["nextPageToken"]; |
| 3365 } |
| 3366 if (_json.containsKey("services")) { |
| 3367 services = _json["services"].map((value) => new ManagedService.fromJson(va
lue)).toList(); |
| 3368 } |
| 3369 } |
| 3370 |
| 3371 core.Map toJson() { |
| 3372 var _json = new core.Map(); |
| 3373 if (nextPageToken != null) { |
| 3374 _json["nextPageToken"] = nextPageToken; |
| 3375 } |
| 3376 if (services != null) { |
| 3377 _json["services"] = services.map((value) => (value).toJson()).toList(); |
| 3378 } |
| 3379 return _json; |
| 3380 } |
| 3381 } |
| 3382 |
| 3383 /** |
| 3384 * Specifies what kind of log the caller must write |
| 3385 * Increment a streamz counter with the specified metric and field names. |
| 3386 * |
| 3387 * Metric names should start with a '/', generally be lowercase-only, |
| 3388 * and end in "_count". Field names should not contain an initial slash. |
| 3389 * The actual exported metric names will have "/iam/policy" prepended. |
| 3390 * |
| 3391 * Field names correspond to IAM request parameters and field values are |
| 3392 * their respective values. |
| 3393 * |
| 3394 * At present the only supported field names are |
| 3395 * - "iam_principal", corresponding to IAMContext.principal; |
| 3396 * - "" (empty string), resulting in one aggretated counter with no field. |
| 3397 * |
| 3398 * Examples: |
| 3399 * counter { metric: "/debug_access_count" field: "iam_principal" } |
| 3400 * ==> increment counter /iam/policy/backend_debug_access_count |
| 3401 * {iam_principal=[value of IAMContext.principal]} |
| 3402 * |
| 3403 * At this time we do not support: |
| 3404 * * multiple field names (though this may be supported in the future) |
| 3405 * * decrementing the counter |
| 3406 * * incrementing it by anything other than 1 |
| 3407 */ |
| 3408 class LogConfig { |
| 3409 /** Cloud audit options. */ |
| 3410 CloudAuditOptions cloudAudit; |
| 3411 /** Counter options. */ |
| 3412 CounterOptions counter; |
| 3413 /** Data access options. */ |
| 3414 DataAccessOptions dataAccess; |
| 3415 |
| 3416 LogConfig(); |
| 3417 |
| 3418 LogConfig.fromJson(core.Map _json) { |
| 3419 if (_json.containsKey("cloudAudit")) { |
| 3420 cloudAudit = new CloudAuditOptions.fromJson(_json["cloudAudit"]); |
| 3421 } |
| 3422 if (_json.containsKey("counter")) { |
| 3423 counter = new CounterOptions.fromJson(_json["counter"]); |
| 3424 } |
| 3425 if (_json.containsKey("dataAccess")) { |
| 3426 dataAccess = new DataAccessOptions.fromJson(_json["dataAccess"]); |
| 3427 } |
| 3428 } |
| 3429 |
| 3430 core.Map toJson() { |
| 3431 var _json = new core.Map(); |
| 3432 if (cloudAudit != null) { |
| 3433 _json["cloudAudit"] = (cloudAudit).toJson(); |
| 3434 } |
| 3435 if (counter != null) { |
| 3436 _json["counter"] = (counter).toJson(); |
| 3437 } |
| 3438 if (dataAccess != null) { |
| 3439 _json["dataAccess"] = (dataAccess).toJson(); |
| 3440 } |
| 3441 return _json; |
| 3442 } |
| 3443 } |
| 3444 |
| 3445 /** |
| 3446 * A description of a log type. Example in YAML format: |
| 3447 * |
| 3448 * - name: library.googleapis.com/activity_history |
| 3449 * description: The history of borrowing and returning library items. |
| 3450 * display_name: Activity |
| 3451 * labels: |
| 3452 * - key: /customer_id |
| 3453 * description: Identifier of a library customer |
| 3454 */ |
| 3455 class LogDescriptor { |
| 3456 /** |
| 3457 * A human-readable description of this log. This information appears in |
| 3458 * the documentation and can contain details. |
| 3459 */ |
| 3460 core.String description; |
| 3461 /** |
| 3462 * The human-readable name for this log. This information appears on |
| 3463 * the user interface and should be concise. |
| 3464 */ |
| 3465 core.String displayName; |
| 3466 /** |
| 3467 * The set of labels that are available to describe a specific log entry. |
| 3468 * Runtime requests that contain labels not specified here are |
| 3469 * considered invalid. |
| 3470 */ |
| 3471 core.List<LabelDescriptor> labels; |
| 3472 /** |
| 3473 * The name of the log. It must be less than 512 characters long and can |
| 3474 * include the following characters: upper- and lower-case alphanumeric |
| 3475 * characters [A-Za-z0-9], and punctuation characters including |
| 3476 * slash, underscore, hyphen, period [/_-.]. |
| 3477 */ |
| 3478 core.String name; |
| 3479 |
| 3480 LogDescriptor(); |
| 3481 |
| 3482 LogDescriptor.fromJson(core.Map _json) { |
| 3483 if (_json.containsKey("description")) { |
| 3484 description = _json["description"]; |
| 3485 } |
| 3486 if (_json.containsKey("displayName")) { |
| 3487 displayName = _json["displayName"]; |
| 3488 } |
| 3489 if (_json.containsKey("labels")) { |
| 3490 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value
)).toList(); |
| 3491 } |
| 3492 if (_json.containsKey("name")) { |
| 3493 name = _json["name"]; |
| 3494 } |
| 3495 } |
| 3496 |
| 3497 core.Map toJson() { |
| 3498 var _json = new core.Map(); |
| 3499 if (description != null) { |
| 3500 _json["description"] = description; |
| 3501 } |
| 3502 if (displayName != null) { |
| 3503 _json["displayName"] = displayName; |
| 3504 } |
| 3505 if (labels != null) { |
| 3506 _json["labels"] = labels.map((value) => (value).toJson()).toList(); |
| 3507 } |
| 3508 if (name != null) { |
| 3509 _json["name"] = name; |
| 3510 } |
| 3511 return _json; |
| 3512 } |
| 3513 } |
| 3514 |
| 3515 /** |
| 3516 * Logging configuration of the service. |
| 3517 * |
| 3518 * The following example shows how to configure logs to be sent to the |
| 3519 * producer and consumer projects. In the example, |
| 3520 * the `library.googleapis.com/activity_history` log is |
| 3521 * sent to both the producer and consumer projects, whereas |
| 3522 * the `library.googleapis.com/purchase_history` log is only sent to the |
| 3523 * producer project: |
| 3524 * |
| 3525 * monitored_resources: |
| 3526 * - type: library.googleapis.com/branch |
| 3527 * labels: |
| 3528 * - key: /city |
| 3529 * description: The city where the library branch is located in. |
| 3530 * - key: /name |
| 3531 * description: The name of the branch. |
| 3532 * logs: |
| 3533 * - name: library.googleapis.com/activity_history |
| 3534 * labels: |
| 3535 * - key: /customer_id |
| 3536 * - name: library.googleapis.com/purchase_history |
| 3537 * logging: |
| 3538 * producer_destinations: |
| 3539 * - monitored_resource: library.googleapis.com/branch |
| 3540 * logs: |
| 3541 * - library.googleapis.com/activity_history |
| 3542 * - library.googleapis.com/purchase_history |
| 3543 * consumer_destinations: |
| 3544 * - monitored_resource: library.googleapis.com/branch |
| 3545 * logs: |
| 3546 * - library.googleapis.com/activity_history |
| 3547 */ |
| 3548 class Logging { |
| 3549 /** |
| 3550 * Logging configurations for sending logs to the consumer project. |
| 3551 * There can be multiple consumer destinations, each one must have a |
| 3552 * different monitored resource type. A log can be used in at most |
| 3553 * one consumer destination. |
| 3554 */ |
| 3555 core.List<LoggingDestination> consumerDestinations; |
| 3556 /** |
| 3557 * Logging configurations for sending logs to the producer project. |
| 3558 * There can be multiple producer destinations, each one must have a |
| 3559 * different monitored resource type. A log can be used in at most |
| 3560 * one producer destination. |
| 3561 */ |
| 3562 core.List<LoggingDestination> producerDestinations; |
| 3563 |
| 3564 Logging(); |
| 3565 |
| 3566 Logging.fromJson(core.Map _json) { |
| 3567 if (_json.containsKey("consumerDestinations")) { |
| 3568 consumerDestinations = _json["consumerDestinations"].map((value) => new Lo
ggingDestination.fromJson(value)).toList(); |
| 3569 } |
| 3570 if (_json.containsKey("producerDestinations")) { |
| 3571 producerDestinations = _json["producerDestinations"].map((value) => new Lo
ggingDestination.fromJson(value)).toList(); |
| 3572 } |
| 3573 } |
| 3574 |
| 3575 core.Map toJson() { |
| 3576 var _json = new core.Map(); |
| 3577 if (consumerDestinations != null) { |
| 3578 _json["consumerDestinations"] = consumerDestinations.map((value) => (value
).toJson()).toList(); |
| 3579 } |
| 3580 if (producerDestinations != null) { |
| 3581 _json["producerDestinations"] = producerDestinations.map((value) => (value
).toJson()).toList(); |
| 3582 } |
| 3583 return _json; |
| 3584 } |
| 3585 } |
| 3586 |
| 3587 /** |
| 3588 * Configuration of a specific logging destination (the producer project |
| 3589 * or the consumer project). |
| 3590 */ |
| 3591 class LoggingDestination { |
| 3592 /** |
| 3593 * Names of the logs to be sent to this destination. Each name must |
| 3594 * be defined in the Service.logs section. |
| 3595 */ |
| 3596 core.List<core.String> logs; |
| 3597 /** |
| 3598 * The monitored resource type. The type must be defined in |
| 3599 * Service.monitored_resources section. |
| 3600 */ |
| 3601 core.String monitoredResource; |
| 3602 |
| 3603 LoggingDestination(); |
| 3604 |
| 3605 LoggingDestination.fromJson(core.Map _json) { |
| 3606 if (_json.containsKey("logs")) { |
| 3607 logs = _json["logs"]; |
| 3608 } |
| 3609 if (_json.containsKey("monitoredResource")) { |
| 3610 monitoredResource = _json["monitoredResource"]; |
| 3611 } |
| 3612 } |
| 3613 |
| 3614 core.Map toJson() { |
| 3615 var _json = new core.Map(); |
| 3616 if (logs != null) { |
| 3617 _json["logs"] = logs; |
| 3618 } |
| 3619 if (monitoredResource != null) { |
| 3620 _json["monitoredResource"] = monitoredResource; |
| 3621 } |
| 3622 return _json; |
| 3623 } |
| 3624 } |
| 3625 |
| 3626 /** |
| 3627 * The full representation of a Service that is managed by |
| 3628 * Google Service Management. |
| 3629 */ |
| 3630 class ManagedService { |
| 3631 /** ID of the project that produces and owns this service. */ |
| 3632 core.String producerProjectId; |
| 3633 /** |
| 3634 * The name of the service. See the [overview](/service-management/overview) |
| 3635 * for naming requirements. |
| 3636 * This name must match `google.api.Service.name` in the |
| 3637 * `service_config` field. |
| 3638 */ |
| 3639 core.String serviceName; |
| 3640 |
| 3641 ManagedService(); |
| 3642 |
| 3643 ManagedService.fromJson(core.Map _json) { |
| 3644 if (_json.containsKey("producerProjectId")) { |
| 3645 producerProjectId = _json["producerProjectId"]; |
| 3646 } |
| 3647 if (_json.containsKey("serviceName")) { |
| 3648 serviceName = _json["serviceName"]; |
| 3649 } |
| 3650 } |
| 3651 |
| 3652 core.Map toJson() { |
| 3653 var _json = new core.Map(); |
| 3654 if (producerProjectId != null) { |
| 3655 _json["producerProjectId"] = producerProjectId; |
| 3656 } |
| 3657 if (serviceName != null) { |
| 3658 _json["serviceName"] = serviceName; |
| 3659 } |
| 3660 return _json; |
| 3661 } |
| 3662 } |
| 3663 |
| 3664 /** |
| 3665 * Do not use this. For media support, add instead |
| 3666 * [][google.bytestream.RestByteStream] as an API to your |
| 3667 * configuration. |
| 3668 */ |
| 3669 class MediaDownload { |
| 3670 /** Whether download is enabled. */ |
| 3671 core.bool enabled; |
| 3672 |
| 3673 MediaDownload(); |
| 3674 |
| 3675 MediaDownload.fromJson(core.Map _json) { |
| 3676 if (_json.containsKey("enabled")) { |
| 3677 enabled = _json["enabled"]; |
| 3678 } |
| 3679 } |
| 3680 |
| 3681 core.Map toJson() { |
| 3682 var _json = new core.Map(); |
| 3683 if (enabled != null) { |
| 3684 _json["enabled"] = enabled; |
| 3685 } |
| 3686 return _json; |
| 3687 } |
| 3688 } |
| 3689 |
| 3690 /** |
| 3691 * Do not use this. For media support, add instead |
| 3692 * [][google.bytestream.RestByteStream] as an API to your |
| 3693 * configuration. |
| 3694 */ |
| 3695 class MediaUpload { |
| 3696 /** Whether upload is enabled. */ |
| 3697 core.bool enabled; |
| 3698 |
| 3699 MediaUpload(); |
| 3700 |
| 3701 MediaUpload.fromJson(core.Map _json) { |
| 3702 if (_json.containsKey("enabled")) { |
| 3703 enabled = _json["enabled"]; |
| 3704 } |
| 3705 } |
| 3706 |
| 3707 core.Map toJson() { |
| 3708 var _json = new core.Map(); |
| 3709 if (enabled != null) { |
| 3710 _json["enabled"] = enabled; |
| 3711 } |
| 3712 return _json; |
| 3713 } |
| 3714 } |
| 3715 |
| 3716 /** Method represents a method of an api. */ |
| 3717 class Method { |
| 3718 /** The simple name of this method. */ |
| 3719 core.String name; |
| 3720 /** Any metadata attached to the method. */ |
| 3721 core.List<Option> options; |
| 3722 /** If true, the request is streamed. */ |
| 3723 core.bool requestStreaming; |
| 3724 /** A URL of the input message type. */ |
| 3725 core.String requestTypeUrl; |
| 3726 /** If true, the response is streamed. */ |
| 3727 core.bool responseStreaming; |
| 3728 /** The URL of the output message type. */ |
| 3729 core.String responseTypeUrl; |
| 3730 /** |
| 3731 * The source syntax of this method. |
| 3732 * Possible string values are: |
| 3733 * - "SYNTAX_PROTO2" : Syntax `proto2`. |
| 3734 * - "SYNTAX_PROTO3" : Syntax `proto3`. |
| 3735 */ |
| 3736 core.String syntax; |
| 3737 |
| 3738 Method(); |
| 3739 |
| 3740 Method.fromJson(core.Map _json) { |
| 3741 if (_json.containsKey("name")) { |
| 3742 name = _json["name"]; |
| 3743 } |
| 3744 if (_json.containsKey("options")) { |
| 3745 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 3746 } |
| 3747 if (_json.containsKey("requestStreaming")) { |
| 3748 requestStreaming = _json["requestStreaming"]; |
| 3749 } |
| 3750 if (_json.containsKey("requestTypeUrl")) { |
| 3751 requestTypeUrl = _json["requestTypeUrl"]; |
| 3752 } |
| 3753 if (_json.containsKey("responseStreaming")) { |
| 3754 responseStreaming = _json["responseStreaming"]; |
| 3755 } |
| 3756 if (_json.containsKey("responseTypeUrl")) { |
| 3757 responseTypeUrl = _json["responseTypeUrl"]; |
| 3758 } |
| 3759 if (_json.containsKey("syntax")) { |
| 3760 syntax = _json["syntax"]; |
| 3761 } |
| 3762 } |
| 3763 |
| 3764 core.Map toJson() { |
| 3765 var _json = new core.Map(); |
| 3766 if (name != null) { |
| 3767 _json["name"] = name; |
| 3768 } |
| 3769 if (options != null) { |
| 3770 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 3771 } |
| 3772 if (requestStreaming != null) { |
| 3773 _json["requestStreaming"] = requestStreaming; |
| 3774 } |
| 3775 if (requestTypeUrl != null) { |
| 3776 _json["requestTypeUrl"] = requestTypeUrl; |
| 3777 } |
| 3778 if (responseStreaming != null) { |
| 3779 _json["responseStreaming"] = responseStreaming; |
| 3780 } |
| 3781 if (responseTypeUrl != null) { |
| 3782 _json["responseTypeUrl"] = responseTypeUrl; |
| 3783 } |
| 3784 if (syntax != null) { |
| 3785 _json["syntax"] = syntax; |
| 3786 } |
| 3787 return _json; |
| 3788 } |
| 3789 } |
| 3790 |
| 3791 /** Defines a metric type and its schema. */ |
| 3792 class MetricDescriptor { |
| 3793 /** |
| 3794 * A detailed description of the metric, which can be used in documentation. |
| 3795 */ |
| 3796 core.String description; |
| 3797 /** |
| 3798 * A concise name for the metric, which can be displayed in user interfaces. |
| 3799 * Use sentence case without an ending period, for example "Request count". |
| 3800 */ |
| 3801 core.String displayName; |
| 3802 /** |
| 3803 * The set of labels that can be used to describe a specific instance of this |
| 3804 * metric type. For example, the |
| 3805 * `compute.googleapis.com/instance/network/received_bytes_count` metric type |
| 3806 * has a label, `loadbalanced`, that specifies whether the traffic was |
| 3807 * received through a load balanced IP address. |
| 3808 */ |
| 3809 core.List<LabelDescriptor> labels; |
| 3810 /** |
| 3811 * Whether the metric records instantaneous values, changes to a value, etc. |
| 3812 * Possible string values are: |
| 3813 * - "METRIC_KIND_UNSPECIFIED" : Do not use this default value. |
| 3814 * - "GAUGE" : An instantaneous measurement of a value. |
| 3815 * - "DELTA" : The change in a value during a time interval. |
| 3816 * - "CUMULATIVE" : A value accumulated over a time interval. Cumulative |
| 3817 * measurements in a time series should have the same start time |
| 3818 * and increasing end times, until an event resets the cumulative |
| 3819 * value to zero and sets a new start time for the following |
| 3820 * points. |
| 3821 */ |
| 3822 core.String metricKind; |
| 3823 /** |
| 3824 * Resource name. The format of the name may vary between different |
| 3825 * implementations. For examples: |
| 3826 * |
| 3827 * projects/{project_id}/metricDescriptors/{type=**} |
| 3828 * metricDescriptors/{type=**} |
| 3829 */ |
| 3830 core.String name; |
| 3831 /** |
| 3832 * The metric type including a DNS name prefix, for example |
| 3833 * `"compute.googleapis.com/instance/cpu/utilization"`. Metric types |
| 3834 * should use a natural hierarchical grouping such as the following: |
| 3835 * |
| 3836 * compute.googleapis.com/instance/cpu/utilization |
| 3837 * compute.googleapis.com/instance/disk/read_ops_count |
| 3838 * compute.googleapis.com/instance/network/received_bytes_count |
| 3839 * |
| 3840 * Note that if the metric type changes, the monitoring data will be |
| 3841 * discontinued, and anything depends on it will break, such as monitoring |
| 3842 * dashboards, alerting rules and quota limits. Therefore, once a metric has |
| 3843 * been published, its type should be immutable. |
| 3844 */ |
| 3845 core.String type; |
| 3846 /** |
| 3847 * The unit in which the metric value is reported. It is only applicable |
| 3848 * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The |
| 3849 * supported units are a subset of [The Unified Code for Units of |
| 3850 * Measure](http://unitsofmeasure.org/ucum.html) standard: |
| 3851 * |
| 3852 * **Basic units (UNIT)** |
| 3853 * |
| 3854 * * `bit` bit |
| 3855 * * `By` byte |
| 3856 * * `s` second |
| 3857 * * `min` minute |
| 3858 * * `h` hour |
| 3859 * * `d` day |
| 3860 * |
| 3861 * **Prefixes (PREFIX)** |
| 3862 * |
| 3863 * * `k` kilo (10**3) |
| 3864 * * `M` mega (10**6) |
| 3865 * * `G` giga (10**9) |
| 3866 * * `T` tera (10**12) |
| 3867 * * `P` peta (10**15) |
| 3868 * * `E` exa (10**18) |
| 3869 * * `Z` zetta (10**21) |
| 3870 * * `Y` yotta (10**24) |
| 3871 * * `m` milli (10**-3) |
| 3872 * * `u` micro (10**-6) |
| 3873 * * `n` nano (10**-9) |
| 3874 * * `p` pico (10**-12) |
| 3875 * * `f` femto (10**-15) |
| 3876 * * `a` atto (10**-18) |
| 3877 * * `z` zepto (10**-21) |
| 3878 * * `y` yocto (10**-24) |
| 3879 * * `Ki` kibi (2**10) |
| 3880 * * `Mi` mebi (2**20) |
| 3881 * * `Gi` gibi (2**30) |
| 3882 * * `Ti` tebi (2**40) |
| 3883 * |
| 3884 * **Grammar** |
| 3885 * |
| 3886 * The grammar includes the dimensionless unit `1`, such as `1/s`. |
| 3887 * |
| 3888 * The grammar also includes these connectors: |
| 3889 * |
| 3890 * * `/` division (as an infix operator, e.g. `1/s`). |
| 3891 * * `.` multiplication (as an infix operator, e.g. `GBy.d`) |
| 3892 * |
| 3893 * The grammar for a unit is as follows: |
| 3894 * |
| 3895 * Expression = Component { "." Component } { "/" Component } ; |
| 3896 * |
| 3897 * Component = [ PREFIX ] UNIT [ Annotation ] |
| 3898 * | Annotation |
| 3899 * | "1" |
| 3900 * ; |
| 3901 * |
| 3902 * Annotation = "{" NAME "}" ; |
| 3903 * |
| 3904 * Notes: |
| 3905 * |
| 3906 * * `Annotation` is just a comment if it follows a `UNIT` and is |
| 3907 * equivalent to `1` if it is used alone. For examples, |
| 3908 * `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. |
| 3909 * * `NAME` is a sequence of non-blank printable ASCII characters not |
| 3910 * containing '{' or '}'. |
| 3911 */ |
| 3912 core.String unit; |
| 3913 /** |
| 3914 * Whether the measurement is an integer, a floating-point number, etc. |
| 3915 * Possible string values are: |
| 3916 * - "VALUE_TYPE_UNSPECIFIED" : Do not use this default value. |
| 3917 * - "BOOL" : The value is a boolean. |
| 3918 * This value type can be used only if the metric kind is `GAUGE`. |
| 3919 * - "INT64" : The value is a signed 64-bit integer. |
| 3920 * - "DOUBLE" : The value is a double precision floating point number. |
| 3921 * - "STRING" : The value is a text string. |
| 3922 * This value type can be used only if the metric kind is `GAUGE`. |
| 3923 * - "DISTRIBUTION" : The value is a `Distribution`. |
| 3924 * - "MONEY" : The value is money. |
| 3925 */ |
| 3926 core.String valueType; |
| 3927 |
| 3928 MetricDescriptor(); |
| 3929 |
| 3930 MetricDescriptor.fromJson(core.Map _json) { |
| 3931 if (_json.containsKey("description")) { |
| 3932 description = _json["description"]; |
| 3933 } |
| 3934 if (_json.containsKey("displayName")) { |
| 3935 displayName = _json["displayName"]; |
| 3936 } |
| 3937 if (_json.containsKey("labels")) { |
| 3938 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value
)).toList(); |
| 3939 } |
| 3940 if (_json.containsKey("metricKind")) { |
| 3941 metricKind = _json["metricKind"]; |
| 3942 } |
| 3943 if (_json.containsKey("name")) { |
| 3944 name = _json["name"]; |
| 3945 } |
| 3946 if (_json.containsKey("type")) { |
| 3947 type = _json["type"]; |
| 3948 } |
| 3949 if (_json.containsKey("unit")) { |
| 3950 unit = _json["unit"]; |
| 3951 } |
| 3952 if (_json.containsKey("valueType")) { |
| 3953 valueType = _json["valueType"]; |
| 3954 } |
| 3955 } |
| 3956 |
| 3957 core.Map toJson() { |
| 3958 var _json = new core.Map(); |
| 3959 if (description != null) { |
| 3960 _json["description"] = description; |
| 3961 } |
| 3962 if (displayName != null) { |
| 3963 _json["displayName"] = displayName; |
| 3964 } |
| 3965 if (labels != null) { |
| 3966 _json["labels"] = labels.map((value) => (value).toJson()).toList(); |
| 3967 } |
| 3968 if (metricKind != null) { |
| 3969 _json["metricKind"] = metricKind; |
| 3970 } |
| 3971 if (name != null) { |
| 3972 _json["name"] = name; |
| 3973 } |
| 3974 if (type != null) { |
| 3975 _json["type"] = type; |
| 3976 } |
| 3977 if (unit != null) { |
| 3978 _json["unit"] = unit; |
| 3979 } |
| 3980 if (valueType != null) { |
| 3981 _json["valueType"] = valueType; |
| 3982 } |
| 3983 return _json; |
| 3984 } |
| 3985 } |
| 3986 |
| 3987 /** |
| 3988 * Declares an API to be included in this API. The including API must |
| 3989 * redeclare all the methods from the included API, but documentation |
| 3990 * and options are inherited as follows: |
| 3991 * |
| 3992 * - If after comment and whitespace stripping, the documentation |
| 3993 * string of the redeclared method is empty, it will be inherited |
| 3994 * from the original method. |
| 3995 * |
| 3996 * - Each annotation belonging to the service config (http, |
| 3997 * visibility) which is not set in the redeclared method will be |
| 3998 * inherited. |
| 3999 * |
| 4000 * - If an http annotation is inherited, the path pattern will be |
| 4001 * modified as follows. Any version prefix will be replaced by the |
| 4002 * version of the including API plus the root path if specified. |
| 4003 * |
| 4004 * Example of a simple mixin: |
| 4005 * |
| 4006 * package google.acl.v1; |
| 4007 * service AccessControl { |
| 4008 * // Get the underlying ACL object. |
| 4009 * rpc GetAcl(GetAclRequest) returns (Acl) { |
| 4010 * option (google.api.http).get = "/v1/{resource=**}:getAcl"; |
| 4011 * } |
| 4012 * } |
| 4013 * |
| 4014 * package google.storage.v2; |
| 4015 * service Storage { |
| 4016 * // rpc GetAcl(GetAclRequest) returns (Acl); |
| 4017 * |
| 4018 * // Get a data record. |
| 4019 * rpc GetData(GetDataRequest) returns (Data) { |
| 4020 * option (google.api.http).get = "/v2/{resource=**}"; |
| 4021 * } |
| 4022 * } |
| 4023 * |
| 4024 * Example of a mixin configuration: |
| 4025 * |
| 4026 * apis: |
| 4027 * - name: google.storage.v2.Storage |
| 4028 * mixins: |
| 4029 * - name: google.acl.v1.AccessControl |
| 4030 * |
| 4031 * The mixin construct implies that all methods in `AccessControl` are |
| 4032 * also declared with same name and request/response types in |
| 4033 * `Storage`. A documentation generator or annotation processor will |
| 4034 * see the effective `Storage.GetAcl` method after inherting |
| 4035 * documentation and annotations as follows: |
| 4036 * |
| 4037 * service Storage { |
| 4038 * // Get the underlying ACL object. |
| 4039 * rpc GetAcl(GetAclRequest) returns (Acl) { |
| 4040 * option (google.api.http).get = "/v2/{resource=**}:getAcl"; |
| 4041 * } |
| 4042 * ... |
| 4043 * } |
| 4044 * |
| 4045 * Note how the version in the path pattern changed from `v1` to `v2`. |
| 4046 * |
| 4047 * If the `root` field in the mixin is specified, it should be a |
| 4048 * relative path under which inherited HTTP paths are placed. Example: |
| 4049 * |
| 4050 * apis: |
| 4051 * - name: google.storage.v2.Storage |
| 4052 * mixins: |
| 4053 * - name: google.acl.v1.AccessControl |
| 4054 * root: acls |
| 4055 * |
| 4056 * This implies the following inherited HTTP annotation: |
| 4057 * |
| 4058 * service Storage { |
| 4059 * // Get the underlying ACL object. |
| 4060 * rpc GetAcl(GetAclRequest) returns (Acl) { |
| 4061 * option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; |
| 4062 * } |
| 4063 * ... |
| 4064 * } |
| 4065 */ |
| 4066 class Mixin { |
| 4067 /** The fully qualified name of the API which is included. */ |
| 4068 core.String name; |
| 4069 /** |
| 4070 * If non-empty specifies a path under which inherited HTTP paths |
| 4071 * are rooted. |
| 4072 */ |
| 4073 core.String root; |
| 4074 |
| 4075 Mixin(); |
| 4076 |
| 4077 Mixin.fromJson(core.Map _json) { |
| 4078 if (_json.containsKey("name")) { |
| 4079 name = _json["name"]; |
| 4080 } |
| 4081 if (_json.containsKey("root")) { |
| 4082 root = _json["root"]; |
| 4083 } |
| 4084 } |
| 4085 |
| 4086 core.Map toJson() { |
| 4087 var _json = new core.Map(); |
| 4088 if (name != null) { |
| 4089 _json["name"] = name; |
| 4090 } |
| 4091 if (root != null) { |
| 4092 _json["root"] = root; |
| 4093 } |
| 4094 return _json; |
| 4095 } |
| 4096 } |
| 4097 |
| 4098 /** |
| 4099 * An object that describes the schema of a MonitoredResource object using a |
| 4100 * type name and a set of labels. For example, the monitored resource |
| 4101 * descriptor for Google Compute Engine VM instances has a type of |
| 4102 * `"gce_instance"` and specifies the use of the labels `"instance_id"` and |
| 4103 * `"zone"` to identify particular VM instances. |
| 4104 * |
| 4105 * Different APIs can support different monitored resource types. APIs generally |
| 4106 * provide a `list` method that returns the monitored resource descriptors used |
| 4107 * by the API. |
| 4108 */ |
| 4109 class MonitoredResourceDescriptor { |
| 4110 /** |
| 4111 * Optional. A detailed description of the monitored resource type that might |
| 4112 * be used in documentation. |
| 4113 */ |
| 4114 core.String description; |
| 4115 /** |
| 4116 * Optional. A concise name for the monitored resource type that might be |
| 4117 * displayed in user interfaces. For example, `"Google Cloud SQL Database"`. |
| 4118 */ |
| 4119 core.String displayName; |
| 4120 /** |
| 4121 * Required. A set of labels used to describe instances of this monitored |
| 4122 * resource type. For example, an individual Google Cloud SQL database is |
| 4123 * identified by values for the labels `"database_id"` and `"zone"`. |
| 4124 */ |
| 4125 core.List<LabelDescriptor> labels; |
| 4126 /** |
| 4127 * Optional. The resource name of the monitored resource descriptor: |
| 4128 * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where |
| 4129 * {type} is the value of the `type` field in this object and |
| 4130 * {project_id} is a project ID that provides API-specific context for |
| 4131 * accessing the type. APIs that do not use project information can use the |
| 4132 * resource name format `"monitoredResourceDescriptors/{type}"`. |
| 4133 */ |
| 4134 core.String name; |
| 4135 /** |
| 4136 * Required. The monitored resource type. For example, the type |
| 4137 * `"cloudsql_database"` represents databases in Google Cloud SQL. |
| 4138 * The maximum length of this value is 256 characters. |
| 4139 */ |
| 4140 core.String type; |
| 4141 |
| 4142 MonitoredResourceDescriptor(); |
| 4143 |
| 4144 MonitoredResourceDescriptor.fromJson(core.Map _json) { |
| 4145 if (_json.containsKey("description")) { |
| 4146 description = _json["description"]; |
| 4147 } |
| 4148 if (_json.containsKey("displayName")) { |
| 4149 displayName = _json["displayName"]; |
| 4150 } |
| 4151 if (_json.containsKey("labels")) { |
| 4152 labels = _json["labels"].map((value) => new LabelDescriptor.fromJson(value
)).toList(); |
| 4153 } |
| 4154 if (_json.containsKey("name")) { |
| 4155 name = _json["name"]; |
| 4156 } |
| 4157 if (_json.containsKey("type")) { |
| 4158 type = _json["type"]; |
| 4159 } |
| 4160 } |
| 4161 |
| 4162 core.Map toJson() { |
| 4163 var _json = new core.Map(); |
| 4164 if (description != null) { |
| 4165 _json["description"] = description; |
| 4166 } |
| 4167 if (displayName != null) { |
| 4168 _json["displayName"] = displayName; |
| 4169 } |
| 4170 if (labels != null) { |
| 4171 _json["labels"] = labels.map((value) => (value).toJson()).toList(); |
| 4172 } |
| 4173 if (name != null) { |
| 4174 _json["name"] = name; |
| 4175 } |
| 4176 if (type != null) { |
| 4177 _json["type"] = type; |
| 4178 } |
| 4179 return _json; |
| 4180 } |
| 4181 } |
| 4182 |
| 4183 /** |
| 4184 * Monitoring configuration of the service. |
| 4185 * |
| 4186 * The example below shows how to configure monitored resources and metrics |
| 4187 * for monitoring. In the example, a monitored resource and two metrics are |
| 4188 * defined. The `library.googleapis.com/book/returned_count` metric is sent |
| 4189 * to both producer and consumer projects, whereas the |
| 4190 * `library.googleapis.com/book/overdue_count` metric is only sent to the |
| 4191 * consumer project. |
| 4192 * |
| 4193 * monitored_resources: |
| 4194 * - type: library.googleapis.com/branch |
| 4195 * labels: |
| 4196 * - key: /city |
| 4197 * description: The city where the library branch is located in. |
| 4198 * - key: /name |
| 4199 * description: The name of the branch. |
| 4200 * metrics: |
| 4201 * - name: library.googleapis.com/book/returned_count |
| 4202 * metric_kind: DELTA |
| 4203 * value_type: INT64 |
| 4204 * labels: |
| 4205 * - key: /customer_id |
| 4206 * - name: library.googleapis.com/book/overdue_count |
| 4207 * metric_kind: GAUGE |
| 4208 * value_type: INT64 |
| 4209 * labels: |
| 4210 * - key: /customer_id |
| 4211 * monitoring: |
| 4212 * producer_destinations: |
| 4213 * - monitored_resource: library.googleapis.com/branch |
| 4214 * metrics: |
| 4215 * - library.googleapis.com/book/returned_count |
| 4216 * consumer_destinations: |
| 4217 * - monitored_resource: library.googleapis.com/branch |
| 4218 * metrics: |
| 4219 * - library.googleapis.com/book/returned_count |
| 4220 * - library.googleapis.com/book/overdue_count |
| 4221 */ |
| 4222 class Monitoring { |
| 4223 /** |
| 4224 * Monitoring configurations for sending metrics to the consumer project. |
| 4225 * There can be multiple consumer destinations, each one must have a |
| 4226 * different monitored resource type. A metric can be used in at most |
| 4227 * one consumer destination. |
| 4228 */ |
| 4229 core.List<MonitoringDestination> consumerDestinations; |
| 4230 /** |
| 4231 * Monitoring configurations for sending metrics to the producer project. |
| 4232 * There can be multiple producer destinations, each one must have a |
| 4233 * different monitored resource type. A metric can be used in at most |
| 4234 * one producer destination. |
| 4235 */ |
| 4236 core.List<MonitoringDestination> producerDestinations; |
| 4237 |
| 4238 Monitoring(); |
| 4239 |
| 4240 Monitoring.fromJson(core.Map _json) { |
| 4241 if (_json.containsKey("consumerDestinations")) { |
| 4242 consumerDestinations = _json["consumerDestinations"].map((value) => new Mo
nitoringDestination.fromJson(value)).toList(); |
| 4243 } |
| 4244 if (_json.containsKey("producerDestinations")) { |
| 4245 producerDestinations = _json["producerDestinations"].map((value) => new Mo
nitoringDestination.fromJson(value)).toList(); |
| 4246 } |
| 4247 } |
| 4248 |
| 4249 core.Map toJson() { |
| 4250 var _json = new core.Map(); |
| 4251 if (consumerDestinations != null) { |
| 4252 _json["consumerDestinations"] = consumerDestinations.map((value) => (value
).toJson()).toList(); |
| 4253 } |
| 4254 if (producerDestinations != null) { |
| 4255 _json["producerDestinations"] = producerDestinations.map((value) => (value
).toJson()).toList(); |
| 4256 } |
| 4257 return _json; |
| 4258 } |
| 4259 } |
| 4260 |
| 4261 /** |
| 4262 * Configuration of a specific monitoring destination (the producer project |
| 4263 * or the consumer project). |
| 4264 */ |
| 4265 class MonitoringDestination { |
| 4266 /** |
| 4267 * Names of the metrics to report to this monitoring destination. |
| 4268 * Each name must be defined in Service.metrics section. |
| 4269 */ |
| 4270 core.List<core.String> metrics; |
| 4271 /** |
| 4272 * The monitored resource type. The type must be defined in |
| 4273 * Service.monitored_resources section. |
| 4274 */ |
| 4275 core.String monitoredResource; |
| 4276 |
| 4277 MonitoringDestination(); |
| 4278 |
| 4279 MonitoringDestination.fromJson(core.Map _json) { |
| 4280 if (_json.containsKey("metrics")) { |
| 4281 metrics = _json["metrics"]; |
| 4282 } |
| 4283 if (_json.containsKey("monitoredResource")) { |
| 4284 monitoredResource = _json["monitoredResource"]; |
| 4285 } |
| 4286 } |
| 4287 |
| 4288 core.Map toJson() { |
| 4289 var _json = new core.Map(); |
| 4290 if (metrics != null) { |
| 4291 _json["metrics"] = metrics; |
| 4292 } |
| 4293 if (monitoredResource != null) { |
| 4294 _json["monitoredResource"] = monitoredResource; |
| 4295 } |
| 4296 return _json; |
| 4297 } |
| 4298 } |
| 4299 |
| 4300 /** |
| 4301 * OAuth scopes are a way to define data and permissions on data. For example, |
| 4302 * there are scopes defined for "Read-only access to Google Calendar" and |
| 4303 * "Access to Cloud Platform". Users can consent to a scope for an application, |
| 4304 * giving it permission to access that data on their behalf. |
| 4305 * |
| 4306 * OAuth scope specifications should be fairly coarse grained; a user will need |
| 4307 * to see and understand the text description of what your scope means. |
| 4308 * |
| 4309 * In most cases: use one or at most two OAuth scopes for an entire family of |
| 4310 * products. If your product has multiple APIs, you should probably be sharing |
| 4311 * the OAuth scope across all of those APIs. |
| 4312 * |
| 4313 * When you need finer grained OAuth consent screens: talk with your product |
| 4314 * management about how developers will use them in practice. |
| 4315 * |
| 4316 * Please note that even though each of the canonical scopes is enough for a |
| 4317 * request to be accepted and passed to the backend, a request can still fail |
| 4318 * due to the backend requiring additional scopes or permissions. |
| 4319 */ |
| 4320 class OAuthRequirements { |
| 4321 /** |
| 4322 * The list of publicly documented OAuth scopes that are allowed access. An |
| 4323 * OAuth token containing any of these scopes will be accepted. |
| 4324 * |
| 4325 * Example: |
| 4326 * |
| 4327 * canonical_scopes: https://www.googleapis.com/auth/calendar, |
| 4328 * https://www.googleapis.com/auth/calendar.read |
| 4329 */ |
| 4330 core.String canonicalScopes; |
| 4331 |
| 4332 OAuthRequirements(); |
| 4333 |
| 4334 OAuthRequirements.fromJson(core.Map _json) { |
| 4335 if (_json.containsKey("canonicalScopes")) { |
| 4336 canonicalScopes = _json["canonicalScopes"]; |
| 4337 } |
| 4338 } |
| 4339 |
| 4340 core.Map toJson() { |
| 4341 var _json = new core.Map(); |
| 4342 if (canonicalScopes != null) { |
| 4343 _json["canonicalScopes"] = canonicalScopes; |
| 4344 } |
| 4345 return _json; |
| 4346 } |
| 4347 } |
| 4348 |
| 4349 /** |
| 4350 * This resource represents a long-running operation that is the result of a |
| 4351 * network API call. |
| 4352 */ |
| 4353 class Operation { |
| 4354 /** |
| 4355 * If the value is `false`, it means the operation is still in progress. |
| 4356 * If true, the operation is completed, and either `error` or `response` is |
| 4357 * available. |
| 4358 */ |
| 4359 core.bool done; |
| 4360 /** The error result of the operation in case of failure. */ |
| 4361 Status error; |
| 4362 /** |
| 4363 * Service-specific metadata associated with the operation. It typically |
| 4364 * contains progress information and common metadata such as create time. |
| 4365 * Some services might not provide such metadata. Any method that returns a |
| 4366 * long-running operation should document the metadata type, if any. |
| 4367 * |
| 4368 * The values for Object must be JSON objects. It can consist of `num`, |
| 4369 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 4370 */ |
| 4371 core.Map<core.String, core.Object> metadata; |
| 4372 /** |
| 4373 * The server-assigned name, which is only unique within the same service that |
| 4374 * originally returns it. If you use the default HTTP mapping, the |
| 4375 * `name` should have the format of `operations/some/unique/name`. |
| 4376 */ |
| 4377 core.String name; |
| 4378 /** |
| 4379 * The normal response of the operation in case of success. If the original |
| 4380 * method returns no data on success, such as `Delete`, the response is |
| 4381 * `google.protobuf.Empty`. If the original method is standard |
| 4382 * `Get`/`Create`/`Update`, the response should be the resource. For other |
| 4383 * methods, the response should have the type `XxxResponse`, where `Xxx` |
| 4384 * is the original method name. For example, if the original method name |
| 4385 * is `TakeSnapshot()`, the inferred response type is |
| 4386 * `TakeSnapshotResponse`. |
| 4387 * |
| 4388 * The values for Object must be JSON objects. It can consist of `num`, |
| 4389 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 4390 */ |
| 4391 core.Map<core.String, core.Object> response; |
| 4392 |
| 4393 Operation(); |
| 4394 |
| 4395 Operation.fromJson(core.Map _json) { |
| 4396 if (_json.containsKey("done")) { |
| 4397 done = _json["done"]; |
| 4398 } |
| 4399 if (_json.containsKey("error")) { |
| 4400 error = new Status.fromJson(_json["error"]); |
| 4401 } |
| 4402 if (_json.containsKey("metadata")) { |
| 4403 metadata = _json["metadata"]; |
| 4404 } |
| 4405 if (_json.containsKey("name")) { |
| 4406 name = _json["name"]; |
| 4407 } |
| 4408 if (_json.containsKey("response")) { |
| 4409 response = _json["response"]; |
| 4410 } |
| 4411 } |
| 4412 |
| 4413 core.Map toJson() { |
| 4414 var _json = new core.Map(); |
| 4415 if (done != null) { |
| 4416 _json["done"] = done; |
| 4417 } |
| 4418 if (error != null) { |
| 4419 _json["error"] = (error).toJson(); |
| 4420 } |
| 4421 if (metadata != null) { |
| 4422 _json["metadata"] = metadata; |
| 4423 } |
| 4424 if (name != null) { |
| 4425 _json["name"] = name; |
| 4426 } |
| 4427 if (response != null) { |
| 4428 _json["response"] = response; |
| 4429 } |
| 4430 return _json; |
| 4431 } |
| 4432 } |
| 4433 |
| 4434 /** The metadata associated with a long running operation resource. */ |
| 4435 class OperationMetadata { |
| 4436 /** Percentage of completion of this operation, ranging from 0 to 100. */ |
| 4437 core.int progressPercentage; |
| 4438 /** |
| 4439 * The full name of the resources that this operation is directly |
| 4440 * associated with. |
| 4441 */ |
| 4442 core.List<core.String> resourceNames; |
| 4443 /** The start time of the operation. */ |
| 4444 core.String startTime; |
| 4445 /** Detailed status information for each step. The order is undetermined. */ |
| 4446 core.List<Step> steps; |
| 4447 |
| 4448 OperationMetadata(); |
| 4449 |
| 4450 OperationMetadata.fromJson(core.Map _json) { |
| 4451 if (_json.containsKey("progressPercentage")) { |
| 4452 progressPercentage = _json["progressPercentage"]; |
| 4453 } |
| 4454 if (_json.containsKey("resourceNames")) { |
| 4455 resourceNames = _json["resourceNames"]; |
| 4456 } |
| 4457 if (_json.containsKey("startTime")) { |
| 4458 startTime = _json["startTime"]; |
| 4459 } |
| 4460 if (_json.containsKey("steps")) { |
| 4461 steps = _json["steps"].map((value) => new Step.fromJson(value)).toList(); |
| 4462 } |
| 4463 } |
| 4464 |
| 4465 core.Map toJson() { |
| 4466 var _json = new core.Map(); |
| 4467 if (progressPercentage != null) { |
| 4468 _json["progressPercentage"] = progressPercentage; |
| 4469 } |
| 4470 if (resourceNames != null) { |
| 4471 _json["resourceNames"] = resourceNames; |
| 4472 } |
| 4473 if (startTime != null) { |
| 4474 _json["startTime"] = startTime; |
| 4475 } |
| 4476 if (steps != null) { |
| 4477 _json["steps"] = steps.map((value) => (value).toJson()).toList(); |
| 4478 } |
| 4479 return _json; |
| 4480 } |
| 4481 } |
| 4482 |
| 4483 /** |
| 4484 * A protocol buffer option, which can be attached to a message, field, |
| 4485 * enumeration, etc. |
| 4486 */ |
| 4487 class Option { |
| 4488 /** The option's name. For example, `"java_package"`. */ |
| 4489 core.String name; |
| 4490 /** |
| 4491 * The option's value. For example, `"com.google.protobuf"`. |
| 4492 * |
| 4493 * The values for Object must be JSON objects. It can consist of `num`, |
| 4494 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 4495 */ |
| 4496 core.Map<core.String, core.Object> value; |
| 4497 |
| 4498 Option(); |
| 4499 |
| 4500 Option.fromJson(core.Map _json) { |
| 4501 if (_json.containsKey("name")) { |
| 4502 name = _json["name"]; |
| 4503 } |
| 4504 if (_json.containsKey("value")) { |
| 4505 value = _json["value"]; |
| 4506 } |
| 4507 } |
| 4508 |
| 4509 core.Map toJson() { |
| 4510 var _json = new core.Map(); |
| 4511 if (name != null) { |
| 4512 _json["name"] = name; |
| 4513 } |
| 4514 if (value != null) { |
| 4515 _json["value"] = value; |
| 4516 } |
| 4517 return _json; |
| 4518 } |
| 4519 } |
| 4520 |
| 4521 /** |
| 4522 * Represents a documentation page. A page can contain subpages to represent |
| 4523 * nested documentation set structure. |
| 4524 */ |
| 4525 class Page { |
| 4526 /** |
| 4527 * The Markdown content of the page. You can use <code>(== include {path} |
| 4528 * ==)</code> |
| 4529 * to include content from a Markdown file. |
| 4530 */ |
| 4531 core.String content; |
| 4532 /** |
| 4533 * The name of the page. It will be used as an identity of the page to |
| 4534 * generate URI of the page, text of the link to this page in navigation, |
| 4535 * etc. The full page name (start from the root page name to this page |
| 4536 * concatenated with `.`) can be used as reference to the page in your |
| 4537 * documentation. For example: |
| 4538 * <pre><code>pages: |
| 4539 * - name: Tutorial |
| 4540 * content: (== include tutorial.md ==) |
| 4541 * subpages: |
| 4542 * - name: Java |
| 4543 * content: (== include tutorial_java.md ==) |
| 4544 * </code></pre> |
| 4545 * You can reference `Java` page using Markdown reference link syntax: |
| 4546 * `Java`. |
| 4547 */ |
| 4548 core.String name; |
| 4549 /** |
| 4550 * Subpages of this page. The order of subpages specified here will be |
| 4551 * honored in the generated docset. |
| 4552 */ |
| 4553 core.List<Page> subpages; |
| 4554 |
| 4555 Page(); |
| 4556 |
| 4557 Page.fromJson(core.Map _json) { |
| 4558 if (_json.containsKey("content")) { |
| 4559 content = _json["content"]; |
| 4560 } |
| 4561 if (_json.containsKey("name")) { |
| 4562 name = _json["name"]; |
| 4563 } |
| 4564 if (_json.containsKey("subpages")) { |
| 4565 subpages = _json["subpages"].map((value) => new Page.fromJson(value)).toLi
st(); |
| 4566 } |
| 4567 } |
| 4568 |
| 4569 core.Map toJson() { |
| 4570 var _json = new core.Map(); |
| 4571 if (content != null) { |
| 4572 _json["content"] = content; |
| 4573 } |
| 4574 if (name != null) { |
| 4575 _json["name"] = name; |
| 4576 } |
| 4577 if (subpages != null) { |
| 4578 _json["subpages"] = subpages.map((value) => (value).toJson()).toList(); |
| 4579 } |
| 4580 return _json; |
| 4581 } |
| 4582 } |
| 4583 |
| 4584 /** |
| 4585 * Defines an Identity and Access Management (IAM) policy. It is used to |
| 4586 * specify access control policies for Cloud Platform resources. |
| 4587 * |
| 4588 * |
| 4589 * A `Policy` consists of a list of `bindings`. A `Binding` binds a list of |
| 4590 * `members` to a `role`, where the members can be user accounts, Google groups, |
| 4591 * Google domains, and service accounts. A `role` is a named list of permissions |
| 4592 * defined by IAM. |
| 4593 * |
| 4594 * **Example** |
| 4595 * |
| 4596 * { |
| 4597 * "bindings": [ |
| 4598 * { |
| 4599 * "role": "roles/owner", |
| 4600 * "members": [ |
| 4601 * "user:mike@example.com", |
| 4602 * "group:admins@example.com", |
| 4603 * "domain:google.com", |
| 4604 * "serviceAccount:my-other-app@appspot.gserviceaccount.com", |
| 4605 * ] |
| 4606 * }, |
| 4607 * { |
| 4608 * "role": "roles/viewer", |
| 4609 * "members": ["user:sean@example.com"] |
| 4610 * } |
| 4611 * ] |
| 4612 * } |
| 4613 * |
| 4614 * For a description of IAM and its features, see the |
| 4615 * [IAM developer's guide](https://cloud.google.com/iam). |
| 4616 */ |
| 4617 class Policy { |
| 4618 /** |
| 4619 * Specifies audit logging configs for "data access". |
| 4620 * "data access": generally refers to data reads/writes and admin reads. |
| 4621 * "admin activity": generally refers to admin writes. |
| 4622 * |
| 4623 * Note: `AuditConfig` doesn't apply to "admin activity", which always |
| 4624 * enables audit logging. |
| 4625 */ |
| 4626 core.List<AuditConfig> auditConfigs; |
| 4627 /** |
| 4628 * Associates a list of `members` to a `role`. |
| 4629 * Multiple `bindings` must not be specified for the same `role`. |
| 4630 * `bindings` with no members will result in an error. |
| 4631 */ |
| 4632 core.List<Binding> bindings; |
| 4633 /** |
| 4634 * `etag` is used for optimistic concurrency control as a way to help |
| 4635 * prevent simultaneous updates of a policy from overwriting each other. |
| 4636 * It is strongly suggested that systems make use of the `etag` in the |
| 4637 * read-modify-write cycle to perform policy updates in order to avoid race |
| 4638 * conditions: An `etag` is returned in the response to `getIamPolicy`, and |
| 4639 * systems are expected to put that etag in the request to `setIamPolicy` to |
| 4640 * ensure that their change will be applied to the same version of the policy. |
| 4641 * |
| 4642 * If no `etag` is provided in the call to `setIamPolicy`, then the existing |
| 4643 * policy is overwritten blindly. |
| 4644 */ |
| 4645 core.String etag; |
| 4646 core.List<core.int> get etagAsBytes { |
| 4647 return convert.BASE64.decode(etag); |
| 4648 } |
| 4649 |
| 4650 void set etagAsBytes(core.List<core.int> _bytes) { |
| 4651 etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-
"); |
| 4652 } |
| 4653 core.bool iamOwned; |
| 4654 /** |
| 4655 * If more than one rule is specified, the rules are applied in the following |
| 4656 * manner: |
| 4657 * - All matching LOG rules are always applied. |
| 4658 * - If any DENY/DENY_WITH_LOG rule matches, permission is denied. |
| 4659 * Logging will be applied if one or more matching rule requires logging. |
| 4660 * - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is |
| 4661 * granted. |
| 4662 * Logging will be applied if one or more matching rule requires logging. |
| 4663 * - Otherwise, if no rule applies, permission is denied. |
| 4664 */ |
| 4665 core.List<Rule> rules; |
| 4666 /** Version of the `Policy`. The default version is 0. */ |
| 4667 core.int version; |
| 4668 |
| 4669 Policy(); |
| 4670 |
| 4671 Policy.fromJson(core.Map _json) { |
| 4672 if (_json.containsKey("auditConfigs")) { |
| 4673 auditConfigs = _json["auditConfigs"].map((value) => new AuditConfig.fromJs
on(value)).toList(); |
| 4674 } |
| 4675 if (_json.containsKey("bindings")) { |
| 4676 bindings = _json["bindings"].map((value) => new Binding.fromJson(value)).t
oList(); |
| 4677 } |
| 4678 if (_json.containsKey("etag")) { |
| 4679 etag = _json["etag"]; |
| 4680 } |
| 4681 if (_json.containsKey("iamOwned")) { |
| 4682 iamOwned = _json["iamOwned"]; |
| 4683 } |
| 4684 if (_json.containsKey("rules")) { |
| 4685 rules = _json["rules"].map((value) => new Rule.fromJson(value)).toList(); |
| 4686 } |
| 4687 if (_json.containsKey("version")) { |
| 4688 version = _json["version"]; |
| 4689 } |
| 4690 } |
| 4691 |
| 4692 core.Map toJson() { |
| 4693 var _json = new core.Map(); |
| 4694 if (auditConfigs != null) { |
| 4695 _json["auditConfigs"] = auditConfigs.map((value) => (value).toJson()).toLi
st(); |
| 4696 } |
| 4697 if (bindings != null) { |
| 4698 _json["bindings"] = bindings.map((value) => (value).toJson()).toList(); |
| 4699 } |
| 4700 if (etag != null) { |
| 4701 _json["etag"] = etag; |
| 4702 } |
| 4703 if (iamOwned != null) { |
| 4704 _json["iamOwned"] = iamOwned; |
| 4705 } |
| 4706 if (rules != null) { |
| 4707 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 4708 } |
| 4709 if (version != null) { |
| 4710 _json["version"] = version; |
| 4711 } |
| 4712 return _json; |
| 4713 } |
| 4714 } |
| 4715 |
| 4716 /** |
| 4717 * A rollout resource that defines how service configuration versions are pushed |
| 4718 * to control plane systems. Typically, you create a new version of the |
| 4719 * service config, and then create a Rollout to push the service config. |
| 4720 */ |
| 4721 class Rollout { |
| 4722 /** Creation time of the rollout. Readonly. */ |
| 4723 core.String createTime; |
| 4724 /** The user who created the Rollout. Readonly. */ |
| 4725 core.String createdBy; |
| 4726 /** |
| 4727 * The strategy associated with a rollout to delete a `ManagedService`. |
| 4728 * Readonly. |
| 4729 */ |
| 4730 DeleteServiceStrategy deleteServiceStrategy; |
| 4731 /** |
| 4732 * Optional unique identifier of this Rollout. Only lower case letters, digits |
| 4733 * and '-' are allowed. |
| 4734 * |
| 4735 * If not specified by client, the server will generate one. The generated id |
| 4736 * will have the form of <date><revision number>, where "date" is the create |
| 4737 * date in ISO 8601 format. "revision number" is a monotonically increasing |
| 4738 * positive number that is reset every day for each service. |
| 4739 * An example of the generated rollout_id is '2016-02-16r1' |
| 4740 */ |
| 4741 core.String rolloutId; |
| 4742 /** The name of the service associated with this Rollout. */ |
| 4743 core.String serviceName; |
| 4744 /** |
| 4745 * The status of this rollout. Readonly. In case of a failed rollout, |
| 4746 * the system will automatically rollback to the current Rollout |
| 4747 * version. Readonly. |
| 4748 * Possible string values are: |
| 4749 * - "ROLLOUT_STATUS_UNSPECIFIED" : No status specified. |
| 4750 * - "IN_PROGRESS" : The Rollout is in progress. |
| 4751 * - "SUCCESS" : The Rollout has completed successfully. |
| 4752 * - "CANCELLED" : The Rollout has been cancelled. This can happen if you have |
| 4753 * overlapping |
| 4754 * Rollout pushes, and the previous ones will be cancelled. |
| 4755 * - "FAILED" : The Rollout has failed. It is typically caused by |
| 4756 * configuration errors. |
| 4757 * - "PENDING" : The Rollout has started yet and is pending for execution. |
| 4758 */ |
| 4759 core.String status; |
| 4760 /** |
| 4761 * Google Service Control selects service configurations based on |
| 4762 * traffic percentage. |
| 4763 */ |
| 4764 TrafficPercentStrategy trafficPercentStrategy; |
| 4765 |
| 4766 Rollout(); |
| 4767 |
| 4768 Rollout.fromJson(core.Map _json) { |
| 4769 if (_json.containsKey("createTime")) { |
| 4770 createTime = _json["createTime"]; |
| 4771 } |
| 4772 if (_json.containsKey("createdBy")) { |
| 4773 createdBy = _json["createdBy"]; |
| 4774 } |
| 4775 if (_json.containsKey("deleteServiceStrategy")) { |
| 4776 deleteServiceStrategy = new DeleteServiceStrategy.fromJson(_json["deleteSe
rviceStrategy"]); |
| 4777 } |
| 4778 if (_json.containsKey("rolloutId")) { |
| 4779 rolloutId = _json["rolloutId"]; |
| 4780 } |
| 4781 if (_json.containsKey("serviceName")) { |
| 4782 serviceName = _json["serviceName"]; |
| 4783 } |
| 4784 if (_json.containsKey("status")) { |
| 4785 status = _json["status"]; |
| 4786 } |
| 4787 if (_json.containsKey("trafficPercentStrategy")) { |
| 4788 trafficPercentStrategy = new TrafficPercentStrategy.fromJson(_json["traffi
cPercentStrategy"]); |
| 4789 } |
| 4790 } |
| 4791 |
| 4792 core.Map toJson() { |
| 4793 var _json = new core.Map(); |
| 4794 if (createTime != null) { |
| 4795 _json["createTime"] = createTime; |
| 4796 } |
| 4797 if (createdBy != null) { |
| 4798 _json["createdBy"] = createdBy; |
| 4799 } |
| 4800 if (deleteServiceStrategy != null) { |
| 4801 _json["deleteServiceStrategy"] = (deleteServiceStrategy).toJson(); |
| 4802 } |
| 4803 if (rolloutId != null) { |
| 4804 _json["rolloutId"] = rolloutId; |
| 4805 } |
| 4806 if (serviceName != null) { |
| 4807 _json["serviceName"] = serviceName; |
| 4808 } |
| 4809 if (status != null) { |
| 4810 _json["status"] = status; |
| 4811 } |
| 4812 if (trafficPercentStrategy != null) { |
| 4813 _json["trafficPercentStrategy"] = (trafficPercentStrategy).toJson(); |
| 4814 } |
| 4815 return _json; |
| 4816 } |
| 4817 } |
| 4818 |
| 4819 /** A rule to be applied in a Policy. */ |
| 4820 class Rule { |
| 4821 /** |
| 4822 * Required |
| 4823 * Possible string values are: |
| 4824 * - "NO_ACTION" : Default no action. |
| 4825 * - "ALLOW" : Matching 'Entries' grant access. |
| 4826 * - "ALLOW_WITH_LOG" : Matching 'Entries' grant access and the caller |
| 4827 * promises to log |
| 4828 * the request per the returned log_configs. |
| 4829 * - "DENY" : Matching 'Entries' deny access. |
| 4830 * - "DENY_WITH_LOG" : Matching 'Entries' deny access and the caller promises |
| 4831 * to log |
| 4832 * the request per the returned log_configs. |
| 4833 * - "LOG" : Matching 'Entries' tell IAM.Check callers to generate logs. |
| 4834 */ |
| 4835 core.String action; |
| 4836 /** Additional restrictions that must be met */ |
| 4837 core.List<Condition> conditions; |
| 4838 /** Human-readable description of the rule. */ |
| 4839 core.String description; |
| 4840 /** |
| 4841 * If one or more 'in' clauses are specified, the rule matches if |
| 4842 * the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries. |
| 4843 */ |
| 4844 core.List<core.String> in_; |
| 4845 /** |
| 4846 * The config returned to callers of tech.iam.IAM.CheckPolicy for any entries |
| 4847 * that match the LOG action. |
| 4848 */ |
| 4849 core.List<LogConfig> logConfig; |
| 4850 /** |
| 4851 * If one or more 'not_in' clauses are specified, the rule matches |
| 4852 * if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. |
| 4853 * The format for in and not_in entries is the same as for members in a |
| 4854 * Binding (see google/iam/v1/policy.proto). |
| 4855 */ |
| 4856 core.List<core.String> notIn; |
| 4857 /** |
| 4858 * A permission is a string of form '<service>.<resource type>.<verb>' |
| 4859 * (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, |
| 4860 * and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs. |
| 4861 */ |
| 4862 core.List<core.String> permissions; |
| 4863 |
| 4864 Rule(); |
| 4865 |
| 4866 Rule.fromJson(core.Map _json) { |
| 4867 if (_json.containsKey("action")) { |
| 4868 action = _json["action"]; |
| 4869 } |
| 4870 if (_json.containsKey("conditions")) { |
| 4871 conditions = _json["conditions"].map((value) => new Condition.fromJson(val
ue)).toList(); |
| 4872 } |
| 4873 if (_json.containsKey("description")) { |
| 4874 description = _json["description"]; |
| 4875 } |
| 4876 if (_json.containsKey("in")) { |
| 4877 in_ = _json["in"]; |
| 4878 } |
| 4879 if (_json.containsKey("logConfig")) { |
| 4880 logConfig = _json["logConfig"].map((value) => new LogConfig.fromJson(value
)).toList(); |
| 4881 } |
| 4882 if (_json.containsKey("notIn")) { |
| 4883 notIn = _json["notIn"]; |
| 4884 } |
| 4885 if (_json.containsKey("permissions")) { |
| 4886 permissions = _json["permissions"]; |
| 4887 } |
| 4888 } |
| 4889 |
| 4890 core.Map toJson() { |
| 4891 var _json = new core.Map(); |
| 4892 if (action != null) { |
| 4893 _json["action"] = action; |
| 4894 } |
| 4895 if (conditions != null) { |
| 4896 _json["conditions"] = conditions.map((value) => (value).toJson()).toList()
; |
| 4897 } |
| 4898 if (description != null) { |
| 4899 _json["description"] = description; |
| 4900 } |
| 4901 if (in_ != null) { |
| 4902 _json["in"] = in_; |
| 4903 } |
| 4904 if (logConfig != null) { |
| 4905 _json["logConfig"] = logConfig.map((value) => (value).toJson()).toList(); |
| 4906 } |
| 4907 if (notIn != null) { |
| 4908 _json["notIn"] = notIn; |
| 4909 } |
| 4910 if (permissions != null) { |
| 4911 _json["permissions"] = permissions; |
| 4912 } |
| 4913 return _json; |
| 4914 } |
| 4915 } |
| 4916 |
| 4917 /** |
| 4918 * `Service` is the root object of the configuration schema. It |
| 4919 * describes basic information like the name of the service and the |
| 4920 * exposed API interfaces, and delegates other aspects to configuration |
| 4921 * sub-sections. |
| 4922 * |
| 4923 * Example: |
| 4924 * |
| 4925 * type: google.api.Service |
| 4926 * config_version: 1 |
| 4927 * name: calendar.googleapis.com |
| 4928 * title: Google Calendar API |
| 4929 * apis: |
| 4930 * - name: google.calendar.Calendar |
| 4931 * backend: |
| 4932 * rules: |
| 4933 * - selector: "*" |
| 4934 * address: calendar.example.com |
| 4935 */ |
| 4936 class Service { |
| 4937 /** |
| 4938 * A list of API interfaces exported by this service. Only the `name` field |
| 4939 * of the google.protobuf.Api needs to be provided by the configuration |
| 4940 * author, as the remaining fields will be derived from the IDL during the |
| 4941 * normalization process. It is an error to specify an API interface here |
| 4942 * which cannot be resolved against the associated IDL files. |
| 4943 */ |
| 4944 core.List<Api> apis; |
| 4945 /** Auth configuration. */ |
| 4946 Authentication authentication; |
| 4947 /** API backend configuration. */ |
| 4948 Backend backend; |
| 4949 /** |
| 4950 * The version of the service configuration. The config version may |
| 4951 * influence interpretation of the configuration, for example, to |
| 4952 * determine defaults. This is documented together with applicable |
| 4953 * options. The current default for the config version itself is `3`. |
| 4954 */ |
| 4955 core.int configVersion; |
| 4956 /** Context configuration. */ |
| 4957 Context context; |
| 4958 /** Configuration for the service control plane. */ |
| 4959 Control control; |
| 4960 /** Custom error configuration. */ |
| 4961 CustomError customError; |
| 4962 /** Additional API documentation. */ |
| 4963 Documentation documentation; |
| 4964 /** |
| 4965 * A list of all enum types included in this API service. Enums |
| 4966 * referenced directly or indirectly by the `apis` are automatically |
| 4967 * included. Enums which are not referenced but shall be included |
| 4968 * should be listed here by name. Example: |
| 4969 * |
| 4970 * enums: |
| 4971 * - name: google.someapi.v1.SomeEnum |
| 4972 */ |
| 4973 core.List<Enum> enums; |
| 4974 /** HTTP configuration. */ |
| 4975 Http http; |
| 4976 /** |
| 4977 * A unique ID for a specific instance of this message, typically assigned |
| 4978 * by the client for tracking purpose. If empty, the server may choose to |
| 4979 * generate one instead. |
| 4980 */ |
| 4981 core.String id; |
| 4982 /** Logging configuration of the service. */ |
| 4983 Logging logging; |
| 4984 /** Defines the logs used by this service. */ |
| 4985 core.List<LogDescriptor> logs; |
| 4986 /** Defines the metrics used by this service. */ |
| 4987 core.List<MetricDescriptor> metrics; |
| 4988 /** |
| 4989 * Defines the monitored resources used by this service. This is required |
| 4990 * by the Service.monitoring and Service.logging configurations. |
| 4991 */ |
| 4992 core.List<MonitoredResourceDescriptor> monitoredResources; |
| 4993 /** Monitoring configuration of the service. */ |
| 4994 Monitoring monitoring; |
| 4995 /** |
| 4996 * The DNS address at which this service is available, |
| 4997 * e.g. `calendar.googleapis.com`. |
| 4998 */ |
| 4999 core.String name; |
| 5000 /** |
| 5001 * The id of the Google developer project that owns the service. |
| 5002 * Members of this project can manage the service configuration, |
| 5003 * manage consumption of the service, etc. |
| 5004 */ |
| 5005 core.String producerProjectId; |
| 5006 /** Configuration for system parameters. */ |
| 5007 SystemParameters systemParameters; |
| 5008 /** |
| 5009 * A list of all proto message types included in this API service. |
| 5010 * It serves similar purpose as [google.api.Service.types], except that |
| 5011 * these types are not needed by user-defined APIs. Therefore, they will not |
| 5012 * show up in the generated discovery doc. This field should only be used |
| 5013 * to define system APIs in ESF. |
| 5014 */ |
| 5015 core.List<Type> systemTypes; |
| 5016 /** The product title associated with this service. */ |
| 5017 core.String title; |
| 5018 /** |
| 5019 * A list of all proto message types included in this API service. |
| 5020 * Types referenced directly or indirectly by the `apis` are |
| 5021 * automatically included. Messages which are not referenced but |
| 5022 * shall be included, such as types used by the `google.protobuf.Any` type, |
| 5023 * should be listed here by name. Example: |
| 5024 * |
| 5025 * types: |
| 5026 * - name: google.protobuf.Int32 |
| 5027 */ |
| 5028 core.List<Type> types; |
| 5029 /** Configuration controlling usage of this service. */ |
| 5030 Usage usage; |
| 5031 /** API visibility configuration. */ |
| 5032 Visibility visibility; |
| 5033 |
| 5034 Service(); |
| 5035 |
| 5036 Service.fromJson(core.Map _json) { |
| 5037 if (_json.containsKey("apis")) { |
| 5038 apis = _json["apis"].map((value) => new Api.fromJson(value)).toList(); |
| 5039 } |
| 5040 if (_json.containsKey("authentication")) { |
| 5041 authentication = new Authentication.fromJson(_json["authentication"]); |
| 5042 } |
| 5043 if (_json.containsKey("backend")) { |
| 5044 backend = new Backend.fromJson(_json["backend"]); |
| 5045 } |
| 5046 if (_json.containsKey("configVersion")) { |
| 5047 configVersion = _json["configVersion"]; |
| 5048 } |
| 5049 if (_json.containsKey("context")) { |
| 5050 context = new Context.fromJson(_json["context"]); |
| 5051 } |
| 5052 if (_json.containsKey("control")) { |
| 5053 control = new Control.fromJson(_json["control"]); |
| 5054 } |
| 5055 if (_json.containsKey("customError")) { |
| 5056 customError = new CustomError.fromJson(_json["customError"]); |
| 5057 } |
| 5058 if (_json.containsKey("documentation")) { |
| 5059 documentation = new Documentation.fromJson(_json["documentation"]); |
| 5060 } |
| 5061 if (_json.containsKey("enums")) { |
| 5062 enums = _json["enums"].map((value) => new Enum.fromJson(value)).toList(); |
| 5063 } |
| 5064 if (_json.containsKey("http")) { |
| 5065 http = new Http.fromJson(_json["http"]); |
| 5066 } |
| 5067 if (_json.containsKey("id")) { |
| 5068 id = _json["id"]; |
| 5069 } |
| 5070 if (_json.containsKey("logging")) { |
| 5071 logging = new Logging.fromJson(_json["logging"]); |
| 5072 } |
| 5073 if (_json.containsKey("logs")) { |
| 5074 logs = _json["logs"].map((value) => new LogDescriptor.fromJson(value)).toL
ist(); |
| 5075 } |
| 5076 if (_json.containsKey("metrics")) { |
| 5077 metrics = _json["metrics"].map((value) => new MetricDescriptor.fromJson(va
lue)).toList(); |
| 5078 } |
| 5079 if (_json.containsKey("monitoredResources")) { |
| 5080 monitoredResources = _json["monitoredResources"].map((value) => new Monito
redResourceDescriptor.fromJson(value)).toList(); |
| 5081 } |
| 5082 if (_json.containsKey("monitoring")) { |
| 5083 monitoring = new Monitoring.fromJson(_json["monitoring"]); |
| 5084 } |
| 5085 if (_json.containsKey("name")) { |
| 5086 name = _json["name"]; |
| 5087 } |
| 5088 if (_json.containsKey("producerProjectId")) { |
| 5089 producerProjectId = _json["producerProjectId"]; |
| 5090 } |
| 5091 if (_json.containsKey("systemParameters")) { |
| 5092 systemParameters = new SystemParameters.fromJson(_json["systemParameters"]
); |
| 5093 } |
| 5094 if (_json.containsKey("systemTypes")) { |
| 5095 systemTypes = _json["systemTypes"].map((value) => new Type.fromJson(value)
).toList(); |
| 5096 } |
| 5097 if (_json.containsKey("title")) { |
| 5098 title = _json["title"]; |
| 5099 } |
| 5100 if (_json.containsKey("types")) { |
| 5101 types = _json["types"].map((value) => new Type.fromJson(value)).toList(); |
| 5102 } |
| 5103 if (_json.containsKey("usage")) { |
| 5104 usage = new Usage.fromJson(_json["usage"]); |
| 5105 } |
| 5106 if (_json.containsKey("visibility")) { |
| 5107 visibility = new Visibility.fromJson(_json["visibility"]); |
| 5108 } |
| 5109 } |
| 5110 |
| 5111 core.Map toJson() { |
| 5112 var _json = new core.Map(); |
| 5113 if (apis != null) { |
| 5114 _json["apis"] = apis.map((value) => (value).toJson()).toList(); |
| 5115 } |
| 5116 if (authentication != null) { |
| 5117 _json["authentication"] = (authentication).toJson(); |
| 5118 } |
| 5119 if (backend != null) { |
| 5120 _json["backend"] = (backend).toJson(); |
| 5121 } |
| 5122 if (configVersion != null) { |
| 5123 _json["configVersion"] = configVersion; |
| 5124 } |
| 5125 if (context != null) { |
| 5126 _json["context"] = (context).toJson(); |
| 5127 } |
| 5128 if (control != null) { |
| 5129 _json["control"] = (control).toJson(); |
| 5130 } |
| 5131 if (customError != null) { |
| 5132 _json["customError"] = (customError).toJson(); |
| 5133 } |
| 5134 if (documentation != null) { |
| 5135 _json["documentation"] = (documentation).toJson(); |
| 5136 } |
| 5137 if (enums != null) { |
| 5138 _json["enums"] = enums.map((value) => (value).toJson()).toList(); |
| 5139 } |
| 5140 if (http != null) { |
| 5141 _json["http"] = (http).toJson(); |
| 5142 } |
| 5143 if (id != null) { |
| 5144 _json["id"] = id; |
| 5145 } |
| 5146 if (logging != null) { |
| 5147 _json["logging"] = (logging).toJson(); |
| 5148 } |
| 5149 if (logs != null) { |
| 5150 _json["logs"] = logs.map((value) => (value).toJson()).toList(); |
| 5151 } |
| 5152 if (metrics != null) { |
| 5153 _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
| 5154 } |
| 5155 if (monitoredResources != null) { |
| 5156 _json["monitoredResources"] = monitoredResources.map((value) => (value).to
Json()).toList(); |
| 5157 } |
| 5158 if (monitoring != null) { |
| 5159 _json["monitoring"] = (monitoring).toJson(); |
| 5160 } |
| 5161 if (name != null) { |
| 5162 _json["name"] = name; |
| 5163 } |
| 5164 if (producerProjectId != null) { |
| 5165 _json["producerProjectId"] = producerProjectId; |
| 5166 } |
| 5167 if (systemParameters != null) { |
| 5168 _json["systemParameters"] = (systemParameters).toJson(); |
| 5169 } |
| 5170 if (systemTypes != null) { |
| 5171 _json["systemTypes"] = systemTypes.map((value) => (value).toJson()).toList
(); |
| 5172 } |
| 5173 if (title != null) { |
| 5174 _json["title"] = title; |
| 5175 } |
| 5176 if (types != null) { |
| 5177 _json["types"] = types.map((value) => (value).toJson()).toList(); |
| 5178 } |
| 5179 if (usage != null) { |
| 5180 _json["usage"] = (usage).toJson(); |
| 5181 } |
| 5182 if (visibility != null) { |
| 5183 _json["visibility"] = (visibility).toJson(); |
| 5184 } |
| 5185 return _json; |
| 5186 } |
| 5187 } |
| 5188 |
| 5189 /** Request message for `SetIamPolicy` method. */ |
| 5190 class SetIamPolicyRequest { |
| 5191 /** |
| 5192 * REQUIRED: The complete policy to be applied to the `resource`. The size of |
| 5193 * the policy is limited to a few 10s of KB. An empty policy is a |
| 5194 * valid policy but certain Cloud Platform services (such as Projects) |
| 5195 * might reject them. |
| 5196 */ |
| 5197 Policy policy; |
| 5198 |
| 5199 SetIamPolicyRequest(); |
| 5200 |
| 5201 SetIamPolicyRequest.fromJson(core.Map _json) { |
| 5202 if (_json.containsKey("policy")) { |
| 5203 policy = new Policy.fromJson(_json["policy"]); |
| 5204 } |
| 5205 } |
| 5206 |
| 5207 core.Map toJson() { |
| 5208 var _json = new core.Map(); |
| 5209 if (policy != null) { |
| 5210 _json["policy"] = (policy).toJson(); |
| 5211 } |
| 5212 return _json; |
| 5213 } |
| 5214 } |
| 5215 |
| 5216 /** |
| 5217 * `SourceContext` represents information about the source of a |
| 5218 * protobuf element, like the file in which it is defined. |
| 5219 */ |
| 5220 class SourceContext { |
| 5221 /** |
| 5222 * The path-qualified name of the .proto file that contained the associated |
| 5223 * protobuf element. For example: `"google/protobuf/source_context.proto"`. |
| 5224 */ |
| 5225 core.String fileName; |
| 5226 |
| 5227 SourceContext(); |
| 5228 |
| 5229 SourceContext.fromJson(core.Map _json) { |
| 5230 if (_json.containsKey("fileName")) { |
| 5231 fileName = _json["fileName"]; |
| 5232 } |
| 5233 } |
| 5234 |
| 5235 core.Map toJson() { |
| 5236 var _json = new core.Map(); |
| 5237 if (fileName != null) { |
| 5238 _json["fileName"] = fileName; |
| 5239 } |
| 5240 return _json; |
| 5241 } |
| 5242 } |
| 5243 |
| 5244 /** |
| 5245 * The `Status` type defines a logical error model that is suitable for |
| 5246 * different |
| 5247 * programming environments, including REST APIs and RPC APIs. It is used by |
| 5248 * [gRPC](https://github.com/grpc). The error model is designed to be: |
| 5249 * |
| 5250 * - Simple to use and understand for most users |
| 5251 * - Flexible enough to meet unexpected needs |
| 5252 * |
| 5253 * # Overview |
| 5254 * |
| 5255 * The `Status` message contains three pieces of data: error code, error |
| 5256 * message, |
| 5257 * and error details. The error code should be an enum value of |
| 5258 * google.rpc.Code, but it may accept additional error codes if needed. The |
| 5259 * error message should be a developer-facing English message that helps |
| 5260 * developers *understand* and *resolve* the error. If a localized user-facing |
| 5261 * error message is needed, put the localized message in the error details or |
| 5262 * localize it in the client. The optional error details may contain arbitrary |
| 5263 * information about the error. There is a predefined set of error detail types |
| 5264 * in the package `google.rpc` which can be used for common error conditions. |
| 5265 * |
| 5266 * # Language mapping |
| 5267 * |
| 5268 * The `Status` message is the logical representation of the error model, but it |
| 5269 * is not necessarily the actual wire format. When the `Status` message is |
| 5270 * exposed in different client libraries and different wire protocols, it can be |
| 5271 * mapped differently. For example, it will likely be mapped to some exceptions |
| 5272 * in Java, but more likely mapped to some error codes in C. |
| 5273 * |
| 5274 * # Other uses |
| 5275 * |
| 5276 * The error model and the `Status` message can be used in a variety of |
| 5277 * environments, either with or without APIs, to provide a |
| 5278 * consistent developer experience across different environments. |
| 5279 * |
| 5280 * Example uses of this error model include: |
| 5281 * |
| 5282 * - Partial errors. If a service needs to return partial errors to the client, |
| 5283 * it may embed the `Status` in the normal response to indicate the partial |
| 5284 * errors. |
| 5285 * |
| 5286 * - Workflow errors. A typical workflow has multiple steps. Each step may |
| 5287 * have a `Status` message for error reporting purpose. |
| 5288 * |
| 5289 * - Batch operations. If a client uses batch request and batch response, the |
| 5290 * `Status` message should be used directly inside batch response, one for |
| 5291 * each error sub-response. |
| 5292 * |
| 5293 * - Asynchronous operations. If an API call embeds asynchronous operation |
| 5294 * results in its response, the status of those operations should be |
| 5295 * represented directly using the `Status` message. |
| 5296 * |
| 5297 * - Logging. If some API errors are stored in logs, the message `Status` could |
| 5298 * be used directly after any stripping needed for security/privacy reasons. |
| 5299 */ |
| 5300 class Status { |
| 5301 /** The status code, which should be an enum value of google.rpc.Code. */ |
| 5302 core.int code; |
| 5303 /** |
| 5304 * A list of messages that carry the error details. There will be a |
| 5305 * common set of message types for APIs to use. |
| 5306 * |
| 5307 * The values for Object must be JSON objects. It can consist of `num`, |
| 5308 * `String`, `bool` and `null` as well as `Map` and `List` values. |
| 5309 */ |
| 5310 core.List<core.Map<core.String, core.Object>> details; |
| 5311 /** |
| 5312 * A developer-facing error message, which should be in English. Any |
| 5313 * user-facing error message should be localized and sent in the |
| 5314 * google.rpc.Status.details field, or localized by the client. |
| 5315 */ |
| 5316 core.String message; |
| 5317 |
| 5318 Status(); |
| 5319 |
| 5320 Status.fromJson(core.Map _json) { |
| 5321 if (_json.containsKey("code")) { |
| 5322 code = _json["code"]; |
| 5323 } |
| 5324 if (_json.containsKey("details")) { |
| 5325 details = _json["details"]; |
| 5326 } |
| 5327 if (_json.containsKey("message")) { |
| 5328 message = _json["message"]; |
| 5329 } |
| 5330 } |
| 5331 |
| 5332 core.Map toJson() { |
| 5333 var _json = new core.Map(); |
| 5334 if (code != null) { |
| 5335 _json["code"] = code; |
| 5336 } |
| 5337 if (details != null) { |
| 5338 _json["details"] = details; |
| 5339 } |
| 5340 if (message != null) { |
| 5341 _json["message"] = message; |
| 5342 } |
| 5343 return _json; |
| 5344 } |
| 5345 } |
| 5346 |
| 5347 /** Represents the status of one operation step. */ |
| 5348 class Step { |
| 5349 /** The short description of the step. */ |
| 5350 core.String description; |
| 5351 /** |
| 5352 * The status code. |
| 5353 * Possible string values are: |
| 5354 * - "STATUS_UNSPECIFIED" : Unspecifed code. |
| 5355 * - "DONE" : The step has completed without errors. |
| 5356 * - "NOT_STARTED" : The step has not started yet. |
| 5357 * - "IN_PROGRESS" : The step is in progress. |
| 5358 * - "FAILED" : The step has completed with errors. |
| 5359 * - "CANCELLED" : The step has completed with cancellation. |
| 5360 */ |
| 5361 core.String status; |
| 5362 |
| 5363 Step(); |
| 5364 |
| 5365 Step.fromJson(core.Map _json) { |
| 5366 if (_json.containsKey("description")) { |
| 5367 description = _json["description"]; |
| 5368 } |
| 5369 if (_json.containsKey("status")) { |
| 5370 status = _json["status"]; |
| 5371 } |
| 5372 } |
| 5373 |
| 5374 core.Map toJson() { |
| 5375 var _json = new core.Map(); |
| 5376 if (description != null) { |
| 5377 _json["description"] = description; |
| 5378 } |
| 5379 if (status != null) { |
| 5380 _json["status"] = status; |
| 5381 } |
| 5382 return _json; |
| 5383 } |
| 5384 } |
| 5385 |
| 5386 /** Request message for SubmitConfigSource method. */ |
| 5387 class SubmitConfigSourceRequest { |
| 5388 /** The source configuration for the service. */ |
| 5389 ConfigSource configSource; |
| 5390 /** |
| 5391 * Optional. If set, this will result in the generation of a |
| 5392 * `google.api.Service` configuration based on the `ConfigSource` provided, |
| 5393 * but the generated config and the sources will NOT be persisted. |
| 5394 */ |
| 5395 core.bool validateOnly; |
| 5396 |
| 5397 SubmitConfigSourceRequest(); |
| 5398 |
| 5399 SubmitConfigSourceRequest.fromJson(core.Map _json) { |
| 5400 if (_json.containsKey("configSource")) { |
| 5401 configSource = new ConfigSource.fromJson(_json["configSource"]); |
| 5402 } |
| 5403 if (_json.containsKey("validateOnly")) { |
| 5404 validateOnly = _json["validateOnly"]; |
| 5405 } |
| 5406 } |
| 5407 |
| 5408 core.Map toJson() { |
| 5409 var _json = new core.Map(); |
| 5410 if (configSource != null) { |
| 5411 _json["configSource"] = (configSource).toJson(); |
| 5412 } |
| 5413 if (validateOnly != null) { |
| 5414 _json["validateOnly"] = validateOnly; |
| 5415 } |
| 5416 return _json; |
| 5417 } |
| 5418 } |
| 5419 |
| 5420 /** Response message for SubmitConfigSource method. */ |
| 5421 class SubmitConfigSourceResponse { |
| 5422 /** The generated service configuration. */ |
| 5423 Service serviceConfig; |
| 5424 |
| 5425 SubmitConfigSourceResponse(); |
| 5426 |
| 5427 SubmitConfigSourceResponse.fromJson(core.Map _json) { |
| 5428 if (_json.containsKey("serviceConfig")) { |
| 5429 serviceConfig = new Service.fromJson(_json["serviceConfig"]); |
| 5430 } |
| 5431 } |
| 5432 |
| 5433 core.Map toJson() { |
| 5434 var _json = new core.Map(); |
| 5435 if (serviceConfig != null) { |
| 5436 _json["serviceConfig"] = (serviceConfig).toJson(); |
| 5437 } |
| 5438 return _json; |
| 5439 } |
| 5440 } |
| 5441 |
| 5442 /** |
| 5443 * Define a parameter's name and location. The parameter may be passed as either |
| 5444 * an HTTP header or a URL query parameter, and if both are passed the behavior |
| 5445 * is implementation-dependent. |
| 5446 */ |
| 5447 class SystemParameter { |
| 5448 /** |
| 5449 * Define the HTTP header name to use for the parameter. It is case |
| 5450 * insensitive. |
| 5451 */ |
| 5452 core.String httpHeader; |
| 5453 /** |
| 5454 * Define the name of the parameter, such as "api_key", "alt", "callback", |
| 5455 * and etc. It is case sensitive. |
| 5456 */ |
| 5457 core.String name; |
| 5458 /** |
| 5459 * Define the URL query parameter name to use for the parameter. It is case |
| 5460 * sensitive. |
| 5461 */ |
| 5462 core.String urlQueryParameter; |
| 5463 |
| 5464 SystemParameter(); |
| 5465 |
| 5466 SystemParameter.fromJson(core.Map _json) { |
| 5467 if (_json.containsKey("httpHeader")) { |
| 5468 httpHeader = _json["httpHeader"]; |
| 5469 } |
| 5470 if (_json.containsKey("name")) { |
| 5471 name = _json["name"]; |
| 5472 } |
| 5473 if (_json.containsKey("urlQueryParameter")) { |
| 5474 urlQueryParameter = _json["urlQueryParameter"]; |
| 5475 } |
| 5476 } |
| 5477 |
| 5478 core.Map toJson() { |
| 5479 var _json = new core.Map(); |
| 5480 if (httpHeader != null) { |
| 5481 _json["httpHeader"] = httpHeader; |
| 5482 } |
| 5483 if (name != null) { |
| 5484 _json["name"] = name; |
| 5485 } |
| 5486 if (urlQueryParameter != null) { |
| 5487 _json["urlQueryParameter"] = urlQueryParameter; |
| 5488 } |
| 5489 return _json; |
| 5490 } |
| 5491 } |
| 5492 |
| 5493 /** |
| 5494 * Define a system parameter rule mapping system parameter definitions to |
| 5495 * methods. |
| 5496 */ |
| 5497 class SystemParameterRule { |
| 5498 /** |
| 5499 * Define parameters. Multiple names may be defined for a parameter. |
| 5500 * For a given method call, only one of them should be used. If multiple |
| 5501 * names are used the behavior is implementation-dependent. |
| 5502 * If none of the specified names are present the behavior is |
| 5503 * parameter-dependent. |
| 5504 */ |
| 5505 core.List<SystemParameter> parameters; |
| 5506 /** |
| 5507 * Selects the methods to which this rule applies. Use '*' to indicate all |
| 5508 * methods in all APIs. |
| 5509 * |
| 5510 * Refer to selector for syntax details. |
| 5511 */ |
| 5512 core.String selector; |
| 5513 |
| 5514 SystemParameterRule(); |
| 5515 |
| 5516 SystemParameterRule.fromJson(core.Map _json) { |
| 5517 if (_json.containsKey("parameters")) { |
| 5518 parameters = _json["parameters"].map((value) => new SystemParameter.fromJs
on(value)).toList(); |
| 5519 } |
| 5520 if (_json.containsKey("selector")) { |
| 5521 selector = _json["selector"]; |
| 5522 } |
| 5523 } |
| 5524 |
| 5525 core.Map toJson() { |
| 5526 var _json = new core.Map(); |
| 5527 if (parameters != null) { |
| 5528 _json["parameters"] = parameters.map((value) => (value).toJson()).toList()
; |
| 5529 } |
| 5530 if (selector != null) { |
| 5531 _json["selector"] = selector; |
| 5532 } |
| 5533 return _json; |
| 5534 } |
| 5535 } |
| 5536 |
| 5537 /** |
| 5538 * ### System parameter configuration |
| 5539 * |
| 5540 * A system parameter is a special kind of parameter defined by the API |
| 5541 * system, not by an individual API. It is typically mapped to an HTTP header |
| 5542 * and/or a URL query parameter. This configuration specifies which methods |
| 5543 * change the names of the system parameters. |
| 5544 */ |
| 5545 class SystemParameters { |
| 5546 /** |
| 5547 * Define system parameters. |
| 5548 * |
| 5549 * The parameters defined here will override the default parameters |
| 5550 * implemented by the system. If this field is missing from the service |
| 5551 * config, default system parameters will be used. Default system parameters |
| 5552 * and names is implementation-dependent. |
| 5553 * |
| 5554 * Example: define api key and alt name for all methods |
| 5555 * |
| 5556 * system_parameters |
| 5557 * rules: |
| 5558 * - selector: "*" |
| 5559 * parameters: |
| 5560 * - name: api_key |
| 5561 * url_query_parameter: api_key |
| 5562 * - name: alt |
| 5563 * http_header: Response-Content-Type |
| 5564 * |
| 5565 * Example: define 2 api key names for a specific method. |
| 5566 * |
| 5567 * system_parameters |
| 5568 * rules: |
| 5569 * - selector: "/ListShelves" |
| 5570 * parameters: |
| 5571 * - name: api_key |
| 5572 * http_header: Api-Key1 |
| 5573 * - name: api_key |
| 5574 * http_header: Api-Key2 |
| 5575 * |
| 5576 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 5577 */ |
| 5578 core.List<SystemParameterRule> rules; |
| 5579 |
| 5580 SystemParameters(); |
| 5581 |
| 5582 SystemParameters.fromJson(core.Map _json) { |
| 5583 if (_json.containsKey("rules")) { |
| 5584 rules = _json["rules"].map((value) => new SystemParameterRule.fromJson(val
ue)).toList(); |
| 5585 } |
| 5586 } |
| 5587 |
| 5588 core.Map toJson() { |
| 5589 var _json = new core.Map(); |
| 5590 if (rules != null) { |
| 5591 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 5592 } |
| 5593 return _json; |
| 5594 } |
| 5595 } |
| 5596 |
| 5597 /** Request message for `TestIamPermissions` method. */ |
| 5598 class TestIamPermissionsRequest { |
| 5599 /** |
| 5600 * The set of permissions to check for the `resource`. Permissions with |
| 5601 * wildcards (such as '*' or 'storage.*') are not allowed. For more |
| 5602 * information see |
| 5603 * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). |
| 5604 */ |
| 5605 core.List<core.String> permissions; |
| 5606 |
| 5607 TestIamPermissionsRequest(); |
| 5608 |
| 5609 TestIamPermissionsRequest.fromJson(core.Map _json) { |
| 5610 if (_json.containsKey("permissions")) { |
| 5611 permissions = _json["permissions"]; |
| 5612 } |
| 5613 } |
| 5614 |
| 5615 core.Map toJson() { |
| 5616 var _json = new core.Map(); |
| 5617 if (permissions != null) { |
| 5618 _json["permissions"] = permissions; |
| 5619 } |
| 5620 return _json; |
| 5621 } |
| 5622 } |
| 5623 |
| 5624 /** Response message for `TestIamPermissions` method. */ |
| 5625 class TestIamPermissionsResponse { |
| 5626 /** |
| 5627 * A subset of `TestPermissionsRequest.permissions` that the caller is |
| 5628 * allowed. |
| 5629 */ |
| 5630 core.List<core.String> permissions; |
| 5631 |
| 5632 TestIamPermissionsResponse(); |
| 5633 |
| 5634 TestIamPermissionsResponse.fromJson(core.Map _json) { |
| 5635 if (_json.containsKey("permissions")) { |
| 5636 permissions = _json["permissions"]; |
| 5637 } |
| 5638 } |
| 5639 |
| 5640 core.Map toJson() { |
| 5641 var _json = new core.Map(); |
| 5642 if (permissions != null) { |
| 5643 _json["permissions"] = permissions; |
| 5644 } |
| 5645 return _json; |
| 5646 } |
| 5647 } |
| 5648 |
| 5649 /** |
| 5650 * Strategy that specifies how Google Service Control should select |
| 5651 * different |
| 5652 * versions of service configurations based on traffic percentage. |
| 5653 * |
| 5654 * One example of how to gradually rollout a new service configuration using |
| 5655 * this |
| 5656 * strategy: |
| 5657 * Day 1 |
| 5658 * |
| 5659 * Rollout { |
| 5660 * id: "example.googleapis.com/rollout_20160206" |
| 5661 * traffic_percent_strategy { |
| 5662 * percentages: { |
| 5663 * "example.googleapis.com/20160201": 70.00 |
| 5664 * "example.googleapis.com/20160206": 30.00 |
| 5665 * } |
| 5666 * } |
| 5667 * } |
| 5668 * |
| 5669 * Day 2 |
| 5670 * |
| 5671 * Rollout { |
| 5672 * id: "example.googleapis.com/rollout_20160207" |
| 5673 * traffic_percent_strategy: { |
| 5674 * percentages: { |
| 5675 * "example.googleapis.com/20160206": 100.00 |
| 5676 * } |
| 5677 * } |
| 5678 * } |
| 5679 */ |
| 5680 class TrafficPercentStrategy { |
| 5681 /** |
| 5682 * Maps service configuration IDs to their corresponding traffic percentage. |
| 5683 * Key is the service configuration ID, Value is the traffic percentage |
| 5684 * which must be greater than 0.0 and the sum must equal to 100.0. |
| 5685 */ |
| 5686 core.Map<core.String, core.double> percentages; |
| 5687 |
| 5688 TrafficPercentStrategy(); |
| 5689 |
| 5690 TrafficPercentStrategy.fromJson(core.Map _json) { |
| 5691 if (_json.containsKey("percentages")) { |
| 5692 percentages = _json["percentages"]; |
| 5693 } |
| 5694 } |
| 5695 |
| 5696 core.Map toJson() { |
| 5697 var _json = new core.Map(); |
| 5698 if (percentages != null) { |
| 5699 _json["percentages"] = percentages; |
| 5700 } |
| 5701 return _json; |
| 5702 } |
| 5703 } |
| 5704 |
| 5705 /** A protocol buffer message type. */ |
| 5706 class Type { |
| 5707 /** The list of fields. */ |
| 5708 core.List<Field> fields; |
| 5709 /** The fully qualified message name. */ |
| 5710 core.String name; |
| 5711 /** The list of types appearing in `oneof` definitions in this type. */ |
| 5712 core.List<core.String> oneofs; |
| 5713 /** The protocol buffer options. */ |
| 5714 core.List<Option> options; |
| 5715 /** The source context. */ |
| 5716 SourceContext sourceContext; |
| 5717 /** |
| 5718 * The source syntax. |
| 5719 * Possible string values are: |
| 5720 * - "SYNTAX_PROTO2" : Syntax `proto2`. |
| 5721 * - "SYNTAX_PROTO3" : Syntax `proto3`. |
| 5722 */ |
| 5723 core.String syntax; |
| 5724 |
| 5725 Type(); |
| 5726 |
| 5727 Type.fromJson(core.Map _json) { |
| 5728 if (_json.containsKey("fields")) { |
| 5729 fields = _json["fields"].map((value) => new Field.fromJson(value)).toList(
); |
| 5730 } |
| 5731 if (_json.containsKey("name")) { |
| 5732 name = _json["name"]; |
| 5733 } |
| 5734 if (_json.containsKey("oneofs")) { |
| 5735 oneofs = _json["oneofs"]; |
| 5736 } |
| 5737 if (_json.containsKey("options")) { |
| 5738 options = _json["options"].map((value) => new Option.fromJson(value)).toLi
st(); |
| 5739 } |
| 5740 if (_json.containsKey("sourceContext")) { |
| 5741 sourceContext = new SourceContext.fromJson(_json["sourceContext"]); |
| 5742 } |
| 5743 if (_json.containsKey("syntax")) { |
| 5744 syntax = _json["syntax"]; |
| 5745 } |
| 5746 } |
| 5747 |
| 5748 core.Map toJson() { |
| 5749 var _json = new core.Map(); |
| 5750 if (fields != null) { |
| 5751 _json["fields"] = fields.map((value) => (value).toJson()).toList(); |
| 5752 } |
| 5753 if (name != null) { |
| 5754 _json["name"] = name; |
| 5755 } |
| 5756 if (oneofs != null) { |
| 5757 _json["oneofs"] = oneofs; |
| 5758 } |
| 5759 if (options != null) { |
| 5760 _json["options"] = options.map((value) => (value).toJson()).toList(); |
| 5761 } |
| 5762 if (sourceContext != null) { |
| 5763 _json["sourceContext"] = (sourceContext).toJson(); |
| 5764 } |
| 5765 if (syntax != null) { |
| 5766 _json["syntax"] = syntax; |
| 5767 } |
| 5768 return _json; |
| 5769 } |
| 5770 } |
| 5771 |
| 5772 /** Response message for UndeleteService method. */ |
| 5773 class UndeleteServiceResponse { |
| 5774 /** Revived service resource. */ |
| 5775 ManagedService service; |
| 5776 |
| 5777 UndeleteServiceResponse(); |
| 5778 |
| 5779 UndeleteServiceResponse.fromJson(core.Map _json) { |
| 5780 if (_json.containsKey("service")) { |
| 5781 service = new ManagedService.fromJson(_json["service"]); |
| 5782 } |
| 5783 } |
| 5784 |
| 5785 core.Map toJson() { |
| 5786 var _json = new core.Map(); |
| 5787 if (service != null) { |
| 5788 _json["service"] = (service).toJson(); |
| 5789 } |
| 5790 return _json; |
| 5791 } |
| 5792 } |
| 5793 |
| 5794 /** Configuration controlling usage of a service. */ |
| 5795 class Usage { |
| 5796 /** |
| 5797 * Requirements that must be satisfied before a consumer project can use the |
| 5798 * service. Each requirement is of the form <service.name>/<requirement-id>; |
| 5799 * for example 'serviceusage.googleapis.com/billing-enabled'. |
| 5800 */ |
| 5801 core.List<core.String> requirements; |
| 5802 /** |
| 5803 * A list of usage rules that apply to individual API methods. |
| 5804 * |
| 5805 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 5806 */ |
| 5807 core.List<UsageRule> rules; |
| 5808 |
| 5809 Usage(); |
| 5810 |
| 5811 Usage.fromJson(core.Map _json) { |
| 5812 if (_json.containsKey("requirements")) { |
| 5813 requirements = _json["requirements"]; |
| 5814 } |
| 5815 if (_json.containsKey("rules")) { |
| 5816 rules = _json["rules"].map((value) => new UsageRule.fromJson(value)).toLis
t(); |
| 5817 } |
| 5818 } |
| 5819 |
| 5820 core.Map toJson() { |
| 5821 var _json = new core.Map(); |
| 5822 if (requirements != null) { |
| 5823 _json["requirements"] = requirements; |
| 5824 } |
| 5825 if (rules != null) { |
| 5826 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 5827 } |
| 5828 return _json; |
| 5829 } |
| 5830 } |
| 5831 |
| 5832 /** |
| 5833 * Usage configuration rules for the service. |
| 5834 * |
| 5835 * NOTE: Under development. |
| 5836 * |
| 5837 * |
| 5838 * Use this rule to configure unregistered calls for the service. Unregistered |
| 5839 * calls are calls that do not contain consumer project identity. |
| 5840 * (Example: calls that do not contain an API key). |
| 5841 * By default, API methods do not allow unregistered calls, and each method call |
| 5842 * must be identified by a consumer project identity. Use this rule to |
| 5843 * allow/disallow unregistered calls. |
| 5844 * |
| 5845 * Example of an API that wants to allow unregistered calls for entire service. |
| 5846 * |
| 5847 * usage: |
| 5848 * rules: |
| 5849 * - selector: "*" |
| 5850 * allow_unregistered_calls: true |
| 5851 * |
| 5852 * Example of a method that wants to allow unregistered calls. |
| 5853 * |
| 5854 * usage: |
| 5855 * rules: |
| 5856 * - selector: "google.example.library.v1.LibraryService.CreateBook" |
| 5857 * allow_unregistered_calls: true |
| 5858 */ |
| 5859 class UsageRule { |
| 5860 /** True, if the method allows unregistered calls; false otherwise. */ |
| 5861 core.bool allowUnregisteredCalls; |
| 5862 /** |
| 5863 * Selects the methods to which this rule applies. Use '*' to indicate all |
| 5864 * methods in all APIs. |
| 5865 * |
| 5866 * Refer to selector for syntax details. |
| 5867 */ |
| 5868 core.String selector; |
| 5869 |
| 5870 UsageRule(); |
| 5871 |
| 5872 UsageRule.fromJson(core.Map _json) { |
| 5873 if (_json.containsKey("allowUnregisteredCalls")) { |
| 5874 allowUnregisteredCalls = _json["allowUnregisteredCalls"]; |
| 5875 } |
| 5876 if (_json.containsKey("selector")) { |
| 5877 selector = _json["selector"]; |
| 5878 } |
| 5879 } |
| 5880 |
| 5881 core.Map toJson() { |
| 5882 var _json = new core.Map(); |
| 5883 if (allowUnregisteredCalls != null) { |
| 5884 _json["allowUnregisteredCalls"] = allowUnregisteredCalls; |
| 5885 } |
| 5886 if (selector != null) { |
| 5887 _json["selector"] = selector; |
| 5888 } |
| 5889 return _json; |
| 5890 } |
| 5891 } |
| 5892 |
| 5893 /** |
| 5894 * `Visibility` defines restrictions for the visibility of service |
| 5895 * elements. Restrictions are specified using visibility labels |
| 5896 * (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects. |
| 5897 * |
| 5898 * Users and projects can have access to more than one visibility label. The |
| 5899 * effective visibility for multiple labels is the union of each label's |
| 5900 * elements, plus any unrestricted elements. |
| 5901 * |
| 5902 * If an element and its parents have no restrictions, visibility is |
| 5903 * unconditionally granted. |
| 5904 * |
| 5905 * Example: |
| 5906 * |
| 5907 * visibility: |
| 5908 * rules: |
| 5909 * - selector: google.calendar.Calendar.EnhancedSearch |
| 5910 * restriction: TRUSTED_TESTER |
| 5911 * - selector: google.calendar.Calendar.Delegate |
| 5912 * restriction: GOOGLE_INTERNAL |
| 5913 * |
| 5914 * Here, all methods are publicly visible except for the restricted methods |
| 5915 * EnhancedSearch and Delegate. |
| 5916 */ |
| 5917 class Visibility { |
| 5918 /** |
| 5919 * A list of visibility rules that apply to individual API elements. |
| 5920 * |
| 5921 * **NOTE:** All service configuration rules follow "last one wins" order. |
| 5922 */ |
| 5923 core.List<VisibilityRule> rules; |
| 5924 |
| 5925 Visibility(); |
| 5926 |
| 5927 Visibility.fromJson(core.Map _json) { |
| 5928 if (_json.containsKey("rules")) { |
| 5929 rules = _json["rules"].map((value) => new VisibilityRule.fromJson(value)).
toList(); |
| 5930 } |
| 5931 } |
| 5932 |
| 5933 core.Map toJson() { |
| 5934 var _json = new core.Map(); |
| 5935 if (rules != null) { |
| 5936 _json["rules"] = rules.map((value) => (value).toJson()).toList(); |
| 5937 } |
| 5938 return _json; |
| 5939 } |
| 5940 } |
| 5941 |
| 5942 /** |
| 5943 * A visibility rule provides visibility configuration for an individual API |
| 5944 * element. |
| 5945 */ |
| 5946 class VisibilityRule { |
| 5947 /** |
| 5948 * Lists the visibility labels for this rule. Any of the listed labels grants |
| 5949 * visibility to the element. |
| 5950 * |
| 5951 * If a rule has multiple labels, removing one of the labels but not all of |
| 5952 * them can break clients. |
| 5953 * |
| 5954 * Example: |
| 5955 * |
| 5956 * visibility: |
| 5957 * rules: |
| 5958 * - selector: google.calendar.Calendar.EnhancedSearch |
| 5959 * restriction: GOOGLE_INTERNAL, TRUSTED_TESTER |
| 5960 * |
| 5961 * Removing GOOGLE_INTERNAL from this restriction will break clients that |
| 5962 * rely on this method and only had access to it through GOOGLE_INTERNAL. |
| 5963 */ |
| 5964 core.String restriction; |
| 5965 /** |
| 5966 * Selects methods, messages, fields, enums, etc. to which this rule applies. |
| 5967 * |
| 5968 * Refer to selector for syntax details. |
| 5969 */ |
| 5970 core.String selector; |
| 5971 |
| 5972 VisibilityRule(); |
| 5973 |
| 5974 VisibilityRule.fromJson(core.Map _json) { |
| 5975 if (_json.containsKey("restriction")) { |
| 5976 restriction = _json["restriction"]; |
| 5977 } |
| 5978 if (_json.containsKey("selector")) { |
| 5979 selector = _json["selector"]; |
| 5980 } |
| 5981 } |
| 5982 |
| 5983 core.Map toJson() { |
| 5984 var _json = new core.Map(); |
| 5985 if (restriction != null) { |
| 5986 _json["restriction"] = restriction; |
| 5987 } |
| 5988 if (selector != null) { |
| 5989 _json["selector"] = selector; |
| 5990 } |
| 5991 return _json; |
| 5992 } |
| 5993 } |
| OLD | NEW |