1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.api.serviceusage.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/serviceusage/v1/resources.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ServiceUsage.V1"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/serviceusage/apiv1/serviceusagepb;serviceusagepb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ServiceUsageProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api.serviceusage.v1"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ServiceUsage\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ServiceUsage::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// Enables services that service consumers want to use on Google Cloud Platform, 33*d5c09012SAndroid Build Coastguard Worker// lists the available or enabled services, or disables services that service 34*d5c09012SAndroid Build Coastguard Worker// consumers no longer use. 35*d5c09012SAndroid Build Coastguard Worker// 36*d5c09012SAndroid Build Coastguard Worker// See [Service Usage API](https://cloud.google.com/service-usage/docs/overview) 37*d5c09012SAndroid Build Coastguard Workerservice ServiceUsage { 38*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "serviceusage.googleapis.com"; 39*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = 40*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform," 41*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform.read-only," 42*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/service.management"; 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker // Enable a service so that it can be used with a project. 45*d5c09012SAndroid Build Coastguard Worker rpc EnableService(EnableServiceRequest) 46*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 47*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 48*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=*/*/services/*}:enable" 49*d5c09012SAndroid Build Coastguard Worker body: "*" 50*d5c09012SAndroid Build Coastguard Worker }; 51*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 52*d5c09012SAndroid Build Coastguard Worker response_type: "EnableServiceResponse" 53*d5c09012SAndroid Build Coastguard Worker metadata_type: "OperationMetadata" 54*d5c09012SAndroid Build Coastguard Worker }; 55*d5c09012SAndroid Build Coastguard Worker } 56*d5c09012SAndroid Build Coastguard Worker 57*d5c09012SAndroid Build Coastguard Worker // Disable a service so that it can no longer be used with a project. 58*d5c09012SAndroid Build Coastguard Worker // This prevents unintended usage that may cause unexpected billing 59*d5c09012SAndroid Build Coastguard Worker // charges or security leaks. 60*d5c09012SAndroid Build Coastguard Worker // 61*d5c09012SAndroid Build Coastguard Worker // It is not valid to call the disable method on a service that is not 62*d5c09012SAndroid Build Coastguard Worker // currently enabled. Callers will receive a `FAILED_PRECONDITION` status if 63*d5c09012SAndroid Build Coastguard Worker // the target service is not currently enabled. 64*d5c09012SAndroid Build Coastguard Worker rpc DisableService(DisableServiceRequest) 65*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 66*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 67*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=*/*/services/*}:disable" 68*d5c09012SAndroid Build Coastguard Worker body: "*" 69*d5c09012SAndroid Build Coastguard Worker }; 70*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 71*d5c09012SAndroid Build Coastguard Worker response_type: "DisableServiceResponse" 72*d5c09012SAndroid Build Coastguard Worker metadata_type: "OperationMetadata" 73*d5c09012SAndroid Build Coastguard Worker }; 74*d5c09012SAndroid Build Coastguard Worker } 75*d5c09012SAndroid Build Coastguard Worker 76*d5c09012SAndroid Build Coastguard Worker // Returns the service configuration and enabled state for a given service. 77*d5c09012SAndroid Build Coastguard Worker rpc GetService(GetServiceRequest) returns (Service) { 78*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 79*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=*/*/services/*}" 80*d5c09012SAndroid Build Coastguard Worker }; 81*d5c09012SAndroid Build Coastguard Worker } 82*d5c09012SAndroid Build Coastguard Worker 83*d5c09012SAndroid Build Coastguard Worker // List all services available to the specified project, and the current 84*d5c09012SAndroid Build Coastguard Worker // state of those services with respect to the project. The list includes 85*d5c09012SAndroid Build Coastguard Worker // all public services, all services for which the calling user has the 86*d5c09012SAndroid Build Coastguard Worker // `servicemanagement.services.bind` permission, and all services that have 87*d5c09012SAndroid Build Coastguard Worker // already been enabled on the project. The list can be filtered to 88*d5c09012SAndroid Build Coastguard Worker // only include services in a specific state, for example to only include 89*d5c09012SAndroid Build Coastguard Worker // services enabled on the project. 90*d5c09012SAndroid Build Coastguard Worker // 91*d5c09012SAndroid Build Coastguard Worker // WARNING: If you need to query enabled services frequently or across 92*d5c09012SAndroid Build Coastguard Worker // an organization, you should use 93*d5c09012SAndroid Build Coastguard Worker // [Cloud Asset Inventory 94*d5c09012SAndroid Build Coastguard Worker // API](https://cloud.google.com/asset-inventory/docs/apis), which provides 95*d5c09012SAndroid Build Coastguard Worker // higher throughput and richer filtering capability. 96*d5c09012SAndroid Build Coastguard Worker rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { 97*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 98*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=*/*}/services" 99*d5c09012SAndroid Build Coastguard Worker }; 100*d5c09012SAndroid Build Coastguard Worker } 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Enable multiple services on a project. The operation is atomic: if enabling 103*d5c09012SAndroid Build Coastguard Worker // any service fails, then the entire batch fails, and no state changes occur. 104*d5c09012SAndroid Build Coastguard Worker // To enable a single service, use the `EnableService` method instead. 105*d5c09012SAndroid Build Coastguard Worker rpc BatchEnableServices(BatchEnableServicesRequest) 106*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 107*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 108*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=*/*}/services:batchEnable" 109*d5c09012SAndroid Build Coastguard Worker body: "*" 110*d5c09012SAndroid Build Coastguard Worker }; 111*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 112*d5c09012SAndroid Build Coastguard Worker response_type: "BatchEnableServicesResponse" 113*d5c09012SAndroid Build Coastguard Worker metadata_type: "OperationMetadata" 114*d5c09012SAndroid Build Coastguard Worker }; 115*d5c09012SAndroid Build Coastguard Worker } 116*d5c09012SAndroid Build Coastguard Worker 117*d5c09012SAndroid Build Coastguard Worker // Returns the service configurations and enabled states for a given list of 118*d5c09012SAndroid Build Coastguard Worker // services. 119*d5c09012SAndroid Build Coastguard Worker rpc BatchGetServices(BatchGetServicesRequest) 120*d5c09012SAndroid Build Coastguard Worker returns (BatchGetServicesResponse) { 121*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 122*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=*/*}/services:batchGet" 123*d5c09012SAndroid Build Coastguard Worker }; 124*d5c09012SAndroid Build Coastguard Worker } 125*d5c09012SAndroid Build Coastguard Worker} 126*d5c09012SAndroid Build Coastguard Worker 127*d5c09012SAndroid Build Coastguard Worker// Request message for the `EnableService` method. 128*d5c09012SAndroid Build Coastguard Workermessage EnableServiceRequest { 129*d5c09012SAndroid Build Coastguard Worker // Name of the consumer and service to enable the service on. 130*d5c09012SAndroid Build Coastguard Worker // 131*d5c09012SAndroid Build Coastguard Worker // The `EnableService` and `DisableService` methods currently only support 132*d5c09012SAndroid Build Coastguard Worker // projects. 133*d5c09012SAndroid Build Coastguard Worker // 134*d5c09012SAndroid Build Coastguard Worker // Enabling a service requires that the service is public or is shared with 135*d5c09012SAndroid Build Coastguard Worker // the user enabling the service. 136*d5c09012SAndroid Build Coastguard Worker // 137*d5c09012SAndroid Build Coastguard Worker // An example name would be: 138*d5c09012SAndroid Build Coastguard Worker // `projects/123/services/serviceusage.googleapis.com` where `123` is the 139*d5c09012SAndroid Build Coastguard Worker // project number. 140*d5c09012SAndroid Build Coastguard Worker string name = 1; 141*d5c09012SAndroid Build Coastguard Worker} 142*d5c09012SAndroid Build Coastguard Worker 143*d5c09012SAndroid Build Coastguard Worker// Response message for the `EnableService` method. 144*d5c09012SAndroid Build Coastguard Worker// This response message is assigned to the `response` field of the returned 145*d5c09012SAndroid Build Coastguard Worker// Operation when that operation is done. 146*d5c09012SAndroid Build Coastguard Workermessage EnableServiceResponse { 147*d5c09012SAndroid Build Coastguard Worker // The new state of the service after enabling. 148*d5c09012SAndroid Build Coastguard Worker Service service = 1; 149*d5c09012SAndroid Build Coastguard Worker} 150*d5c09012SAndroid Build Coastguard Worker 151*d5c09012SAndroid Build Coastguard Worker// Request message for the `DisableService` method. 152*d5c09012SAndroid Build Coastguard Workermessage DisableServiceRequest { 153*d5c09012SAndroid Build Coastguard Worker // Enum to determine if service usage should be checked when disabling a 154*d5c09012SAndroid Build Coastguard Worker // service. 155*d5c09012SAndroid Build Coastguard Worker enum CheckIfServiceHasUsage { 156*d5c09012SAndroid Build Coastguard Worker // When unset, the default behavior is used, which is SKIP. 157*d5c09012SAndroid Build Coastguard Worker CHECK_IF_SERVICE_HAS_USAGE_UNSPECIFIED = 0; 158*d5c09012SAndroid Build Coastguard Worker 159*d5c09012SAndroid Build Coastguard Worker // If set, skip checking service usage when disabling a service. 160*d5c09012SAndroid Build Coastguard Worker SKIP = 1; 161*d5c09012SAndroid Build Coastguard Worker 162*d5c09012SAndroid Build Coastguard Worker // If set, service usage is checked when disabling the service. If a 163*d5c09012SAndroid Build Coastguard Worker // service, or its dependents, has usage in the last 30 days, the request 164*d5c09012SAndroid Build Coastguard Worker // returns a FAILED_PRECONDITION error. 165*d5c09012SAndroid Build Coastguard Worker CHECK = 2; 166*d5c09012SAndroid Build Coastguard Worker } 167*d5c09012SAndroid Build Coastguard Worker 168*d5c09012SAndroid Build Coastguard Worker // Name of the consumer and service to disable the service on. 169*d5c09012SAndroid Build Coastguard Worker // 170*d5c09012SAndroid Build Coastguard Worker // The enable and disable methods currently only support projects. 171*d5c09012SAndroid Build Coastguard Worker // 172*d5c09012SAndroid Build Coastguard Worker // An example name would be: 173*d5c09012SAndroid Build Coastguard Worker // `projects/123/services/serviceusage.googleapis.com` where `123` is the 174*d5c09012SAndroid Build Coastguard Worker // project number. 175*d5c09012SAndroid Build Coastguard Worker string name = 1; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // Indicates if services that are enabled and which depend on this service 178*d5c09012SAndroid Build Coastguard Worker // should also be disabled. If not set, an error will be generated if any 179*d5c09012SAndroid Build Coastguard Worker // enabled services depend on the service to be disabled. When set, the 180*d5c09012SAndroid Build Coastguard Worker // service, and any enabled services that depend on it, will be disabled 181*d5c09012SAndroid Build Coastguard Worker // together. 182*d5c09012SAndroid Build Coastguard Worker bool disable_dependent_services = 2; 183*d5c09012SAndroid Build Coastguard Worker 184*d5c09012SAndroid Build Coastguard Worker // Defines the behavior for checking service usage when disabling a service. 185*d5c09012SAndroid Build Coastguard Worker CheckIfServiceHasUsage check_if_service_has_usage = 3; 186*d5c09012SAndroid Build Coastguard Worker} 187*d5c09012SAndroid Build Coastguard Worker 188*d5c09012SAndroid Build Coastguard Worker// Response message for the `DisableService` method. 189*d5c09012SAndroid Build Coastguard Worker// This response message is assigned to the `response` field of the returned 190*d5c09012SAndroid Build Coastguard Worker// Operation when that operation is done. 191*d5c09012SAndroid Build Coastguard Workermessage DisableServiceResponse { 192*d5c09012SAndroid Build Coastguard Worker // The new state of the service after disabling. 193*d5c09012SAndroid Build Coastguard Worker Service service = 1; 194*d5c09012SAndroid Build Coastguard Worker} 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker// Request message for the `GetService` method. 197*d5c09012SAndroid Build Coastguard Workermessage GetServiceRequest { 198*d5c09012SAndroid Build Coastguard Worker // Name of the consumer and service to get the `ConsumerState` for. 199*d5c09012SAndroid Build Coastguard Worker // 200*d5c09012SAndroid Build Coastguard Worker // An example name would be: 201*d5c09012SAndroid Build Coastguard Worker // `projects/123/services/serviceusage.googleapis.com` where `123` is the 202*d5c09012SAndroid Build Coastguard Worker // project number. 203*d5c09012SAndroid Build Coastguard Worker string name = 1; 204*d5c09012SAndroid Build Coastguard Worker} 205*d5c09012SAndroid Build Coastguard Worker 206*d5c09012SAndroid Build Coastguard Worker// Request message for the `ListServices` method. 207*d5c09012SAndroid Build Coastguard Workermessage ListServicesRequest { 208*d5c09012SAndroid Build Coastguard Worker // Parent to search for services on. 209*d5c09012SAndroid Build Coastguard Worker // 210*d5c09012SAndroid Build Coastguard Worker // An example name would be: 211*d5c09012SAndroid Build Coastguard Worker // `projects/123` where `123` is the project number. 212*d5c09012SAndroid Build Coastguard Worker string parent = 1; 213*d5c09012SAndroid Build Coastguard Worker 214*d5c09012SAndroid Build Coastguard Worker // Requested size of the next page of data. 215*d5c09012SAndroid Build Coastguard Worker // Requested page size cannot exceed 200. 216*d5c09012SAndroid Build Coastguard Worker // If not set, the default page size is 50. 217*d5c09012SAndroid Build Coastguard Worker int32 page_size = 2; 218*d5c09012SAndroid Build Coastguard Worker 219*d5c09012SAndroid Build Coastguard Worker // Token identifying which result to start with, which is returned by a 220*d5c09012SAndroid Build Coastguard Worker // previous list call. 221*d5c09012SAndroid Build Coastguard Worker string page_token = 3; 222*d5c09012SAndroid Build Coastguard Worker 223*d5c09012SAndroid Build Coastguard Worker // Only list services that conform to the given filter. 224*d5c09012SAndroid Build Coastguard Worker // The allowed filter strings are `state:ENABLED` and `state:DISABLED`. 225*d5c09012SAndroid Build Coastguard Worker string filter = 4; 226*d5c09012SAndroid Build Coastguard Worker} 227*d5c09012SAndroid Build Coastguard Worker 228*d5c09012SAndroid Build Coastguard Worker// Response message for the `ListServices` method. 229*d5c09012SAndroid Build Coastguard Workermessage ListServicesResponse { 230*d5c09012SAndroid Build Coastguard Worker // The available services for the requested project. 231*d5c09012SAndroid Build Coastguard Worker repeated Service services = 1; 232*d5c09012SAndroid Build Coastguard Worker 233*d5c09012SAndroid Build Coastguard Worker // Token that can be passed to `ListServices` to resume a paginated 234*d5c09012SAndroid Build Coastguard Worker // query. 235*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 236*d5c09012SAndroid Build Coastguard Worker} 237*d5c09012SAndroid Build Coastguard Worker 238*d5c09012SAndroid Build Coastguard Worker// Request message for the `BatchEnableServices` method. 239*d5c09012SAndroid Build Coastguard Workermessage BatchEnableServicesRequest { 240*d5c09012SAndroid Build Coastguard Worker // Parent to enable services on. 241*d5c09012SAndroid Build Coastguard Worker // 242*d5c09012SAndroid Build Coastguard Worker // An example name would be: 243*d5c09012SAndroid Build Coastguard Worker // `projects/123` where `123` is the project number. 244*d5c09012SAndroid Build Coastguard Worker // 245*d5c09012SAndroid Build Coastguard Worker // The `BatchEnableServices` method currently only supports projects. 246*d5c09012SAndroid Build Coastguard Worker string parent = 1; 247*d5c09012SAndroid Build Coastguard Worker 248*d5c09012SAndroid Build Coastguard Worker // The identifiers of the services to enable on the project. 249*d5c09012SAndroid Build Coastguard Worker // 250*d5c09012SAndroid Build Coastguard Worker // A valid identifier would be: 251*d5c09012SAndroid Build Coastguard Worker // serviceusage.googleapis.com 252*d5c09012SAndroid Build Coastguard Worker // 253*d5c09012SAndroid Build Coastguard Worker // Enabling services requires that each service is public or is shared with 254*d5c09012SAndroid Build Coastguard Worker // the user enabling the service. 255*d5c09012SAndroid Build Coastguard Worker // 256*d5c09012SAndroid Build Coastguard Worker // A single request can enable a maximum of 20 services at a time. If more 257*d5c09012SAndroid Build Coastguard Worker // than 20 services are specified, the request will fail, and no state changes 258*d5c09012SAndroid Build Coastguard Worker // will occur. 259*d5c09012SAndroid Build Coastguard Worker repeated string service_ids = 2; 260*d5c09012SAndroid Build Coastguard Worker} 261*d5c09012SAndroid Build Coastguard Worker 262*d5c09012SAndroid Build Coastguard Worker// Response message for the `BatchEnableServices` method. 263*d5c09012SAndroid Build Coastguard Worker// This response message is assigned to the `response` field of the returned 264*d5c09012SAndroid Build Coastguard Worker// Operation when that operation is done. 265*d5c09012SAndroid Build Coastguard Workermessage BatchEnableServicesResponse { 266*d5c09012SAndroid Build Coastguard Worker // Provides error messages for the failing services. 267*d5c09012SAndroid Build Coastguard Worker message EnableFailure { 268*d5c09012SAndroid Build Coastguard Worker // The service id of a service that could not be enabled. 269*d5c09012SAndroid Build Coastguard Worker string service_id = 1; 270*d5c09012SAndroid Build Coastguard Worker 271*d5c09012SAndroid Build Coastguard Worker // An error message describing why the service could not be enabled. 272*d5c09012SAndroid Build Coastguard Worker string error_message = 2; 273*d5c09012SAndroid Build Coastguard Worker } 274*d5c09012SAndroid Build Coastguard Worker 275*d5c09012SAndroid Build Coastguard Worker // The new state of the services after enabling. 276*d5c09012SAndroid Build Coastguard Worker repeated Service services = 1; 277*d5c09012SAndroid Build Coastguard Worker 278*d5c09012SAndroid Build Coastguard Worker // If allow_partial_success is true, and one or more services could not be 279*d5c09012SAndroid Build Coastguard Worker // enabled, this field contains the details about each failure. 280*d5c09012SAndroid Build Coastguard Worker repeated EnableFailure failures = 2; 281*d5c09012SAndroid Build Coastguard Worker} 282*d5c09012SAndroid Build Coastguard Worker 283*d5c09012SAndroid Build Coastguard Worker// Request message for the `BatchGetServices` method. 284*d5c09012SAndroid Build Coastguard Workermessage BatchGetServicesRequest { 285*d5c09012SAndroid Build Coastguard Worker // Parent to retrieve services from. 286*d5c09012SAndroid Build Coastguard Worker // If this is set, the parent of all of the services specified in `names` must 287*d5c09012SAndroid Build Coastguard Worker // match this field. An example name would be: `projects/123` where `123` is 288*d5c09012SAndroid Build Coastguard Worker // the project number. The `BatchGetServices` method currently only supports 289*d5c09012SAndroid Build Coastguard Worker // projects. 290*d5c09012SAndroid Build Coastguard Worker string parent = 1; 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker // Names of the services to retrieve. 293*d5c09012SAndroid Build Coastguard Worker // 294*d5c09012SAndroid Build Coastguard Worker // An example name would be: 295*d5c09012SAndroid Build Coastguard Worker // `projects/123/services/serviceusage.googleapis.com` where `123` is the 296*d5c09012SAndroid Build Coastguard Worker // project number. 297*d5c09012SAndroid Build Coastguard Worker // A single request can get a maximum of 30 services at a time. 298*d5c09012SAndroid Build Coastguard Worker repeated string names = 2; 299*d5c09012SAndroid Build Coastguard Worker} 300*d5c09012SAndroid Build Coastguard Worker 301*d5c09012SAndroid Build Coastguard Worker// Response message for the `BatchGetServices` method. 302*d5c09012SAndroid Build Coastguard Workermessage BatchGetServicesResponse { 303*d5c09012SAndroid Build Coastguard Worker // The requested Service states. 304*d5c09012SAndroid Build Coastguard Worker repeated Service services = 1; 305*d5c09012SAndroid Build Coastguard Worker} 306