diff --git a/google/cloud/ids/v1/BUILD.bazel b/google/cloud/ids/v1/BUILD.bazel new file mode 100644 index 0000000000000..83418c0679306 --- /dev/null +++ b/google/cloud/ids/v1/BUILD.bazel @@ -0,0 +1,343 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "ids_proto", + srcs = [ + "ids.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "ids_proto_with_info", + deps = [ + ":ids_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "ids_java_proto", + deps = [":ids_proto"], +) + +java_grpc_library( + name = "ids_java_grpc", + srcs = [":ids_proto"], + deps = [":ids_java_proto"], +) + +java_gapic_library( + name = "ids_java_gapic", + srcs = [":ids_proto_with_info"], + gapic_yaml = "ids_gapic.yaml", + grpc_service_config = "ids_grpc_service_config.json", + service_yaml = "ids_v1.yaml", + test_deps = [ + ":ids_java_grpc", + ], + deps = [ + ":ids_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "ids_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.ids.v1.IDSClientTest", + ], + runtime_deps = [":ids_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-ids-v1-java", + deps = [ + ":ids_java_gapic", + ":ids_java_grpc", + ":ids_java_proto", + ":ids_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "ids_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/cloud/ids/v1", + protos = [":ids_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "ids_go_gapic", + srcs = [":ids_proto_with_info"], + grpc_service_config = "ids_grpc_service_config.json", + importpath = "cloud.google.com/go/ids/apiv1;ids", + service_yaml = "ids_v1.yaml", + metadata = True, + deps = [ + ":ids_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning/autogen:go_default_library", + "@com_google_cloud_go//longrunning:go_default_library", + ], +) + +go_test( + name = "ids_go_gapic_test", + srcs = [":ids_go_gapic_srcjar_test"], + embed = [":ids_go_gapic"], + importpath = "cloud.google.com/go/ids/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-ids-v1-go", + deps = [ + ":ids_go_gapic", + ":ids_go_gapic_srcjar-test.srcjar", + ":ids_go_gapic_srcjar-metadata.srcjar", + ":ids_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", +) + +py_gapic_library( + name = "ids_py_gapic", + srcs = [":ids_proto"], + grpc_service_config = "ids_grpc_service_config.json", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "ids-v1-py", + deps = [ + ":ids_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "ids_php_proto", + deps = [":ids_proto"], +) + +php_grpc_library( + name = "ids_php_grpc", + srcs = [":ids_proto"], + deps = [":ids_php_proto"], +) + +php_gapic_library( + name = "ids_php_gapic", + srcs = [":ids_proto_with_info"], + grpc_service_config = "ids_grpc_service_config.json", + service_yaml = "ids_v1.yaml", + gapic_yaml = "ids_gapic.yaml", + deps = [ + ":ids_php_grpc", + ":ids_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-ids-v1-php", + deps = [ + ":ids_php_gapic", + ":ids_php_grpc", + ":ids_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "ids_nodejs_gapic", + package_name = "@google-cloud/ids", + src = ":ids_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "ids_grpc_service_config.json", + package = "google.cloud.ids.v1", + service_yaml = "ids_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "ids-v1-nodejs", + deps = [ + ":ids_nodejs_gapic", + ":ids_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "ids_ruby_proto", + deps = [":ids_proto"], +) + +ruby_grpc_library( + name = "ids_ruby_grpc", + srcs = [":ids_proto"], + deps = [":ids_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "ids_ruby_gapic", + srcs = [":ids_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-ids-v1", + ], + grpc_service_config = "ids_grpc_service_config.json", + deps = [ + ":ids_ruby_grpc", + ":ids_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-ids-v1-ruby", + deps = [ + ":ids_ruby_gapic", + ":ids_ruby_grpc", + ":ids_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "ids_csharp_proto", + deps = [":ids_proto"], +) + +csharp_grpc_library( + name = "ids_csharp_grpc", + srcs = [":ids_proto"], + deps = [":ids_csharp_proto"], +) + +csharp_gapic_library( + name = "ids_csharp_gapic", + srcs = [":ids_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "ids_grpc_service_config.json", + deps = [ + ":ids_csharp_grpc", + ":ids_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-ids-v1-csharp", + deps = [ + ":ids_csharp_gapic", + ":ids_csharp_grpc", + ":ids_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# Put your C++ rules here diff --git a/google/cloud/ids/v1/ids.proto b/google/cloud/ids/v1/ids.proto new file mode 100644 index 0000000000000..6b667795cf743 --- /dev/null +++ b/google/cloud/ids/v1/ids.proto @@ -0,0 +1,296 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.ids.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/ids/v1;ids"; +option java_multiple_files = true; +option java_outer_classname = "IdsProto"; +option java_package = "com.google.cloud.ids.v1"; + +// The IDS Service +service IDS { + option (google.api.default_host) = "ids.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Endpoints in a given project and location. + rpc ListEndpoints(ListEndpointsRequest) returns (ListEndpointsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/endpoints" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Endpoint. + rpc GetEndpoint(GetEndpointRequest) returns (Endpoint) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/endpoints/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Endpoint in a given project and location. + rpc CreateEndpoint(CreateEndpointRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/endpoints" + body: "endpoint" + }; + option (google.api.method_signature) = "parent,endpoint,endpoint_id"; + option (google.longrunning.operation_info) = { + response_type: "Endpoint" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Endpoint. + rpc DeleteEndpoint(DeleteEndpointRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/endpoints/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Endpoint describes a single IDS endpoint. It defines a forwarding rule to +// which packets can be sent for IDS inspection. +message Endpoint { + option (google.api.resource) = { + type: "ids.googleapis.com/Endpoint" + pattern: "projects/{project}/locations/{location}/endpoints/{endpoint}" + }; + + // Threat severity levels. + enum Severity { + // Not set. + SEVERITY_UNSPECIFIED = 0; + + // Informational alerts. + INFORMATIONAL = 1; + + // Low severity alerts. + LOW = 2; + + // Medium severity alerts. + MEDIUM = 3; + + // High severity alerts. + HIGH = 4; + + // Critical severity alerts. + CRITICAL = 5; + } + + // Endpoint state + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // Being created. + CREATING = 1; + + // Active and ready for traffic. + READY = 2; + + // Being deleted. + DELETING = 3; + } + + // Output only. The name of the endpoint. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create time timestamp. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update time timestamp. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels of the endpoint. + map labels = 4; + + // Required. The fully qualified URL of the network to which the IDS Endpoint is + // attached. + string network = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The fully qualified URL of the endpoint's ILB Forwarding Rule. + string endpoint_forwarding_rule = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The IP address of the IDS Endpoint's ILB. + string endpoint_ip = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User-provided description of the endpoint + string description = 8; + + // Required. Lowest threat severity that this endpoint will alert on. + Severity severity = 9 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Current state of the endpoint. + State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Whether the endpoint should report traffic logs in addition to threat logs. + bool traffic_logs = 13; +} + +message ListEndpointsRequest { + // Required. The parent, which owns this collection of endpoints. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "ids.googleapis.com/Endpoint" + } + ]; + + // Optional. The maximum number of endpoints to return. The service may return fewer + // than this value. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListEndpoints` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListEndpoints` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The filter expression, following the syntax outlined in + // https://google.aip.dev/160. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. One or more fields to compare and use to sort the output. + // See https://google.aip.dev/132#ordering. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListEndpointsResponse { + // The list of endpoints response. + repeated Endpoint endpoints = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +message GetEndpointRequest { + // Required. The name of the endpoint to retrieve. + // Format: `projects/{project}/locations/{location}/endpoints/{endpoint}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "ids.googleapis.com/Endpoint" + } + ]; +} + +message CreateEndpointRequest { + // Required. The endpoint's parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "ids.googleapis.com/Endpoint" + } + ]; + + // Required. The endpoint identifier. This will be part of the endpoint's + // resource name. + // This value must start with a lowercase letter followed by up to 62 + // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + // Values that do not match this pattern will trigger an INVALID_ARGUMENT + // error. + string endpoint_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The endpoint to create. + Endpoint endpoint = 3 [(google.api.field_behavior) = REQUIRED]; + + // An optional request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4; +} + +message DeleteEndpointRequest { + // Required. The name of the endpoint to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "ids.googleapis.com/Endpoint" + } + ]; + + // An optional request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server will know to ignore + // the request if it has already been completed. The server will guarantee + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/ids/v1/ids_gapic.yaml b/google/cloud/ids/v1/ids_gapic.yaml new file mode 100644 index 0000000000000..29305775b08ce --- /dev/null +++ b/google/cloud/ids/v1/ids_gapic.yaml @@ -0,0 +1,17 @@ +itype: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +interfaces: +- name: google.cloud.ids.v1.IDS + methods: + - name: CreateEndpoint + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 3600000 + - name: DeleteEndpoint + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 3600000 diff --git a/google/cloud/ids/v1/ids_grpc_service_config.json b/google/cloud/ids/v1/ids_grpc_service_config.json new file mode 100644 index 0000000000000..14f353c2300ad --- /dev/null +++ b/google/cloud/ids/v1/ids_grpc_service_config.json @@ -0,0 +1,31 @@ +{ + "methodConfig": [ + { + "name": [ + { "service": "google.cloud.ids.v1.IDS", "method": "ListEndpoints" }, + { "service": "google.cloud.ids.v1.IDS", "method": "GetEndpoint" } + ], + "timeout": "60s", + "retryPolicy": { + "initialBackoff": "0.250s", + "maxBackoff": "32s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + }, + { + "name": [ + { "service": "google.cloud.ids.v1.IDS", "method": "CreateEndpoint" } + ], + "timeout": "3600s" + }, + { + "name": [ + { "service": "google.cloud.ids.v1.IDS", "method": "DeleteEndpoint" } + ], + "timeout": "3600s" + } + ] +} diff --git a/google/cloud/ids/v1/ids_v1.yaml b/google/cloud/ids/v1/ids_v1.yaml new file mode 100644 index 0000000000000..9ae4225c16a56 --- /dev/null +++ b/google/cloud/ids/v1/ids_v1.yaml @@ -0,0 +1,107 @@ +type: google.api.Service +config_version: 3 +name: ids.googleapis.com +title: Cloud IDS API + +apis: +- name: google.cloud.ids.v1.IDS + +types: +- name: google.cloud.ids.v1.OperationMetadata + +documentation: + summary: |- + Cloud IDS (Cloud Intrusion Detection System) detects malware, spyware, + command-and-control attacks, and other network-based threats. Its security + efficacy is industry leading, built with Palo Alto Networks technologies. + When you use this product, your organization name and consumption levels + will be shared with Palo Alto Networks. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + description: |- + Gets the access control policy for a resource. Returns an empty policy + if the resource exists and does not have a policy set. + + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + description: |- + Sets the access control policy on the specified resource. Replaces + any existing policy. + + Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` + errors. + + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + description: |- + Returns permissions that a caller has on the specified resource. If the + resource does not exist, this will return an empty set of + permissions, not a `NOT_FOUND` error. + + Note: This operation is designed to be used for building + permission-aware UIs and command-line tools, not for authorization + checking. This operation may "fail open" without warning. + +backend: + rules: + - selector: 'google.cloud.ids.v1.IDS.*' + deadline: 60.0 + - selector: google.cloud.location.Locations.GetLocation + deadline: 60.0 + - selector: google.cloud.location.Locations.ListLocations + deadline: 60.0 + - selector: 'google.iam.v1.IAMPolicy.*' + deadline: 60.0 + - selector: 'google.longrunning.Operations.*' + deadline: 60.0 + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/endpoints/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.ids.v1.IDS.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.iam.v1.IAMPolicy.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform