# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: api/app_identity.proto for package 'ownmfa.api'

require 'grpc'
require 'api/app_identity_pb'

module Ownmfa
  module Api
    module AppIdentityService
      # AppIdentityService contains functions to query and modify applications and identities.
      class Service

        include ::GRPC::GenericService

        self.marshal_class_method = :encode
        self.unmarshal_class_method = :decode
        self.service_name = 'ownmfa.api.AppIdentityService'

        # Create an application. Applications contain external user identities and common settings for authentication methods.
        rpc :CreateApp, ::Ownmfa::Api::CreateAppRequest, ::Ownmfa::Api::App
        # Create an identity. Identities are used to challenge, activate, and verify external users.
        rpc :CreateIdentity, ::Ownmfa::Api::CreateIdentityRequest, ::Ownmfa::Api::CreateIdentityResponse
        # Activate an identity following a challenge.
        rpc :ActivateIdentity, ::Ownmfa::Api::ActivateIdentityRequest, ::Ownmfa::Api::Identity
        # Issue a challenge to an identity.
        rpc :ChallengeIdentity, ::Ownmfa::Api::ChallengeIdentityRequest, ::Google::Protobuf::Empty
        # Verify an identity following a challenge.
        rpc :VerifyIdentity, ::Ownmfa::Api::VerifyIdentityRequest, ::Google::Protobuf::Empty
        # Get an application by ID. Applications contain external user identities and common settings for authentication methods.
        rpc :GetApp, ::Ownmfa::Api::GetAppRequest, ::Ownmfa::Api::App
        # Get an identity by ID. Identities are used to challenge, activate, and verify external users.
        rpc :GetIdentity, ::Ownmfa::Api::GetIdentityRequest, ::Ownmfa::Api::Identity
        # Update an application. Applications contain external user identities and common settings for authentication methods.
        rpc :UpdateApp, ::Ownmfa::Api::UpdateAppRequest, ::Ownmfa::Api::App
        # Delete an application by ID. Applications contain external user identities and common settings for authentication methods.
        rpc :DeleteApp, ::Ownmfa::Api::DeleteAppRequest, ::Google::Protobuf::Empty
        # Delete an identity by ID. Identities are used to challenge, activate, and verify external users.
        rpc :DeleteIdentity, ::Ownmfa::Api::DeleteIdentityRequest, ::Google::Protobuf::Empty
        # List all applications. Applications contain external user identities and common settings for authentication methods.
        rpc :ListApps, ::Ownmfa::Api::ListAppsRequest, ::Ownmfa::Api::ListAppsResponse
        # List identities. Identities are used to challenge, activate, and verify external users.
        rpc :ListIdentities, ::Ownmfa::Api::ListIdentitiesRequest, ::Ownmfa::Api::ListIdentitiesResponse
      end

      Stub = Service.rpc_stub_class
    end
  end
end
