1#!/usr/bin/env python 2"""CLI for servicemanagement, version v1.""" 3# NOTE: This file is autogenerated and should not be edited by hand. 4 5import code 6import os 7import platform 8import sys 9 10from apitools.base.protorpclite import message_types 11from apitools.base.protorpclite import messages 12 13from google.apputils import appcommands 14import gflags as flags 15 16import apitools.base.py as apitools_base 17from apitools.base.py import cli as apitools_base_cli 18import servicemanagement_v1_client as client_lib 19import servicemanagement_v1_messages as messages 20 21 22def _DeclareServicemanagementFlags(): 23 """Declare global flags in an idempotent way.""" 24 if 'api_endpoint' in flags.FLAGS: 25 return 26 flags.DEFINE_string( 27 'api_endpoint', 28 u'https://servicemanagement.googleapis.com/', 29 'URL of the API endpoint to use.', 30 short_name='servicemanagement_url') 31 flags.DEFINE_string( 32 'history_file', 33 u'~/.servicemanagement.v1.history', 34 'File with interactive shell history.') 35 flags.DEFINE_multistring( 36 'add_header', [], 37 'Additional http headers (as key=value strings). ' 38 'Can be specified multiple times.') 39 flags.DEFINE_string( 40 'service_account_json_keyfile', '', 41 'Filename for a JSON service account key downloaded' 42 ' from the Developer Console.') 43 flags.DEFINE_enum( 44 'f__xgafv', 45 u'_1', 46 [u'_1', u'_2'], 47 u'V1 error format.') 48 flags.DEFINE_string( 49 'access_token', 50 None, 51 u'OAuth access token.') 52 flags.DEFINE_enum( 53 'alt', 54 u'json', 55 [u'json', u'media', u'proto'], 56 u'Data format for response.') 57 flags.DEFINE_string( 58 'bearer_token', 59 None, 60 u'OAuth bearer token.') 61 flags.DEFINE_string( 62 'callback', 63 None, 64 u'JSONP') 65 flags.DEFINE_string( 66 'fields', 67 None, 68 u'Selector specifying which fields to include in a partial response.') 69 flags.DEFINE_string( 70 'key', 71 None, 72 u'API key. Your API key identifies your project and provides you with ' 73 u'API access, quota, and reports. Required unless you provide an OAuth ' 74 u'2.0 token.') 75 flags.DEFINE_string( 76 'oauth_token', 77 None, 78 u'OAuth 2.0 token for the current user.') 79 flags.DEFINE_boolean( 80 'pp', 81 'True', 82 u'Pretty-print response.') 83 flags.DEFINE_boolean( 84 'prettyPrint', 85 'True', 86 u'Returns response with indentations and line breaks.') 87 flags.DEFINE_string( 88 'quotaUser', 89 None, 90 u'Available to use for quota purposes for server-side applications. Can' 91 u' be any arbitrary string assigned to a user, but should not exceed 40' 92 u' characters.') 93 flags.DEFINE_string( 94 'trace', 95 None, 96 'A tracing token of the form "token:<tokenid>" to include in api ' 97 'requests.') 98 flags.DEFINE_string( 99 'uploadType', 100 None, 101 u'Legacy upload protocol for media (e.g. "media", "multipart").') 102 flags.DEFINE_string( 103 'upload_protocol', 104 None, 105 u'Upload protocol for media (e.g. "raw", "multipart").') 106 107 108FLAGS = flags.FLAGS 109apitools_base_cli.DeclareBaseFlags() 110_DeclareServicemanagementFlags() 111 112 113def GetGlobalParamsFromFlags(): 114 """Return a StandardQueryParameters based on flags.""" 115 result = messages.StandardQueryParameters() 116 if FLAGS['f__xgafv'].present: 117 result.f__xgafv = messages.StandardQueryParameters.FXgafvValueValuesEnum(FLAGS.f__xgafv) 118 if FLAGS['access_token'].present: 119 result.access_token = FLAGS.access_token.decode('utf8') 120 if FLAGS['alt'].present: 121 result.alt = messages.StandardQueryParameters.AltValueValuesEnum(FLAGS.alt) 122 if FLAGS['bearer_token'].present: 123 result.bearer_token = FLAGS.bearer_token.decode('utf8') 124 if FLAGS['callback'].present: 125 result.callback = FLAGS.callback.decode('utf8') 126 if FLAGS['fields'].present: 127 result.fields = FLAGS.fields.decode('utf8') 128 if FLAGS['key'].present: 129 result.key = FLAGS.key.decode('utf8') 130 if FLAGS['oauth_token'].present: 131 result.oauth_token = FLAGS.oauth_token.decode('utf8') 132 if FLAGS['pp'].present: 133 result.pp = FLAGS.pp 134 if FLAGS['prettyPrint'].present: 135 result.prettyPrint = FLAGS.prettyPrint 136 if FLAGS['quotaUser'].present: 137 result.quotaUser = FLAGS.quotaUser.decode('utf8') 138 if FLAGS['trace'].present: 139 result.trace = FLAGS.trace.decode('utf8') 140 if FLAGS['uploadType'].present: 141 result.uploadType = FLAGS.uploadType.decode('utf8') 142 if FLAGS['upload_protocol'].present: 143 result.upload_protocol = FLAGS.upload_protocol.decode('utf8') 144 return result 145 146 147def GetClientFromFlags(): 148 """Return a client object, configured from flags.""" 149 log_request = FLAGS.log_request or FLAGS.log_request_response 150 log_response = FLAGS.log_response or FLAGS.log_request_response 151 api_endpoint = apitools_base.NormalizeApiEndpoint(FLAGS.api_endpoint) 152 additional_http_headers = dict(x.split('=', 1) for x in FLAGS.add_header) 153 credentials_args = { 154 'service_account_json_keyfile': os.path.expanduser(FLAGS.service_account_json_keyfile) 155 } 156 try: 157 client = client_lib.ServicemanagementV1( 158 api_endpoint, log_request=log_request, 159 log_response=log_response, 160 credentials_args=credentials_args, 161 additional_http_headers=additional_http_headers) 162 except apitools_base.CredentialsError as e: 163 print 'Error creating credentials: %s' % e 164 sys.exit(1) 165 return client 166 167 168class PyShell(appcommands.Cmd): 169 170 def Run(self, _): 171 """Run an interactive python shell with the client.""" 172 client = GetClientFromFlags() 173 params = GetGlobalParamsFromFlags() 174 for field in params.all_fields(): 175 value = params.get_assigned_value(field.name) 176 if value != field.default: 177 client.AddGlobalParam(field.name, value) 178 banner = """ 179 == servicemanagement interactive console == 180 client: a servicemanagement client 181 apitools_base: base apitools module 182 messages: the generated messages module 183 """ 184 local_vars = { 185 'apitools_base': apitools_base, 186 'client': client, 187 'client_lib': client_lib, 188 'messages': messages, 189 } 190 if platform.system() == 'Linux': 191 console = apitools_base_cli.ConsoleWithReadline( 192 local_vars, histfile=FLAGS.history_file) 193 else: 194 console = code.InteractiveConsole(local_vars) 195 try: 196 console.interact(banner) 197 except SystemExit as e: 198 return e.code 199 200 201class OperationsGet(apitools_base_cli.NewCmd): 202 """Command wrapping operations.Get.""" 203 204 usage = """operations_get <operationsId>""" 205 206 def __init__(self, name, fv): 207 super(OperationsGet, self).__init__(name, fv) 208 209 def RunWithArgs(self, operationsId): 210 """Gets the latest state of a long-running operation. Clients can use 211 this method to poll the operation result at intervals as recommended by 212 the API service. 213 214 Args: 215 operationsId: Part of `name`. The name of the operation resource. 216 """ 217 client = GetClientFromFlags() 218 global_params = GetGlobalParamsFromFlags() 219 request = messages.ServicemanagementOperationsGetRequest( 220 operationsId=operationsId.decode('utf8'), 221 ) 222 result = client.operations.Get( 223 request, global_params=global_params) 224 print apitools_base_cli.FormatOutput(result) 225 226 227class ServicesConvertConfig(apitools_base_cli.NewCmd): 228 """Command wrapping services.ConvertConfig.""" 229 230 usage = """services_convertConfig""" 231 232 def __init__(self, name, fv): 233 super(ServicesConvertConfig, self).__init__(name, fv) 234 flags.DEFINE_string( 235 'configSpec', 236 None, 237 u'Input configuration For this version of API, the supported type is ' 238 u'OpenApiSpec', 239 flag_values=fv) 240 flags.DEFINE_string( 241 'openApiSpec', 242 None, 243 u'The OpenAPI specification for an API.', 244 flag_values=fv) 245 flags.DEFINE_string( 246 'serviceName', 247 None, 248 u'The service name to use for constructing the normalized service ' 249 u'configuration equivalent of the provided configuration ' 250 u'specification.', 251 flag_values=fv) 252 flags.DEFINE_string( 253 'swaggerSpec', 254 None, 255 u'The swagger specification for an API.', 256 flag_values=fv) 257 258 def RunWithArgs(self): 259 """DEPRECATED. `SubmitConfigSource` with `validate_only=true` will provide 260 config conversion moving forward. Converts an API specification (e.g. 261 Swagger spec) to an equivalent `google.api.Service`. 262 263 Flags: 264 configSpec: Input configuration For this version of API, the supported 265 type is OpenApiSpec 266 openApiSpec: The OpenAPI specification for an API. 267 serviceName: The service name to use for constructing the normalized 268 service configuration equivalent of the provided configuration 269 specification. 270 swaggerSpec: The swagger specification for an API. 271 """ 272 client = GetClientFromFlags() 273 global_params = GetGlobalParamsFromFlags() 274 request = messages.ConvertConfigRequest( 275 ) 276 if FLAGS['configSpec'].present: 277 request.configSpec = apitools_base.JsonToMessage(messages.ConvertConfigRequest.ConfigSpecValue, FLAGS.configSpec) 278 if FLAGS['openApiSpec'].present: 279 request.openApiSpec = apitools_base.JsonToMessage(messages.OpenApiSpec, FLAGS.openApiSpec) 280 if FLAGS['serviceName'].present: 281 request.serviceName = FLAGS.serviceName.decode('utf8') 282 if FLAGS['swaggerSpec'].present: 283 request.swaggerSpec = apitools_base.JsonToMessage(messages.SwaggerSpec, FLAGS.swaggerSpec) 284 result = client.services.ConvertConfig( 285 request, global_params=global_params) 286 print apitools_base_cli.FormatOutput(result) 287 288 289class ServicesCreate(apitools_base_cli.NewCmd): 290 """Command wrapping services.Create.""" 291 292 usage = """services_create""" 293 294 def __init__(self, name, fv): 295 super(ServicesCreate, self).__init__(name, fv) 296 flags.DEFINE_string( 297 'configSource', 298 None, 299 u'User-supplied source configuration for the service. This is ' 300 u'distinct from the generated configuration provided in ' 301 u'`google.api.Service`. This is NOT populated on GetService calls at ' 302 u'the moment. NOTE: Any upsert operation that contains both a ' 303 u'service_config and a config_source is considered invalid and will ' 304 u'result in an error being returned.', 305 flag_values=fv) 306 flags.DEFINE_string( 307 'generation', 308 None, 309 u'A server-assigned monotonically increasing number that changes ' 310 u'whenever a mutation is made to the `ManagedService` or any of its ' 311 u'components via the `ServiceManager` API.', 312 flag_values=fv) 313 flags.DEFINE_string( 314 'operations', 315 None, 316 u'Read-only view of pending operations affecting this resource, if ' 317 u'requested.', 318 flag_values=fv) 319 flags.DEFINE_string( 320 'producerProjectId', 321 None, 322 u'ID of the project that produces and owns this service.', 323 flag_values=fv) 324 flags.DEFINE_string( 325 'projectSettings', 326 None, 327 u'Read-only view of settings for a particular consumer project, if ' 328 u'requested.', 329 flag_values=fv) 330 flags.DEFINE_string( 331 'serviceConfig', 332 None, 333 u"The service's generated configuration.", 334 flag_values=fv) 335 flags.DEFINE_string( 336 'serviceName', 337 None, 338 u'The name of the service. See the `ServiceManager` overview for ' 339 u'naming requirements. This name must match ' 340 u'`google.api.Service.name` in the `service_config` field.', 341 flag_values=fv) 342 343 def RunWithArgs(self): 344 """Creates a new managed service. Operation<response: ManagedService> 345 346 Flags: 347 configSource: User-supplied source configuration for the service. This 348 is distinct from the generated configuration provided in 349 `google.api.Service`. This is NOT populated on GetService calls at the 350 moment. NOTE: Any upsert operation that contains both a service_config 351 and a config_source is considered invalid and will result in an error 352 being returned. 353 generation: A server-assigned monotonically increasing number that 354 changes whenever a mutation is made to the `ManagedService` or any of 355 its components via the `ServiceManager` API. 356 operations: Read-only view of pending operations affecting this 357 resource, if requested. 358 producerProjectId: ID of the project that produces and owns this 359 service. 360 projectSettings: Read-only view of settings for a particular consumer 361 project, if requested. 362 serviceConfig: The service's generated configuration. 363 serviceName: The name of the service. See the `ServiceManager` overview 364 for naming requirements. This name must match 365 `google.api.Service.name` in the `service_config` field. 366 """ 367 client = GetClientFromFlags() 368 global_params = GetGlobalParamsFromFlags() 369 request = messages.ManagedService( 370 ) 371 if FLAGS['configSource'].present: 372 request.configSource = apitools_base.JsonToMessage(messages.ConfigSource, FLAGS.configSource) 373 if FLAGS['generation'].present: 374 request.generation = int(FLAGS.generation) 375 if FLAGS['operations'].present: 376 request.operations = [apitools_base.JsonToMessage(messages.Operation, x) for x in FLAGS.operations] 377 if FLAGS['producerProjectId'].present: 378 request.producerProjectId = FLAGS.producerProjectId.decode('utf8') 379 if FLAGS['projectSettings'].present: 380 request.projectSettings = apitools_base.JsonToMessage(messages.ProjectSettings, FLAGS.projectSettings) 381 if FLAGS['serviceConfig'].present: 382 request.serviceConfig = apitools_base.JsonToMessage(messages.Service, FLAGS.serviceConfig) 383 if FLAGS['serviceName'].present: 384 request.serviceName = FLAGS.serviceName.decode('utf8') 385 result = client.services.Create( 386 request, global_params=global_params) 387 print apitools_base_cli.FormatOutput(result) 388 389 390class ServicesDelete(apitools_base_cli.NewCmd): 391 """Command wrapping services.Delete.""" 392 393 usage = """services_delete <serviceName>""" 394 395 def __init__(self, name, fv): 396 super(ServicesDelete, self).__init__(name, fv) 397 398 def RunWithArgs(self, serviceName): 399 """Deletes a managed service. Operation<response: google.protobuf.Empty> 400 401 Args: 402 serviceName: The name of the service. See the `ServiceManager` overview 403 for naming requirements. For example: `example.googleapis.com`. 404 """ 405 client = GetClientFromFlags() 406 global_params = GetGlobalParamsFromFlags() 407 request = messages.ServicemanagementServicesDeleteRequest( 408 serviceName=serviceName.decode('utf8'), 409 ) 410 result = client.services.Delete( 411 request, global_params=global_params) 412 print apitools_base_cli.FormatOutput(result) 413 414 415class ServicesDisable(apitools_base_cli.NewCmd): 416 """Command wrapping services.Disable.""" 417 418 usage = """services_disable <serviceName>""" 419 420 def __init__(self, name, fv): 421 super(ServicesDisable, self).__init__(name, fv) 422 flags.DEFINE_string( 423 'disableServiceRequest', 424 None, 425 u'A DisableServiceRequest resource to be passed as the request body.', 426 flag_values=fv) 427 428 def RunWithArgs(self, serviceName): 429 """Disable a managed service for a project. Google Service Management will 430 only disable the managed service even if there are other services depend 431 on the managed service. Operation<response: DisableServiceResponse> 432 433 Args: 434 serviceName: Name of the service to disable. Specifying an unknown 435 service name will cause the request to fail. 436 437 Flags: 438 disableServiceRequest: A DisableServiceRequest resource to be passed as 439 the request body. 440 """ 441 client = GetClientFromFlags() 442 global_params = GetGlobalParamsFromFlags() 443 request = messages.ServicemanagementServicesDisableRequest( 444 serviceName=serviceName.decode('utf8'), 445 ) 446 if FLAGS['disableServiceRequest'].present: 447 request.disableServiceRequest = apitools_base.JsonToMessage(messages.DisableServiceRequest, FLAGS.disableServiceRequest) 448 result = client.services.Disable( 449 request, global_params=global_params) 450 print apitools_base_cli.FormatOutput(result) 451 452 453class ServicesEnable(apitools_base_cli.NewCmd): 454 """Command wrapping services.Enable.""" 455 456 usage = """services_enable <serviceName>""" 457 458 def __init__(self, name, fv): 459 super(ServicesEnable, self).__init__(name, fv) 460 flags.DEFINE_string( 461 'enableServiceRequest', 462 None, 463 u'A EnableServiceRequest resource to be passed as the request body.', 464 flag_values=fv) 465 466 def RunWithArgs(self, serviceName): 467 """Enable a managed service for a project with default setting. If the 468 managed service has dependencies, they will be enabled as well. 469 Operation<response: EnableServiceResponse> 470 471 Args: 472 serviceName: Name of the service to enable. Specifying an unknown 473 service name will cause the request to fail. 474 475 Flags: 476 enableServiceRequest: A EnableServiceRequest resource to be passed as 477 the request body. 478 """ 479 client = GetClientFromFlags() 480 global_params = GetGlobalParamsFromFlags() 481 request = messages.ServicemanagementServicesEnableRequest( 482 serviceName=serviceName.decode('utf8'), 483 ) 484 if FLAGS['enableServiceRequest'].present: 485 request.enableServiceRequest = apitools_base.JsonToMessage(messages.EnableServiceRequest, FLAGS.enableServiceRequest) 486 result = client.services.Enable( 487 request, global_params=global_params) 488 print apitools_base_cli.FormatOutput(result) 489 490 491class ServicesGet(apitools_base_cli.NewCmd): 492 """Command wrapping services.Get.""" 493 494 usage = """services_get <serviceName>""" 495 496 def __init__(self, name, fv): 497 super(ServicesGet, self).__init__(name, fv) 498 flags.DEFINE_string( 499 'consumerProjectId', 500 None, 501 u'If project_settings is expanded, return settings for the specified ' 502 u'consumer project.', 503 flag_values=fv) 504 flags.DEFINE_string( 505 'expand', 506 None, 507 u'Fields to expand in any results. By default, the following fields ' 508 u'are not present in the result: - `operations` - `project_settings` ' 509 u'- `project_settings.operations` - `quota_usage` (It requires ' 510 u'`project_settings`) - `historical_quota_usage` (It requires ' 511 u'`project_settings`)', 512 flag_values=fv) 513 flags.DEFINE_enum( 514 'view', 515 u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', 516 [u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', u'CONSUMER_VIEW', u'PRODUCER_VIEW', u'ALL'], 517 u'If project_settings is expanded, request only fields for the ' 518 u'specified view.', 519 flag_values=fv) 520 521 def RunWithArgs(self, serviceName): 522 """Gets a managed service. If the `consumer_project_id` is specified, the 523 project's settings for the specified service are also returned. 524 525 Args: 526 serviceName: The name of the service. See the `ServiceManager` overview 527 for naming requirements. For example: `example.googleapis.com`. 528 529 Flags: 530 consumerProjectId: If project_settings is expanded, return settings for 531 the specified consumer project. 532 expand: Fields to expand in any results. By default, the following 533 fields are not present in the result: - `operations` - 534 `project_settings` - `project_settings.operations` - `quota_usage` (It 535 requires `project_settings`) - `historical_quota_usage` (It requires 536 `project_settings`) 537 view: If project_settings is expanded, request only fields for the 538 specified view. 539 """ 540 client = GetClientFromFlags() 541 global_params = GetGlobalParamsFromFlags() 542 request = messages.ServicemanagementServicesGetRequest( 543 serviceName=serviceName.decode('utf8'), 544 ) 545 if FLAGS['consumerProjectId'].present: 546 request.consumerProjectId = FLAGS.consumerProjectId.decode('utf8') 547 if FLAGS['expand'].present: 548 request.expand = FLAGS.expand.decode('utf8') 549 if FLAGS['view'].present: 550 request.view = messages.ServicemanagementServicesGetRequest.ViewValueValuesEnum(FLAGS.view) 551 result = client.services.Get( 552 request, global_params=global_params) 553 print apitools_base_cli.FormatOutput(result) 554 555 556class ServicesGetAccessPolicy(apitools_base_cli.NewCmd): 557 """Command wrapping services.GetAccessPolicy.""" 558 559 usage = """services_getAccessPolicy <serviceName>""" 560 561 def __init__(self, name, fv): 562 super(ServicesGetAccessPolicy, self).__init__(name, fv) 563 564 def RunWithArgs(self, serviceName): 565 """Producer method to retrieve current policy. 566 567 Args: 568 serviceName: The name of the service. For example: 569 `example.googleapis.com`. 570 """ 571 client = GetClientFromFlags() 572 global_params = GetGlobalParamsFromFlags() 573 request = messages.ServicemanagementServicesGetAccessPolicyRequest( 574 serviceName=serviceName.decode('utf8'), 575 ) 576 result = client.services.GetAccessPolicy( 577 request, global_params=global_params) 578 print apitools_base_cli.FormatOutput(result) 579 580 581class ServicesGetConfig(apitools_base_cli.NewCmd): 582 """Command wrapping services.GetConfig.""" 583 584 usage = """services_getConfig <serviceName>""" 585 586 def __init__(self, name, fv): 587 super(ServicesGetConfig, self).__init__(name, fv) 588 flags.DEFINE_string( 589 'configId', 590 None, 591 u'The id of the service config resource. Optional. If it is not ' 592 u'specified, the latest version of config will be returned.', 593 flag_values=fv) 594 595 def RunWithArgs(self, serviceName): 596 """Gets a service config (version) for a managed service. If `config_id` 597 is not specified, the latest service config will be returned. 598 599 Args: 600 serviceName: The name of the service. See the `ServiceManager` overview 601 for naming requirements. For example: `example.googleapis.com`. 602 603 Flags: 604 configId: The id of the service config resource. Optional. If it is not 605 specified, the latest version of config will be returned. 606 """ 607 client = GetClientFromFlags() 608 global_params = GetGlobalParamsFromFlags() 609 request = messages.ServicemanagementServicesGetConfigRequest( 610 serviceName=serviceName.decode('utf8'), 611 ) 612 if FLAGS['configId'].present: 613 request.configId = FLAGS.configId.decode('utf8') 614 result = client.services.GetConfig( 615 request, global_params=global_params) 616 print apitools_base_cli.FormatOutput(result) 617 618 619class ServicesList(apitools_base_cli.NewCmd): 620 """Command wrapping services.List.""" 621 622 usage = """services_list""" 623 624 def __init__(self, name, fv): 625 super(ServicesList, self).__init__(name, fv) 626 flags.DEFINE_string( 627 'category', 628 None, 629 u'Include services only in the specified category. Supported ' 630 u'categories are servicemanagement.googleapis.com/categories/google-' 631 u'services or servicemanagement.googleapis.com/categories/play-games.', 632 flag_values=fv) 633 flags.DEFINE_string( 634 'consumerProjectId', 635 None, 636 u'Include services consumed by the specified project. If ' 637 u'project_settings is expanded, then this field controls which ' 638 u'project project_settings is populated for.', 639 flag_values=fv) 640 flags.DEFINE_string( 641 'expand', 642 None, 643 u'Fields to expand in any results. By default, the following fields ' 644 u'are not fully included in list results: - `operations` - ' 645 u'`project_settings` - `project_settings.operations` - `quota_usage` ' 646 u'(It requires `project_settings`)', 647 flag_values=fv) 648 flags.DEFINE_integer( 649 'pageSize', 650 None, 651 u'Requested size of the next page of data.', 652 flag_values=fv) 653 flags.DEFINE_string( 654 'pageToken', 655 None, 656 u'Token identifying which result to start with; returned by a ' 657 u'previous list call.', 658 flag_values=fv) 659 flags.DEFINE_string( 660 'producerProjectId', 661 None, 662 u'Include services produced by the specified project.', 663 flag_values=fv) 664 665 def RunWithArgs(self): 666 """Lists all managed services. If the `consumer_project_id` is specified, 667 the project's settings for the specified service are also returned. 668 669 Flags: 670 category: Include services only in the specified category. Supported 671 categories are servicemanagement.googleapis.com/categories/google- 672 services or servicemanagement.googleapis.com/categories/play-games. 673 consumerProjectId: Include services consumed by the specified project. 674 If project_settings is expanded, then this field controls which 675 project project_settings is populated for. 676 expand: Fields to expand in any results. By default, the following 677 fields are not fully included in list results: - `operations` - 678 `project_settings` - `project_settings.operations` - `quota_usage` (It 679 requires `project_settings`) 680 pageSize: Requested size of the next page of data. 681 pageToken: Token identifying which result to start with; returned by a 682 previous list call. 683 producerProjectId: Include services produced by the specified project. 684 """ 685 client = GetClientFromFlags() 686 global_params = GetGlobalParamsFromFlags() 687 request = messages.ServicemanagementServicesListRequest( 688 ) 689 if FLAGS['category'].present: 690 request.category = FLAGS.category.decode('utf8') 691 if FLAGS['consumerProjectId'].present: 692 request.consumerProjectId = FLAGS.consumerProjectId.decode('utf8') 693 if FLAGS['expand'].present: 694 request.expand = FLAGS.expand.decode('utf8') 695 if FLAGS['pageSize'].present: 696 request.pageSize = FLAGS.pageSize 697 if FLAGS['pageToken'].present: 698 request.pageToken = FLAGS.pageToken.decode('utf8') 699 if FLAGS['producerProjectId'].present: 700 request.producerProjectId = FLAGS.producerProjectId.decode('utf8') 701 result = client.services.List( 702 request, global_params=global_params) 703 print apitools_base_cli.FormatOutput(result) 704 705 706class ServicesPatch(apitools_base_cli.NewCmd): 707 """Command wrapping services.Patch.""" 708 709 usage = """services_patch <serviceName>""" 710 711 def __init__(self, name, fv): 712 super(ServicesPatch, self).__init__(name, fv) 713 flags.DEFINE_string( 714 'managedService', 715 None, 716 u'A ManagedService resource to be passed as the request body.', 717 flag_values=fv) 718 flags.DEFINE_string( 719 'updateMask', 720 None, 721 u'A mask specifying which fields to update.', 722 flag_values=fv) 723 724 def RunWithArgs(self, serviceName): 725 """Updates the specified subset of the configuration. If the specified 726 service does not exists the patch operation fails. Operation<response: 727 ManagedService> 728 729 Args: 730 serviceName: The name of the service. See the `ServiceManager` overview 731 for naming requirements. For example: `example.googleapis.com`. 732 733 Flags: 734 managedService: A ManagedService resource to be passed as the request 735 body. 736 updateMask: A mask specifying which fields to update. 737 """ 738 client = GetClientFromFlags() 739 global_params = GetGlobalParamsFromFlags() 740 request = messages.ServicemanagementServicesPatchRequest( 741 serviceName=serviceName.decode('utf8'), 742 ) 743 if FLAGS['managedService'].present: 744 request.managedService = apitools_base.JsonToMessage(messages.ManagedService, FLAGS.managedService) 745 if FLAGS['updateMask'].present: 746 request.updateMask = FLAGS.updateMask.decode('utf8') 747 result = client.services.Patch( 748 request, global_params=global_params) 749 print apitools_base_cli.FormatOutput(result) 750 751 752class ServicesPatchConfig(apitools_base_cli.NewCmd): 753 """Command wrapping services.PatchConfig.""" 754 755 usage = """services_patchConfig <serviceName>""" 756 757 def __init__(self, name, fv): 758 super(ServicesPatchConfig, self).__init__(name, fv) 759 flags.DEFINE_string( 760 'service', 761 None, 762 u'A Service resource to be passed as the request body.', 763 flag_values=fv) 764 flags.DEFINE_string( 765 'updateMask', 766 None, 767 u'A mask specifying which fields to update.', 768 flag_values=fv) 769 770 def RunWithArgs(self, serviceName): 771 """Updates the specified subset of the service resource. Equivalent to 772 calling `PatchService` with only the `service_config` field updated. 773 Operation<response: google.api.Service> 774 775 Args: 776 serviceName: The name of the service. See the `ServiceManager` overview 777 for naming requirements. For example: `example.googleapis.com`. 778 779 Flags: 780 service: A Service resource to be passed as the request body. 781 updateMask: A mask specifying which fields to update. 782 """ 783 client = GetClientFromFlags() 784 global_params = GetGlobalParamsFromFlags() 785 request = messages.ServicemanagementServicesPatchConfigRequest( 786 serviceName=serviceName.decode('utf8'), 787 ) 788 if FLAGS['service'].present: 789 request.service = apitools_base.JsonToMessage(messages.Service, FLAGS.service) 790 if FLAGS['updateMask'].present: 791 request.updateMask = FLAGS.updateMask.decode('utf8') 792 result = client.services.PatchConfig( 793 request, global_params=global_params) 794 print apitools_base_cli.FormatOutput(result) 795 796 797class ServicesUpdate(apitools_base_cli.NewCmd): 798 """Command wrapping services.Update.""" 799 800 usage = """services_update <serviceName>""" 801 802 def __init__(self, name, fv): 803 super(ServicesUpdate, self).__init__(name, fv) 804 flags.DEFINE_string( 805 'managedService', 806 None, 807 u'A ManagedService resource to be passed as the request body.', 808 flag_values=fv) 809 flags.DEFINE_string( 810 'updateMask', 811 None, 812 u'A mask specifying which fields to update. Update mask has been ' 813 u'deprecated on UpdateService service method. Please use PatchService' 814 u' method instead to do partial updates.', 815 flag_values=fv) 816 817 def RunWithArgs(self, serviceName): 818 """Updates the configuration of a service. If the specified service does 819 not already exist, then it is created. Operation<response: 820 ManagedService> 821 822 Args: 823 serviceName: The name of the service. See the `ServiceManager` overview 824 for naming requirements. For example: `example.googleapis.com`. 825 826 Flags: 827 managedService: A ManagedService resource to be passed as the request 828 body. 829 updateMask: A mask specifying which fields to update. Update mask has 830 been deprecated on UpdateService service method. Please use 831 PatchService method instead to do partial updates. 832 """ 833 client = GetClientFromFlags() 834 global_params = GetGlobalParamsFromFlags() 835 request = messages.ServicemanagementServicesUpdateRequest( 836 serviceName=serviceName.decode('utf8'), 837 ) 838 if FLAGS['managedService'].present: 839 request.managedService = apitools_base.JsonToMessage(messages.ManagedService, FLAGS.managedService) 840 if FLAGS['updateMask'].present: 841 request.updateMask = FLAGS.updateMask.decode('utf8') 842 result = client.services.Update( 843 request, global_params=global_params) 844 print apitools_base_cli.FormatOutput(result) 845 846 847class ServicesUpdateAccessPolicy(apitools_base_cli.NewCmd): 848 """Command wrapping services.UpdateAccessPolicy.""" 849 850 usage = """services_updateAccessPolicy <serviceName>""" 851 852 def __init__(self, name, fv): 853 super(ServicesUpdateAccessPolicy, self).__init__(name, fv) 854 flags.DEFINE_string( 855 'accessList', 856 None, 857 u'ACL for access to the unrestricted surface of the service.', 858 flag_values=fv) 859 flags.DEFINE_string( 860 'visibilityLabelAccessLists', 861 None, 862 u'ACLs for access to restricted parts of the service. The map key is' 863 u' the visibility label that is being controlled. Note that access ' 864 u'to any label also implies access to the unrestricted surface.', 865 flag_values=fv) 866 867 def RunWithArgs(self, serviceName): 868 """Producer method to update the current policy. This method will return 869 an error if the policy is too large (more than 50 entries across all 870 lists). 871 872 Args: 873 serviceName: The service protected by this policy. 874 875 Flags: 876 accessList: ACL for access to the unrestricted surface of the service. 877 visibilityLabelAccessLists: ACLs for access to restricted parts of the 878 service. The map key is the visibility label that is being 879 controlled. Note that access to any label also implies access to the 880 unrestricted surface. 881 """ 882 client = GetClientFromFlags() 883 global_params = GetGlobalParamsFromFlags() 884 request = messages.ServiceAccessPolicy( 885 serviceName=serviceName.decode('utf8'), 886 ) 887 if FLAGS['accessList'].present: 888 request.accessList = apitools_base.JsonToMessage(messages.ServiceAccessList, FLAGS.accessList) 889 if FLAGS['visibilityLabelAccessLists'].present: 890 request.visibilityLabelAccessLists = apitools_base.JsonToMessage(messages.ServiceAccessPolicy.VisibilityLabelAccessListsValue, FLAGS.visibilityLabelAccessLists) 891 result = client.services.UpdateAccessPolicy( 892 request, global_params=global_params) 893 print apitools_base_cli.FormatOutput(result) 894 895 896class ServicesUpdateConfig(apitools_base_cli.NewCmd): 897 """Command wrapping services.UpdateConfig.""" 898 899 usage = """services_updateConfig <serviceName>""" 900 901 def __init__(self, name, fv): 902 super(ServicesUpdateConfig, self).__init__(name, fv) 903 flags.DEFINE_string( 904 'service', 905 None, 906 u'A Service resource to be passed as the request body.', 907 flag_values=fv) 908 flags.DEFINE_string( 909 'updateMask', 910 None, 911 u'A mask specifying which fields to update. Update mask has been ' 912 u'deprecated on UpdateServiceConfig service method. Please use ' 913 u'PatchServiceConfig method instead to do partial updates.', 914 flag_values=fv) 915 916 def RunWithArgs(self, serviceName): 917 """Updates the specified subset of the service resource. Equivalent to 918 calling `UpdateService` with only the `service_config` field updated. 919 Operation<response: google.api.Service> 920 921 Args: 922 serviceName: The name of the service. See the `ServiceManager` overview 923 for naming requirements. For example: `example.googleapis.com`. 924 925 Flags: 926 service: A Service resource to be passed as the request body. 927 updateMask: A mask specifying which fields to update. Update mask has 928 been deprecated on UpdateServiceConfig service method. Please use 929 PatchServiceConfig method instead to do partial updates. 930 """ 931 client = GetClientFromFlags() 932 global_params = GetGlobalParamsFromFlags() 933 request = messages.ServicemanagementServicesUpdateConfigRequest( 934 serviceName=serviceName.decode('utf8'), 935 ) 936 if FLAGS['service'].present: 937 request.service = apitools_base.JsonToMessage(messages.Service, FLAGS.service) 938 if FLAGS['updateMask'].present: 939 request.updateMask = FLAGS.updateMask.decode('utf8') 940 result = client.services.UpdateConfig( 941 request, global_params=global_params) 942 print apitools_base_cli.FormatOutput(result) 943 944 945class ServicesAccessPolicyQuery(apitools_base_cli.NewCmd): 946 """Command wrapping services_accessPolicy.Query.""" 947 948 usage = """services_accessPolicy_query <serviceName>""" 949 950 def __init__(self, name, fv): 951 super(ServicesAccessPolicyQuery, self).__init__(name, fv) 952 flags.DEFINE_string( 953 'userEmail', 954 None, 955 u'The user to query access for.', 956 flag_values=fv) 957 958 def RunWithArgs(self, serviceName): 959 """Method to query the accessibility of a service and any associated 960 visibility labels for a specified user. Members of the producer project 961 may call this method and specify any user. Any user may call this method, 962 but must specify their own email address. In this case the method will 963 return NOT_FOUND if the user has no access to the service. 964 965 Args: 966 serviceName: The service to query access for. 967 968 Flags: 969 userEmail: The user to query access for. 970 """ 971 client = GetClientFromFlags() 972 global_params = GetGlobalParamsFromFlags() 973 request = messages.ServicemanagementServicesAccessPolicyQueryRequest( 974 serviceName=serviceName.decode('utf8'), 975 ) 976 if FLAGS['userEmail'].present: 977 request.userEmail = FLAGS.userEmail.decode('utf8') 978 result = client.services_accessPolicy.Query( 979 request, global_params=global_params) 980 print apitools_base_cli.FormatOutput(result) 981 982 983class ServicesConfigsCreate(apitools_base_cli.NewCmd): 984 """Command wrapping services_configs.Create.""" 985 986 usage = """services_configs_create <serviceName>""" 987 988 def __init__(self, name, fv): 989 super(ServicesConfigsCreate, self).__init__(name, fv) 990 flags.DEFINE_string( 991 'service', 992 None, 993 u'A Service resource to be passed as the request body.', 994 flag_values=fv) 995 996 def RunWithArgs(self, serviceName): 997 """Creates a new service config (version) for a managed service. This 998 method only stores the service config, but does not apply the service 999 config to any backend services. 1000 1001 Args: 1002 serviceName: The name of the service. See the `ServiceManager` overview 1003 for naming requirements. For example: `example.googleapis.com`. 1004 1005 Flags: 1006 service: A Service resource to be passed as the request body. 1007 """ 1008 client = GetClientFromFlags() 1009 global_params = GetGlobalParamsFromFlags() 1010 request = messages.ServicemanagementServicesConfigsCreateRequest( 1011 serviceName=serviceName.decode('utf8'), 1012 ) 1013 if FLAGS['service'].present: 1014 request.service = apitools_base.JsonToMessage(messages.Service, FLAGS.service) 1015 result = client.services_configs.Create( 1016 request, global_params=global_params) 1017 print apitools_base_cli.FormatOutput(result) 1018 1019 1020class ServicesConfigsGet(apitools_base_cli.NewCmd): 1021 """Command wrapping services_configs.Get.""" 1022 1023 usage = """services_configs_get <serviceName> <configId>""" 1024 1025 def __init__(self, name, fv): 1026 super(ServicesConfigsGet, self).__init__(name, fv) 1027 1028 def RunWithArgs(self, serviceName, configId): 1029 """Gets a service config (version) for a managed service. If `config_id` 1030 is not specified, the latest service config will be returned. 1031 1032 Args: 1033 serviceName: The name of the service. See the `ServiceManager` overview 1034 for naming requirements. For example: `example.googleapis.com`. 1035 configId: The id of the service config resource. Optional. If it is not 1036 specified, the latest version of config will be returned. 1037 """ 1038 client = GetClientFromFlags() 1039 global_params = GetGlobalParamsFromFlags() 1040 request = messages.ServicemanagementServicesConfigsGetRequest( 1041 serviceName=serviceName.decode('utf8'), 1042 configId=configId.decode('utf8'), 1043 ) 1044 result = client.services_configs.Get( 1045 request, global_params=global_params) 1046 print apitools_base_cli.FormatOutput(result) 1047 1048 1049class ServicesConfigsList(apitools_base_cli.NewCmd): 1050 """Command wrapping services_configs.List.""" 1051 1052 usage = """services_configs_list <serviceName>""" 1053 1054 def __init__(self, name, fv): 1055 super(ServicesConfigsList, self).__init__(name, fv) 1056 flags.DEFINE_integer( 1057 'pageSize', 1058 None, 1059 u'The max number of items to include in the response list.', 1060 flag_values=fv) 1061 flags.DEFINE_string( 1062 'pageToken', 1063 None, 1064 u'The token of the page to retrieve.', 1065 flag_values=fv) 1066 1067 def RunWithArgs(self, serviceName): 1068 """Lists the history of the service config for a managed service, from the 1069 newest to the oldest. 1070 1071 Args: 1072 serviceName: The name of the service. See the `ServiceManager` overview 1073 for naming requirements. For example: `example.googleapis.com`. 1074 1075 Flags: 1076 pageSize: The max number of items to include in the response list. 1077 pageToken: The token of the page to retrieve. 1078 """ 1079 client = GetClientFromFlags() 1080 global_params = GetGlobalParamsFromFlags() 1081 request = messages.ServicemanagementServicesConfigsListRequest( 1082 serviceName=serviceName.decode('utf8'), 1083 ) 1084 if FLAGS['pageSize'].present: 1085 request.pageSize = FLAGS.pageSize 1086 if FLAGS['pageToken'].present: 1087 request.pageToken = FLAGS.pageToken.decode('utf8') 1088 result = client.services_configs.List( 1089 request, global_params=global_params) 1090 print apitools_base_cli.FormatOutput(result) 1091 1092 1093class ServicesConfigsSubmit(apitools_base_cli.NewCmd): 1094 """Command wrapping services_configs.Submit.""" 1095 1096 usage = """services_configs_submit <serviceName>""" 1097 1098 def __init__(self, name, fv): 1099 super(ServicesConfigsSubmit, self).__init__(name, fv) 1100 flags.DEFINE_string( 1101 'submitConfigSourceRequest', 1102 None, 1103 u'A SubmitConfigSourceRequest resource to be passed as the request ' 1104 u'body.', 1105 flag_values=fv) 1106 1107 def RunWithArgs(self, serviceName): 1108 """Creates a new service config (version) for a managed service based on 1109 user-supplied configuration sources files (for example: OpenAPI 1110 Specification). This method stores the source configurations as well as 1111 the generated service config. It does NOT apply the service config to any 1112 backend services. Operation<response: SubmitConfigSourceResponse> 1113 1114 Args: 1115 serviceName: The name of the service. See the `ServiceManager` overview 1116 for naming requirements. For example: `example.googleapis.com`. 1117 1118 Flags: 1119 submitConfigSourceRequest: A SubmitConfigSourceRequest resource to be 1120 passed as the request body. 1121 """ 1122 client = GetClientFromFlags() 1123 global_params = GetGlobalParamsFromFlags() 1124 request = messages.ServicemanagementServicesConfigsSubmitRequest( 1125 serviceName=serviceName.decode('utf8'), 1126 ) 1127 if FLAGS['submitConfigSourceRequest'].present: 1128 request.submitConfigSourceRequest = apitools_base.JsonToMessage(messages.SubmitConfigSourceRequest, FLAGS.submitConfigSourceRequest) 1129 result = client.services_configs.Submit( 1130 request, global_params=global_params) 1131 print apitools_base_cli.FormatOutput(result) 1132 1133 1134class ServicesCustomerSettingsGet(apitools_base_cli.NewCmd): 1135 """Command wrapping services_customerSettings.Get.""" 1136 1137 usage = """services_customerSettings_get <serviceName> <customerId>""" 1138 1139 def __init__(self, name, fv): 1140 super(ServicesCustomerSettingsGet, self).__init__(name, fv) 1141 flags.DEFINE_string( 1142 'expand', 1143 None, 1144 u'Fields to expand in any results.', 1145 flag_values=fv) 1146 flags.DEFINE_enum( 1147 'view', 1148 u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', 1149 [u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', u'CONSUMER_VIEW', u'PRODUCER_VIEW', u'ALL'], 1150 u'Request only fields for the specified view.', 1151 flag_values=fv) 1152 1153 def RunWithArgs(self, serviceName, customerId): 1154 """Retrieves the settings that control the specified customer's usage of 1155 the service. 1156 1157 Args: 1158 serviceName: The name of the service. See the `ServiceManager` overview 1159 for naming requirements. For example: `example.googleapis.com`. This 1160 field is required. 1161 customerId: ID for the customer. See the comment for 1162 `CustomerSettings.customer_id` field of message for its format. This 1163 field is required. 1164 1165 Flags: 1166 expand: Fields to expand in any results. 1167 view: Request only fields for the specified view. 1168 """ 1169 client = GetClientFromFlags() 1170 global_params = GetGlobalParamsFromFlags() 1171 request = messages.ServicemanagementServicesCustomerSettingsGetRequest( 1172 serviceName=serviceName.decode('utf8'), 1173 customerId=customerId.decode('utf8'), 1174 ) 1175 if FLAGS['expand'].present: 1176 request.expand = FLAGS.expand.decode('utf8') 1177 if FLAGS['view'].present: 1178 request.view = messages.ServicemanagementServicesCustomerSettingsGetRequest.ViewValueValuesEnum(FLAGS.view) 1179 result = client.services_customerSettings.Get( 1180 request, global_params=global_params) 1181 print apitools_base_cli.FormatOutput(result) 1182 1183 1184class ServicesCustomerSettingsPatch(apitools_base_cli.NewCmd): 1185 """Command wrapping services_customerSettings.Patch.""" 1186 1187 usage = """services_customerSettings_patch <serviceName> <customerId>""" 1188 1189 def __init__(self, name, fv): 1190 super(ServicesCustomerSettingsPatch, self).__init__(name, fv) 1191 flags.DEFINE_string( 1192 'customerSettings', 1193 None, 1194 u'A CustomerSettings resource to be passed as the request body.', 1195 flag_values=fv) 1196 flags.DEFINE_string( 1197 'updateMask', 1198 None, 1199 u'The field mask specifying which fields are to be updated.', 1200 flag_values=fv) 1201 1202 def RunWithArgs(self, serviceName, customerId): 1203 """Updates specified subset of the settings that control the specified 1204 customer's usage of the service. Attempts to update a field not 1205 controlled by the caller will result in an access denied error. 1206 Operation<response: CustomerSettings> 1207 1208 Args: 1209 serviceName: The name of the service. See the `ServiceManager` overview 1210 for naming requirements. For example: `example.googleapis.com`. This 1211 field is required. 1212 customerId: ID for the customer. See the comment for 1213 `CustomerSettings.customer_id` field of message for its format. This 1214 field is required. 1215 1216 Flags: 1217 customerSettings: A CustomerSettings resource to be passed as the 1218 request body. 1219 updateMask: The field mask specifying which fields are to be updated. 1220 """ 1221 client = GetClientFromFlags() 1222 global_params = GetGlobalParamsFromFlags() 1223 request = messages.ServicemanagementServicesCustomerSettingsPatchRequest( 1224 serviceName=serviceName.decode('utf8'), 1225 customerId=customerId.decode('utf8'), 1226 ) 1227 if FLAGS['customerSettings'].present: 1228 request.customerSettings = apitools_base.JsonToMessage(messages.CustomerSettings, FLAGS.customerSettings) 1229 if FLAGS['updateMask'].present: 1230 request.updateMask = FLAGS.updateMask.decode('utf8') 1231 result = client.services_customerSettings.Patch( 1232 request, global_params=global_params) 1233 print apitools_base_cli.FormatOutput(result) 1234 1235 1236class ServicesProjectSettingsGet(apitools_base_cli.NewCmd): 1237 """Command wrapping services_projectSettings.Get.""" 1238 1239 usage = """services_projectSettings_get <serviceName> <consumerProjectId>""" 1240 1241 def __init__(self, name, fv): 1242 super(ServicesProjectSettingsGet, self).__init__(name, fv) 1243 flags.DEFINE_string( 1244 'expand', 1245 None, 1246 u'Fields to expand in any results. By default, the following fields ' 1247 u'are not present in the result: - `operations` - `quota_usage`', 1248 flag_values=fv) 1249 flags.DEFINE_enum( 1250 'view', 1251 u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', 1252 [u'PROJECT_SETTINGS_VIEW_UNSPECIFIED', u'CONSUMER_VIEW', u'PRODUCER_VIEW', u'ALL'], 1253 u'Request only the fields for the specified view.', 1254 flag_values=fv) 1255 1256 def RunWithArgs(self, serviceName, consumerProjectId): 1257 """Retrieves the settings that control the specified consumer project's 1258 usage of the service. 1259 1260 Args: 1261 serviceName: The name of the service. See the `ServiceManager` overview 1262 for naming requirements. For example: `example.googleapis.com`. 1263 consumerProjectId: The project ID of the consumer. 1264 1265 Flags: 1266 expand: Fields to expand in any results. By default, the following 1267 fields are not present in the result: - `operations` - `quota_usage` 1268 view: Request only the fields for the specified view. 1269 """ 1270 client = GetClientFromFlags() 1271 global_params = GetGlobalParamsFromFlags() 1272 request = messages.ServicemanagementServicesProjectSettingsGetRequest( 1273 serviceName=serviceName.decode('utf8'), 1274 consumerProjectId=consumerProjectId.decode('utf8'), 1275 ) 1276 if FLAGS['expand'].present: 1277 request.expand = FLAGS.expand.decode('utf8') 1278 if FLAGS['view'].present: 1279 request.view = messages.ServicemanagementServicesProjectSettingsGetRequest.ViewValueValuesEnum(FLAGS.view) 1280 result = client.services_projectSettings.Get( 1281 request, global_params=global_params) 1282 print apitools_base_cli.FormatOutput(result) 1283 1284 1285class ServicesProjectSettingsPatch(apitools_base_cli.NewCmd): 1286 """Command wrapping services_projectSettings.Patch.""" 1287 1288 usage = """services_projectSettings_patch <serviceName> <consumerProjectId>""" 1289 1290 def __init__(self, name, fv): 1291 super(ServicesProjectSettingsPatch, self).__init__(name, fv) 1292 flags.DEFINE_string( 1293 'projectSettings', 1294 None, 1295 u'A ProjectSettings resource to be passed as the request body.', 1296 flag_values=fv) 1297 flags.DEFINE_string( 1298 'updateMask', 1299 None, 1300 u'The field mask specifying which fields are to be updated.', 1301 flag_values=fv) 1302 1303 def RunWithArgs(self, serviceName, consumerProjectId): 1304 """Updates specified subset of the settings that control the specified 1305 consumer project's usage of the service. Attempts to update a field not 1306 controlled by the caller will result in an access denied error. 1307 Operation<response: ProjectSettings> 1308 1309 Args: 1310 serviceName: The name of the service. See the `ServiceManager` overview 1311 for naming requirements. For example: `example.googleapis.com`. 1312 consumerProjectId: The project ID of the consumer. 1313 1314 Flags: 1315 projectSettings: A ProjectSettings resource to be passed as the request 1316 body. 1317 updateMask: The field mask specifying which fields are to be updated. 1318 """ 1319 client = GetClientFromFlags() 1320 global_params = GetGlobalParamsFromFlags() 1321 request = messages.ServicemanagementServicesProjectSettingsPatchRequest( 1322 serviceName=serviceName.decode('utf8'), 1323 consumerProjectId=consumerProjectId.decode('utf8'), 1324 ) 1325 if FLAGS['projectSettings'].present: 1326 request.projectSettings = apitools_base.JsonToMessage(messages.ProjectSettings, FLAGS.projectSettings) 1327 if FLAGS['updateMask'].present: 1328 request.updateMask = FLAGS.updateMask.decode('utf8') 1329 result = client.services_projectSettings.Patch( 1330 request, global_params=global_params) 1331 print apitools_base_cli.FormatOutput(result) 1332 1333 1334class ServicesProjectSettingsUpdate(apitools_base_cli.NewCmd): 1335 """Command wrapping services_projectSettings.Update.""" 1336 1337 usage = """services_projectSettings_update <serviceName> <consumerProjectId>""" 1338 1339 def __init__(self, name, fv): 1340 super(ServicesProjectSettingsUpdate, self).__init__(name, fv) 1341 flags.DEFINE_string( 1342 'operations', 1343 None, 1344 u'Read-only view of pending operations affecting this resource, if ' 1345 u'requested.', 1346 flag_values=fv) 1347 flags.DEFINE_string( 1348 'properties', 1349 None, 1350 u'Service-defined per-consumer properties. A key-value mapping a ' 1351 u'string key to a google.protobuf.ListValue proto. Values in the list' 1352 u" are typed as defined in the Service configuration's " 1353 u'consumer.properties field.', 1354 flag_values=fv) 1355 flags.DEFINE_string( 1356 'quotaSettings', 1357 None, 1358 u'Settings that control how much or how fast the service can be used ' 1359 u'by the consumer project.', 1360 flag_values=fv) 1361 flags.DEFINE_string( 1362 'usageSettings', 1363 None, 1364 u'Settings that control whether this service is usable by the ' 1365 u'consumer project.', 1366 flag_values=fv) 1367 flags.DEFINE_string( 1368 'visibilitySettings', 1369 None, 1370 u'Settings that control which features of the service are visible to ' 1371 u'the consumer project.', 1372 flag_values=fv) 1373 1374 def RunWithArgs(self, serviceName, consumerProjectId): 1375 """NOTE: Currently unsupported. Use PatchProjectSettings instead. 1376 Updates the settings that control the specified consumer project's usage 1377 of the service. Attempts to update a field not controlled by the caller 1378 will result in an access denied error. Operation<response: 1379 ProjectSettings> 1380 1381 Args: 1382 serviceName: The name of the service. See the `ServiceManager` overview 1383 for naming requirements. 1384 consumerProjectId: ID for the project consuming this service. 1385 1386 Flags: 1387 operations: Read-only view of pending operations affecting this 1388 resource, if requested. 1389 properties: Service-defined per-consumer properties. A key-value 1390 mapping a string key to a google.protobuf.ListValue proto. Values in 1391 the list are typed as defined in the Service configuration's 1392 consumer.properties field. 1393 quotaSettings: Settings that control how much or how fast the service 1394 can be used by the consumer project. 1395 usageSettings: Settings that control whether this service is usable by 1396 the consumer project. 1397 visibilitySettings: Settings that control which features of the service 1398 are visible to the consumer project. 1399 """ 1400 client = GetClientFromFlags() 1401 global_params = GetGlobalParamsFromFlags() 1402 request = messages.ProjectSettings( 1403 serviceName=serviceName.decode('utf8'), 1404 consumerProjectId=consumerProjectId.decode('utf8'), 1405 ) 1406 if FLAGS['operations'].present: 1407 request.operations = [apitools_base.JsonToMessage(messages.Operation, x) for x in FLAGS.operations] 1408 if FLAGS['properties'].present: 1409 request.properties = apitools_base.JsonToMessage(messages.ProjectSettings.PropertiesValue, FLAGS.properties) 1410 if FLAGS['quotaSettings'].present: 1411 request.quotaSettings = apitools_base.JsonToMessage(messages.QuotaSettings, FLAGS.quotaSettings) 1412 if FLAGS['usageSettings'].present: 1413 request.usageSettings = apitools_base.JsonToMessage(messages.UsageSettings, FLAGS.usageSettings) 1414 if FLAGS['visibilitySettings'].present: 1415 request.visibilitySettings = apitools_base.JsonToMessage(messages.VisibilitySettings, FLAGS.visibilitySettings) 1416 result = client.services_projectSettings.Update( 1417 request, global_params=global_params) 1418 print apitools_base_cli.FormatOutput(result) 1419 1420 1421class ConvertConfig(apitools_base_cli.NewCmd): 1422 """Command wrapping v1.ConvertConfig.""" 1423 1424 usage = """convertConfig""" 1425 1426 def __init__(self, name, fv): 1427 super(ConvertConfig, self).__init__(name, fv) 1428 flags.DEFINE_string( 1429 'configSpec', 1430 None, 1431 u'Input configuration For this version of API, the supported type is ' 1432 u'OpenApiSpec', 1433 flag_values=fv) 1434 flags.DEFINE_string( 1435 'openApiSpec', 1436 None, 1437 u'The OpenAPI specification for an API.', 1438 flag_values=fv) 1439 flags.DEFINE_string( 1440 'serviceName', 1441 None, 1442 u'The service name to use for constructing the normalized service ' 1443 u'configuration equivalent of the provided configuration ' 1444 u'specification.', 1445 flag_values=fv) 1446 flags.DEFINE_string( 1447 'swaggerSpec', 1448 None, 1449 u'The swagger specification for an API.', 1450 flag_values=fv) 1451 1452 def RunWithArgs(self): 1453 """DEPRECATED. `SubmitConfigSource` with `validate_only=true` will provide 1454 config conversion moving forward. Converts an API specification (e.g. 1455 Swagger spec) to an equivalent `google.api.Service`. 1456 1457 Flags: 1458 configSpec: Input configuration For this version of API, the supported 1459 type is OpenApiSpec 1460 openApiSpec: The OpenAPI specification for an API. 1461 serviceName: The service name to use for constructing the normalized 1462 service configuration equivalent of the provided configuration 1463 specification. 1464 swaggerSpec: The swagger specification for an API. 1465 """ 1466 client = GetClientFromFlags() 1467 global_params = GetGlobalParamsFromFlags() 1468 request = messages.ConvertConfigRequest( 1469 ) 1470 if FLAGS['configSpec'].present: 1471 request.configSpec = apitools_base.JsonToMessage(messages.ConvertConfigRequest.ConfigSpecValue, FLAGS.configSpec) 1472 if FLAGS['openApiSpec'].present: 1473 request.openApiSpec = apitools_base.JsonToMessage(messages.OpenApiSpec, FLAGS.openApiSpec) 1474 if FLAGS['serviceName'].present: 1475 request.serviceName = FLAGS.serviceName.decode('utf8') 1476 if FLAGS['swaggerSpec'].present: 1477 request.swaggerSpec = apitools_base.JsonToMessage(messages.SwaggerSpec, FLAGS.swaggerSpec) 1478 result = client.v1.ConvertConfig( 1479 request, global_params=global_params) 1480 print apitools_base_cli.FormatOutput(result) 1481 1482 1483def main(_): 1484 appcommands.AddCmd('pyshell', PyShell) 1485 appcommands.AddCmd('operations_get', OperationsGet) 1486 appcommands.AddCmd('services_convertConfig', ServicesConvertConfig) 1487 appcommands.AddCmd('services_create', ServicesCreate) 1488 appcommands.AddCmd('services_delete', ServicesDelete) 1489 appcommands.AddCmd('services_disable', ServicesDisable) 1490 appcommands.AddCmd('services_enable', ServicesEnable) 1491 appcommands.AddCmd('services_get', ServicesGet) 1492 appcommands.AddCmd('services_getAccessPolicy', ServicesGetAccessPolicy) 1493 appcommands.AddCmd('services_getConfig', ServicesGetConfig) 1494 appcommands.AddCmd('services_list', ServicesList) 1495 appcommands.AddCmd('services_patch', ServicesPatch) 1496 appcommands.AddCmd('services_patchConfig', ServicesPatchConfig) 1497 appcommands.AddCmd('services_update', ServicesUpdate) 1498 appcommands.AddCmd('services_updateAccessPolicy', ServicesUpdateAccessPolicy) 1499 appcommands.AddCmd('services_updateConfig', ServicesUpdateConfig) 1500 appcommands.AddCmd('services_accessPolicy_query', ServicesAccessPolicyQuery) 1501 appcommands.AddCmd('services_configs_create', ServicesConfigsCreate) 1502 appcommands.AddCmd('services_configs_get', ServicesConfigsGet) 1503 appcommands.AddCmd('services_configs_list', ServicesConfigsList) 1504 appcommands.AddCmd('services_configs_submit', ServicesConfigsSubmit) 1505 appcommands.AddCmd('services_customerSettings_get', ServicesCustomerSettingsGet) 1506 appcommands.AddCmd('services_customerSettings_patch', ServicesCustomerSettingsPatch) 1507 appcommands.AddCmd('services_projectSettings_get', ServicesProjectSettingsGet) 1508 appcommands.AddCmd('services_projectSettings_patch', ServicesProjectSettingsPatch) 1509 appcommands.AddCmd('services_projectSettings_update', ServicesProjectSettingsUpdate) 1510 appcommands.AddCmd('convertConfig', ConvertConfig) 1511 1512 apitools_base_cli.SetupLogger() 1513 if hasattr(appcommands, 'SetDefaultCommand'): 1514 appcommands.SetDefaultCommand('pyshell') 1515 1516 1517run_main = apitools_base_cli.run_main 1518 1519if __name__ == '__main__': 1520 appcommands.Run() 1521