# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/securitycenter/v2/securitycenter_service.proto for package 'Google.Cloud.SecurityCenter.V2'
# Original file comments:
# Copyright 2023 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/cloud/securitycenter/v2/securitycenter_service_pb'

module Google
  module Cloud
    module SecurityCenter
      module V2
        module SecurityCenter
          # V2 APIs for Security Center service.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.securitycenter.v2.SecurityCenter'

            # Creates a ResourceValueConfig for an organization. Maps user's tags to
            # difference resource values for use by the attack path simulation.
            rpc :BatchCreateResourceValueConfigs, ::Google::Cloud::SecurityCenter::V2::BatchCreateResourceValueConfigsRequest, ::Google::Cloud::SecurityCenter::V2::BatchCreateResourceValueConfigsResponse
            # Kicks off an LRO to bulk mute findings for a parent based on a filter. If
            # no location is specified, findings are muted in global. The parent
            # can be either an organization, folder, or project. The findings matched by
            # the filter will be muted after the LRO is done.
            rpc :BulkMuteFindings, ::Google::Cloud::SecurityCenter::V2::BulkMuteFindingsRequest, ::Google::Longrunning::Operation
            # Creates a BigQuery export.
            rpc :CreateBigQueryExport, ::Google::Cloud::SecurityCenter::V2::CreateBigQueryExportRequest, ::Google::Cloud::SecurityCenter::V2::BigQueryExport
            # Creates a finding in a location. The corresponding source must exist for
            # finding creation to succeed.
            rpc :CreateFinding, ::Google::Cloud::SecurityCenter::V2::CreateFindingRequest, ::Google::Cloud::SecurityCenter::V2::Finding
            # Creates a mute config.
            rpc :CreateMuteConfig, ::Google::Cloud::SecurityCenter::V2::CreateMuteConfigRequest, ::Google::Cloud::SecurityCenter::V2::MuteConfig
            # Creates a notification config.
            rpc :CreateNotificationConfig, ::Google::Cloud::SecurityCenter::V2::CreateNotificationConfigRequest, ::Google::Cloud::SecurityCenter::V2::NotificationConfig
            # Creates a source.
            rpc :CreateSource, ::Google::Cloud::SecurityCenter::V2::CreateSourceRequest, ::Google::Cloud::SecurityCenter::V2::Source
            # Deletes an existing BigQuery export.
            rpc :DeleteBigQueryExport, ::Google::Cloud::SecurityCenter::V2::DeleteBigQueryExportRequest, ::Google::Protobuf::Empty
            # Deletes an existing mute config. If no location is specified, default is
            # global.
            rpc :DeleteMuteConfig, ::Google::Cloud::SecurityCenter::V2::DeleteMuteConfigRequest, ::Google::Protobuf::Empty
            # Deletes a notification config.
            rpc :DeleteNotificationConfig, ::Google::Cloud::SecurityCenter::V2::DeleteNotificationConfigRequest, ::Google::Protobuf::Empty
            # Deletes a ResourceValueConfig.
            rpc :DeleteResourceValueConfig, ::Google::Cloud::SecurityCenter::V2::DeleteResourceValueConfigRequest, ::Google::Protobuf::Empty
            # Gets a BigQuery export.
            rpc :GetBigQueryExport, ::Google::Cloud::SecurityCenter::V2::GetBigQueryExportRequest, ::Google::Cloud::SecurityCenter::V2::BigQueryExport
            # Get the simulation by name or the latest simulation for the given
            # organization.
            rpc :GetSimulation, ::Google::Cloud::SecurityCenter::V2::GetSimulationRequest, ::Google::Cloud::SecurityCenter::V2::Simulation
            # Get the valued resource by name
            rpc :GetValuedResource, ::Google::Cloud::SecurityCenter::V2::GetValuedResourceRequest, ::Google::Cloud::SecurityCenter::V2::ValuedResource
            # Gets the access control policy on the specified Source.
            rpc :GetIamPolicy, ::Google::Iam::V1::GetIamPolicyRequest, ::Google::Iam::V1::Policy
            # Gets a mute config. If no location is specified, default is
            # global.
            rpc :GetMuteConfig, ::Google::Cloud::SecurityCenter::V2::GetMuteConfigRequest, ::Google::Cloud::SecurityCenter::V2::MuteConfig
            # Gets a notification config.
            rpc :GetNotificationConfig, ::Google::Cloud::SecurityCenter::V2::GetNotificationConfigRequest, ::Google::Cloud::SecurityCenter::V2::NotificationConfig
            # Gets a ResourceValueConfig.
            rpc :GetResourceValueConfig, ::Google::Cloud::SecurityCenter::V2::GetResourceValueConfigRequest, ::Google::Cloud::SecurityCenter::V2::ResourceValueConfig
            # Gets a source.
            rpc :GetSource, ::Google::Cloud::SecurityCenter::V2::GetSourceRequest, ::Google::Cloud::SecurityCenter::V2::Source
            # Filters an organization or source's findings and groups them by their
            # specified properties in a location. If no location is specified, findings
            # are assumed to be in global
            #
            # To group across all sources provide a `-` as the source id.
            # The following list shows some examples:
            #
            # + `/v2/organizations/{organization_id}/sources/-/findings`
            # +
            # `/v2/organizations/{organization_id}/sources/-/locations/{location_id}/findings`
            # + `/v2/folders/{folder_id}/sources/-/findings`
            # + `/v2/folders/{folder_id}/sources/-/locations/{location_id}/findings`
            # + `/v2/projects/{project_id}/sources/-/findings`
            # + `/v2/projects/{project_id}/sources/-/locations/{location_id}/findings`
            rpc :GroupFindings, ::Google::Cloud::SecurityCenter::V2::GroupFindingsRequest, ::Google::Cloud::SecurityCenter::V2::GroupFindingsResponse
            # Lists the attack paths for a set of simulation results or valued resources
            # and filter.
            rpc :ListAttackPaths, ::Google::Cloud::SecurityCenter::V2::ListAttackPathsRequest, ::Google::Cloud::SecurityCenter::V2::ListAttackPathsResponse
            # Lists BigQuery exports. Note that when requesting BigQuery exports at a
            # given level all exports under that level are also returned e.g. if
            # requesting BigQuery exports under a folder, then all BigQuery exports
            # immediately under the folder plus the ones created under the projects
            # within the folder are returned.
            rpc :ListBigQueryExports, ::Google::Cloud::SecurityCenter::V2::ListBigQueryExportsRequest, ::Google::Cloud::SecurityCenter::V2::ListBigQueryExportsResponse
            # Lists an organization or source's findings.
            #
            # To list across all sources for a given location provide a `-` as the source
            # id. If no location is specified, finding are assumed to be in global.
            # The following list shows some examples:
            #
            # + `/v2/organizations/{organization_id}/sources/-/findings`
            # +
            # `/v2/organizations/{organization_id}/sources/-/locations/{location_id}/findings`
            rpc :ListFindings, ::Google::Cloud::SecurityCenter::V2::ListFindingsRequest, ::Google::Cloud::SecurityCenter::V2::ListFindingsResponse
            # Lists mute configs. If no location is specified, default is
            # global.
            rpc :ListMuteConfigs, ::Google::Cloud::SecurityCenter::V2::ListMuteConfigsRequest, ::Google::Cloud::SecurityCenter::V2::ListMuteConfigsResponse
            # Lists notification configs.
            rpc :ListNotificationConfigs, ::Google::Cloud::SecurityCenter::V2::ListNotificationConfigsRequest, ::Google::Cloud::SecurityCenter::V2::ListNotificationConfigsResponse
            # Lists all ResourceValueConfigs.
            rpc :ListResourceValueConfigs, ::Google::Cloud::SecurityCenter::V2::ListResourceValueConfigsRequest, ::Google::Cloud::SecurityCenter::V2::ListResourceValueConfigsResponse
            # Lists all sources belonging to an organization.
            rpc :ListSources, ::Google::Cloud::SecurityCenter::V2::ListSourcesRequest, ::Google::Cloud::SecurityCenter::V2::ListSourcesResponse
            # Lists the valued resources for a set of simulation results and filter.
            rpc :ListValuedResources, ::Google::Cloud::SecurityCenter::V2::ListValuedResourcesRequest, ::Google::Cloud::SecurityCenter::V2::ListValuedResourcesResponse
            # Updates the state of a finding. If no location is specified, finding is
            # assumed to be in global
            rpc :SetFindingState, ::Google::Cloud::SecurityCenter::V2::SetFindingStateRequest, ::Google::Cloud::SecurityCenter::V2::Finding
            # Sets the access control policy on the specified Source.
            rpc :SetIamPolicy, ::Google::Iam::V1::SetIamPolicyRequest, ::Google::Iam::V1::Policy
            # Updates the mute state of a finding. If no location is specified, finding
            # is assumed to be in global
            rpc :SetMute, ::Google::Cloud::SecurityCenter::V2::SetMuteRequest, ::Google::Cloud::SecurityCenter::V2::Finding
            # Returns the permissions that a caller has on the specified source.
            rpc :TestIamPermissions, ::Google::Iam::V1::TestIamPermissionsRequest, ::Google::Iam::V1::TestIamPermissionsResponse
            # Updates a BigQuery export.
            rpc :UpdateBigQueryExport, ::Google::Cloud::SecurityCenter::V2::UpdateBigQueryExportRequest, ::Google::Cloud::SecurityCenter::V2::BigQueryExport
            # Updates external system. This is for a given finding. If no location is
            # specified, finding is assumed to be in global
            rpc :UpdateExternalSystem, ::Google::Cloud::SecurityCenter::V2::UpdateExternalSystemRequest, ::Google::Cloud::SecurityCenter::V2::ExternalSystem
            # Creates or updates a finding. If no location is specified, finding is
            # assumed to be in global. The corresponding source must exist for a finding
            # creation to succeed.
            rpc :UpdateFinding, ::Google::Cloud::SecurityCenter::V2::UpdateFindingRequest, ::Google::Cloud::SecurityCenter::V2::Finding
            # Updates a mute config. If no location is specified, default is
            # global.
            rpc :UpdateMuteConfig, ::Google::Cloud::SecurityCenter::V2::UpdateMuteConfigRequest, ::Google::Cloud::SecurityCenter::V2::MuteConfig
            # Updates a notification config. The following update
            # fields are allowed: description, pubsub_topic, streaming_config.filter
            rpc :UpdateNotificationConfig, ::Google::Cloud::SecurityCenter::V2::UpdateNotificationConfigRequest, ::Google::Cloud::SecurityCenter::V2::NotificationConfig
            # Updates an existing ResourceValueConfigs with new rules.
            rpc :UpdateResourceValueConfig, ::Google::Cloud::SecurityCenter::V2::UpdateResourceValueConfigRequest, ::Google::Cloud::SecurityCenter::V2::ResourceValueConfig
            # Updates security marks. For Finding Security marks, if no location is
            # specified, finding is assumed to be in global. Assets Security Marks can
            # only be accessed through global endpoint.
            rpc :UpdateSecurityMarks, ::Google::Cloud::SecurityCenter::V2::UpdateSecurityMarksRequest, ::Google::Cloud::SecurityCenter::V2::SecurityMarks
            # Updates a source.
            rpc :UpdateSource, ::Google::Cloud::SecurityCenter::V2::UpdateSourceRequest, ::Google::Cloud::SecurityCenter::V2::Source
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
