# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/monitoring/metricsscope/v1/metrics_scopes.proto for package 'Google.Cloud.Monitoring.MetricsScope.V1'
# Original file comments:
# 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.
#

require 'grpc'
require 'google/monitoring/metricsscope/v1/metrics_scopes_pb'

module Google
  module Cloud
    module Monitoring
      module MetricsScope
        module V1
          module MetricsScopes
            # Manages Cloud Monitoring Metrics Scopes, and the monitoring of Google Cloud
            # projects and AWS accounts.
            class Service

              include ::GRPC::GenericService

              self.marshal_class_method = :encode
              self.unmarshal_class_method = :decode
              self.service_name = 'google.monitoring.metricsscope.v1.MetricsScopes'

              # Returns a specific `Metrics Scope`.
              rpc :GetMetricsScope, ::Google::Cloud::Monitoring::MetricsScope::V1::GetMetricsScopeRequest, ::Google::Cloud::Monitoring::MetricsScope::V1::MetricsScope
              # Returns a list of every `Metrics Scope` that a specific `MonitoredProject`
              # has been added to. The metrics scope representing the specified monitored
              # project will always be the first entry in the response.
              rpc :ListMetricsScopesByMonitoredProject, ::Google::Cloud::Monitoring::MetricsScope::V1::ListMetricsScopesByMonitoredProjectRequest, ::Google::Cloud::Monitoring::MetricsScope::V1::ListMetricsScopesByMonitoredProjectResponse
              # Adds a `MonitoredProject` with the given project ID
              # to the specified `Metrics Scope`.
              rpc :CreateMonitoredProject, ::Google::Cloud::Monitoring::MetricsScope::V1::CreateMonitoredProjectRequest, ::Google::Longrunning::Operation
              # Deletes a `MonitoredProject` from the specified `Metrics Scope`.
              rpc :DeleteMonitoredProject, ::Google::Cloud::Monitoring::MetricsScope::V1::DeleteMonitoredProjectRequest, ::Google::Longrunning::Operation
            end

            Stub = Service.rpc_stub_class
          end
        end
      end
    end
  end
end
