diff --git a/client b/client index d8e84e2..429e02c 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit d8e84e27c3cfc22e79f34c34732bd194aa7e04f7 +Subproject commit 429e02c3af01dc78563c7dfb7ec86d0622cc23eb diff --git a/src/noteflow/application/services/hf_token_service.py b/src/noteflow/application/services/hf_token_service.py index 95769fe..89fda7b 100644 --- a/src/noteflow/application/services/hf_token_service.py +++ b/src/noteflow/application/services/hf_token_service.py @@ -8,6 +8,7 @@ from typing import TYPE_CHECKING, Final, cast import httpx +from noteflow.config.settings import get_settings from noteflow.domain.utils.time import utc_now from noteflow.infrastructure.logging import get_logger from noteflow.infrastructure.security.protocols import EncryptedChunk @@ -121,6 +122,9 @@ class HfTokenService: metadata = await uow.preferences.get(_HF_TOKEN_META_KEY) if encrypted_data is None: + seeded = await self._bootstrap_from_settings() + if seeded: + return HfTokenStatus(True, False, "", None) return HfTokenStatus(False, False, "", None) if metadata is not None and isinstance(metadata, dict): @@ -134,6 +138,16 @@ class HfTokenService: return HfTokenStatus(True, is_validated, username, validated_at) + async def _bootstrap_from_settings(self) -> bool: + """Seed token storage from settings when not yet configured.""" + token = get_settings().diarization_hf_token + if not token: + return False + success, _ = await self.set_token(token, validate=False) + if success: + logger.info("hf_token_seeded_from_env") + return success + async def delete_token(self) -> bool: """Delete the stored HuggingFace token.""" async with self._uow_factory() as uow: diff --git a/src/noteflow/grpc/_client_mixins/protocols.py b/src/noteflow/grpc/_client_mixins/protocols.py index 8f44d72..415ab04 100644 --- a/src/noteflow/grpc/_client_mixins/protocols.py +++ b/src/noteflow/grpc/_client_mixins/protocols.py @@ -77,6 +77,11 @@ class ProtoServerInfoResponse(Protocol): active_meetings: int diarization_enabled: bool diarization_ready: bool + system_ram_total_bytes: int + system_ram_available_bytes: int + gpu_vram_total_bytes: int + gpu_vram_available_bytes: int + def HasField(self, field_name: str) -> bool: ... class NoteFlowServiceStubProtocol(Protocol): diff --git a/src/noteflow/grpc/_service_mixins.py b/src/noteflow/grpc/_service_mixins.py index e92effa..9591b36 100644 --- a/src/noteflow/grpc/_service_mixins.py +++ b/src/noteflow/grpc/_service_mixins.py @@ -24,6 +24,7 @@ from noteflow.infrastructure.logging import ( user_id_var, workspace_id_var, ) +from noteflow.infrastructure.metrics import get_system_resources from noteflow.infrastructure.persistence.memory import MemoryUnitOfWork from noteflow.infrastructure.persistence.unit_of_work import SqlAlchemyUnitOfWork from noteflow.infrastructure.security.crypto import AesGcmCryptoBox @@ -304,7 +305,8 @@ class ServicerInfoMixin: else: active = self.get_memory_store().active_count - return noteflow_pb2.ServerInfo( + resources = get_system_resources() + response = noteflow_pb2.ServerInfo( version=self.VERSION, asr_model=asr_model, asr_ready=asr_ready, @@ -316,6 +318,16 @@ class ServicerInfoMixin: diarization_ready=diarization_ready, state_version=self.STATE_VERSION, ) + if resources.ram_total_bytes is not None: + response.system_ram_total_bytes = resources.ram_total_bytes + if resources.ram_available_bytes is not None: + response.system_ram_available_bytes = resources.ram_available_bytes + if resources.gpu_vram_total_bytes is not None: + response.gpu_vram_total_bytes = resources.gpu_vram_total_bytes + if resources.gpu_vram_available_bytes is not None: + response.gpu_vram_available_bytes = resources.gpu_vram_available_bytes + + return response class ServicerLifecycleMixin: diff --git a/src/noteflow/grpc/_types.py b/src/noteflow/grpc/_types.py index c45f4e3..1153414 100644 --- a/src/noteflow/grpc/_types.py +++ b/src/noteflow/grpc/_types.py @@ -31,6 +31,10 @@ class ServerInfo: active_meetings: int diarization_enabled: bool = False diarization_ready: bool = False + system_ram_total_bytes: int | None = None + system_ram_available_bytes: int | None = None + gpu_vram_total_bytes: int | None = None + gpu_vram_available_bytes: int | None = None @dataclass diff --git a/src/noteflow/grpc/client.py b/src/noteflow/grpc/client.py index 84fad30..12be66e 100644 --- a/src/noteflow/grpc/client.py +++ b/src/noteflow/grpc/client.py @@ -197,6 +197,26 @@ class NoteFlowClient( active_meetings=response.active_meetings, diarization_enabled=response.diarization_enabled, diarization_ready=response.diarization_ready, + system_ram_total_bytes=( + response.system_ram_total_bytes + if response.HasField("system_ram_total_bytes") + else None + ), + system_ram_available_bytes=( + response.system_ram_available_bytes + if response.HasField("system_ram_available_bytes") + else None + ), + gpu_vram_total_bytes=( + response.gpu_vram_total_bytes + if response.HasField("gpu_vram_total_bytes") + else None + ), + gpu_vram_available_bytes=( + response.gpu_vram_available_bytes + if response.HasField("gpu_vram_available_bytes") + else None + ), ) except grpc.RpcError as e: logger.error("Failed to get server info: %s", e) diff --git a/src/noteflow/grpc/proto/noteflow.proto b/src/noteflow/grpc/proto/noteflow.proto index 0f4e258..8099b13 100644 --- a/src/noteflow/grpc/proto/noteflow.proto +++ b/src/noteflow/grpc/proto/noteflow.proto @@ -622,6 +622,18 @@ message ServerInfo { // Server state version for cache invalidation (Sprint GAP-002) // Increment when breaking state changes require client cache invalidation int64 state_version = 10; + + // Total system RAM in bytes + optional int64 system_ram_total_bytes = 11; + + // Available system RAM in bytes + optional int64 system_ram_available_bytes = 12; + + // Total GPU VRAM in bytes (primary device) + optional int64 gpu_vram_total_bytes = 13; + + // Available GPU VRAM in bytes (primary device) + optional int64 gpu_vram_available_bytes = 14; } // ============================================================================= diff --git a/src/noteflow/grpc/proto/noteflow_pb2.py b/src/noteflow/grpc/proto/noteflow_pb2.py index f15f82b..af74abb 100644 --- a/src/noteflow/grpc/proto/noteflow_pb2.py +++ b/src/noteflow/grpc/proto/noteflow_pb2.py @@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0enoteflow.proto\x12\x08noteflow\"\x86\x01\n\nAudioChunk\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x12\n\naudio_data\x18\x02 \x01(\x0c\x12\x11\n\ttimestamp\x18\x03 \x01(\x01\x12\x13\n\x0bsample_rate\x18\x04 \x01(\x05\x12\x10\n\x08\x63hannels\x18\x05 \x01(\x05\x12\x16\n\x0e\x63hunk_sequence\x18\x06 \x01(\x03\"`\n\x0e\x43ongestionInfo\x12\x1b\n\x13processing_delay_ms\x18\x01 \x01(\x05\x12\x13\n\x0bqueue_depth\x18\x02 \x01(\x05\x12\x1c\n\x14throttle_recommended\x18\x03 \x01(\x08\"\x98\x02\n\x10TranscriptUpdate\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12)\n\x0bupdate_type\x18\x02 \x01(\x0e\x32\x14.noteflow.UpdateType\x12\x14\n\x0cpartial_text\x18\x03 \x01(\t\x12\'\n\x07segment\x18\x04 \x01(\x0b\x32\x16.noteflow.FinalSegment\x12\x18\n\x10server_timestamp\x18\x05 \x01(\x01\x12\x19\n\x0c\x61\x63k_sequence\x18\x06 \x01(\x03H\x00\x88\x01\x01\x12\x31\n\ncongestion\x18\n \x01(\x0b\x32\x18.noteflow.CongestionInfoH\x01\x88\x01\x01\x42\x0f\n\r_ack_sequenceB\r\n\x0b_congestion\"\x87\x02\n\x0c\x46inalSegment\x12\x12\n\nsegment_id\x18\x01 \x01(\x05\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x01\x12#\n\x05words\x18\x05 \x03(\x0b\x32\x14.noteflow.WordTiming\x12\x10\n\x08language\x18\x06 \x01(\t\x12\x1b\n\x13language_confidence\x18\x07 \x01(\x02\x12\x13\n\x0b\x61vg_logprob\x18\x08 \x01(\x02\x12\x16\n\x0eno_speech_prob\x18\t \x01(\x02\x12\x12\n\nspeaker_id\x18\n \x01(\t\x12\x1a\n\x12speaker_confidence\x18\x0b \x01(\x02\"U\n\nWordTiming\x12\x0c\n\x04word\x18\x01 \x01(\t\x12\x12\n\nstart_time\x18\x02 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x03 \x01(\x01\x12\x13\n\x0bprobability\x18\x04 \x01(\x02\"\xb0\x03\n\x07Meeting\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12%\n\x05state\x18\x03 \x01(\x0e\x32\x16.noteflow.MeetingState\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\x12\n\nstarted_at\x18\x05 \x01(\x01\x12\x10\n\x08\x65nded_at\x18\x06 \x01(\x01\x12\x18\n\x10\x64uration_seconds\x18\x07 \x01(\x01\x12(\n\x08segments\x18\x08 \x03(\x0b\x32\x16.noteflow.FinalSegment\x12\"\n\x07summary\x18\t \x01(\x0b\x32\x11.noteflow.Summary\x12\x31\n\x08metadata\x18\n \x03(\x0b\x32\x1f.noteflow.Meeting.MetadataEntry\x12\x17\n\nproject_id\x18\x0b \x01(\tH\x00\x88\x01\x01\x12\x35\n\x11processing_status\x18\x0c \x01(\x0b\x32\x1a.noteflow.ProcessingStatus\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_project_id\"\xbe\x01\n\x14\x43reateMeetingRequest\x12\r\n\x05title\x18\x01 \x01(\t\x12>\n\x08metadata\x18\x02 \x03(\x0b\x32,.noteflow.CreateMeetingRequest.MetadataEntry\x12\x17\n\nproject_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_project_id\"(\n\x12StopMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\"\xc2\x01\n\x13ListMeetingsRequest\x12&\n\x06states\x18\x01 \x03(\x0e\x32\x16.noteflow.MeetingState\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\x12\'\n\nsort_order\x18\x04 \x01(\x0e\x32\x13.noteflow.SortOrder\x12\x17\n\nproject_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0bproject_ids\x18\x06 \x03(\tB\r\n\x0b_project_id\"P\n\x14ListMeetingsResponse\x12#\n\x08meetings\x18\x01 \x03(\x0b\x32\x11.noteflow.Meeting\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"Z\n\x11GetMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x18\n\x10include_segments\x18\x02 \x01(\x08\x12\x17\n\x0finclude_summary\x18\x03 \x01(\x08\"*\n\x14\x44\x65leteMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteMeetingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xb9\x01\n\x07Summary\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x19\n\x11\x65xecutive_summary\x18\x02 \x01(\t\x12&\n\nkey_points\x18\x03 \x03(\x0b\x32\x12.noteflow.KeyPoint\x12*\n\x0c\x61\x63tion_items\x18\x04 \x03(\x0b\x32\x14.noteflow.ActionItem\x12\x14\n\x0cgenerated_at\x18\x05 \x01(\x01\x12\x15\n\rmodel_version\x18\x06 \x01(\t\"S\n\x08KeyPoint\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bsegment_ids\x18\x02 \x03(\x05\x12\x12\n\nstart_time\x18\x03 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x01\"y\n\nActionItem\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x10\n\x08\x61ssignee\x18\x02 \x01(\t\x12\x10\n\x08\x64ue_date\x18\x03 \x01(\x01\x12$\n\x08priority\x18\x04 \x01(\x0e\x32\x12.noteflow.Priority\x12\x13\n\x0bsegment_ids\x18\x05 \x03(\x05\"\\\n\x14SummarizationOptions\x12\x0c\n\x04tone\x18\x01 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t\x12\x11\n\tverbosity\x18\x03 \x01(\t\x12\x13\n\x0btemplate_id\x18\x04 \x01(\t\"w\n\x16GenerateSummaryRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x18\n\x10\x66orce_regenerate\x18\x02 \x01(\x08\x12/\n\x07options\x18\x03 \x01(\x0b\x32\x1e.noteflow.SummarizationOptions\"\xe4\x02\n\x1aSummarizationTemplateProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cworkspace_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tis_system\x18\x05 \x01(\x08\x12\x13\n\x0bis_archived\x18\x06 \x01(\x08\x12\x1f\n\x12\x63urrent_version_id\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\x08 \x01(\x03\x12\x12\n\nupdated_at\x18\t \x01(\x03\x12\x17\n\ncreated_by\x18\n \x01(\tH\x03\x88\x01\x01\x12\x17\n\nupdated_by\x18\x0b \x01(\tH\x04\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0e\n\x0c_descriptionB\x15\n\x13_current_version_idB\r\n\x0b_created_byB\r\n\x0b_updated_by\"\xd3\x01\n!SummarizationTemplateVersionProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0btemplate_id\x18\x02 \x01(\t\x12\x16\n\x0eversion_number\x18\x03 \x01(\x05\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\t\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x06 \x01(\x03\x12\x17\n\ncreated_by\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_change_noteB\r\n\x0b_created_by\"\x8a\x01\n!ListSummarizationTemplatesRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x16\n\x0einclude_system\x18\x02 \x01(\x08\x12\x18\n\x10include_archived\x18\x03 \x01(\x08\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x05\"r\n\"ListSummarizationTemplatesResponse\x12\x37\n\ttemplates\x18\x01 \x03(\x0b\x32$.noteflow.SummarizationTemplateProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"W\n\x1fGetSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x1f\n\x17include_current_version\x18\x02 \x01(\x08\"\xb9\x01\n GetSummarizationTemplateResponse\x12\x36\n\x08template\x18\x01 \x01(\x0b\x32$.noteflow.SummarizationTemplateProto\x12I\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32+.noteflow.SummarizationTemplateVersionProtoH\x00\x88\x01\x01\x42\x12\n\x10_current_version\"\xae\x01\n%SummarizationTemplateMutationResponse\x12\x36\n\x08template\x18\x01 \x01(\x0b\x32$.noteflow.SummarizationTemplateProto\x12\x41\n\x07version\x18\x02 \x01(\x0b\x32+.noteflow.SummarizationTemplateVersionProtoH\x00\x88\x01\x01\x42\n\n\x08_version\"\xad\x01\n\"CreateSummarizationTemplateRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\t\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_change_note\"\xcb\x01\n\"UpdateSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\n\n\x08_contentB\x0e\n\x0c_change_note\":\n#ArchiveSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"^\n(ListSummarizationTemplateVersionsRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"\x7f\n)ListSummarizationTemplateVersionsResponse\x12=\n\x08versions\x18\x01 \x03(\x0b\x32+.noteflow.SummarizationTemplateVersionProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"U\n*RestoreSummarizationTemplateVersionRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x12\n\nversion_id\x18\x02 \x01(\t\"\x13\n\x11ServerInfoRequest\"\xfb\x01\n\nServerInfo\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x11\n\tasr_model\x18\x02 \x01(\t\x12\x11\n\tasr_ready\x18\x03 \x01(\x08\x12\x1e\n\x16supported_sample_rates\x18\x04 \x03(\x05\x12\x16\n\x0emax_chunk_size\x18\x05 \x01(\x05\x12\x16\n\x0euptime_seconds\x18\x06 \x01(\x01\x12\x17\n\x0f\x61\x63tive_meetings\x18\x07 \x01(\x05\x12\x1b\n\x13\x64iarization_enabled\x18\x08 \x01(\x08\x12\x19\n\x11\x64iarization_ready\x18\t \x01(\x08\x12\x15\n\rstate_version\x18\n \x01(\x03\"\xff\x01\n\x10\x41srConfiguration\x12\x12\n\nmodel_size\x18\x01 \x01(\t\x12#\n\x06\x64\x65vice\x18\x02 \x01(\x0e\x32\x13.noteflow.AsrDevice\x12.\n\x0c\x63ompute_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AsrComputeType\x12\x10\n\x08is_ready\x18\x04 \x01(\x08\x12\x16\n\x0e\x63uda_available\x18\x05 \x01(\x08\x12\x1d\n\x15\x61vailable_model_sizes\x18\x06 \x03(\t\x12\x39\n\x17\x61vailable_compute_types\x18\x07 \x03(\x0e\x32\x18.noteflow.AsrComputeType\"\x1c\n\x1aGetAsrConfigurationRequest\"P\n\x1bGetAsrConfigurationResponse\x12\x31\n\rconfiguration\x18\x01 \x01(\x0b\x32\x1a.noteflow.AsrConfiguration\"\xc2\x01\n\x1dUpdateAsrConfigurationRequest\x12\x17\n\nmodel_size\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x06\x64\x65vice\x18\x02 \x01(\x0e\x32\x13.noteflow.AsrDeviceH\x01\x88\x01\x01\x12\x33\n\x0c\x63ompute_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AsrComputeTypeH\x02\x88\x01\x01\x42\r\n\x0b_model_sizeB\t\n\x07_deviceB\x0f\n\r_compute_type\"~\n\x1eUpdateAsrConfigurationResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x04 \x01(\x08\"5\n#GetAsrConfigurationJobStatusRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\xe2\x01\n\x19\x41srConfigurationJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x18\n\x10progress_percent\x18\x03 \x01(\x02\x12\r\n\x05phase\x18\x04 \x01(\t\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12:\n\x11new_configuration\x18\x06 \x01(\x0b\x32\x1a.noteflow.AsrConfigurationH\x00\x88\x01\x01\x42\x14\n\x12_new_configuration\"\xbc\x01\n\nAnnotation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nmeeting_id\x18\x02 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x12\n\nstart_time\x18\x05 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x06 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x07 \x03(\x05\x12\x12\n\ncreated_at\x18\x08 \x01(\x01\"\xa6\x01\n\x14\x41\x64\x64\x41nnotationRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x12\n\nstart_time\x18\x04 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x05 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x06 \x03(\x05\"-\n\x14GetAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\"R\n\x16ListAnnotationsRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x12\n\nstart_time\x18\x02 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x03 \x01(\x01\"D\n\x17ListAnnotationsResponse\x12)\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x14.noteflow.Annotation\"\xac\x01\n\x17UpdateAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x12\n\nstart_time\x18\x04 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x05 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x06 \x03(\x05\"0\n\x17\x44\x65leteAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\"+\n\x18\x44\x65leteAnnotationResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\x86\x01\n\x13ProcessingStepState\x12.\n\x06status\x18\x01 \x01(\x0e\x32\x1e.noteflow.ProcessingStepStatus\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x01\x12\x14\n\x0c\x63ompleted_at\x18\x04 \x01(\x01\"\xa7\x01\n\x10ProcessingStatus\x12.\n\x07summary\x18\x01 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\x12/\n\x08\x65ntities\x18\x02 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\x12\x32\n\x0b\x64iarization\x18\x03 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\"U\n\x17\x45xportTranscriptRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12&\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x16.noteflow.ExportFormat\"X\n\x18\x45xportTranscriptResponse\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x13\n\x0b\x66ormat_name\x18\x02 \x01(\t\x12\x16\n\x0e\x66ile_extension\x18\x03 \x01(\t\"K\n\x1fRefineSpeakerDiarizationRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x14\n\x0cnum_speakers\x18\x02 \x01(\x05\"\x9d\x01\n RefineSpeakerDiarizationResponse\x12\x18\n\x10segments_updated\x18\x01 \x01(\x05\x12\x13\n\x0bspeaker_ids\x18\x02 \x03(\t\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12#\n\x06status\x18\x05 \x01(\x0e\x32\x13.noteflow.JobStatus\"\\\n\x14RenameSpeakerRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x16\n\x0eold_speaker_id\x18\x02 \x01(\t\x12\x18\n\x10new_speaker_name\x18\x03 \x01(\t\"B\n\x15RenameSpeakerResponse\x12\x18\n\x10segments_updated\x18\x01 \x01(\x05\x12\x0f\n\x07success\x18\x02 \x01(\x08\"0\n\x1eGetDiarizationJobStatusRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\xab\x01\n\x14\x44iarizationJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x18\n\x10segments_updated\x18\x03 \x01(\x05\x12\x13\n\x0bspeaker_ids\x18\x04 \x03(\t\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x18\n\x10progress_percent\x18\x06 \x01(\x02\"-\n\x1b\x43\x61ncelDiarizationJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"k\n\x1c\x43\x61ncelDiarizationJobResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12#\n\x06status\x18\x03 \x01(\x0e\x32\x13.noteflow.JobStatus\"!\n\x1fGetActiveDiarizationJobsRequest\"P\n GetActiveDiarizationJobsResponse\x12,\n\x04jobs\x18\x01 \x03(\x0b\x32\x1e.noteflow.DiarizationJobStatus\"C\n\x16\x45xtractEntitiesRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x15\n\rforce_refresh\x18\x02 \x01(\x08\"y\n\x0f\x45xtractedEntity\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x03 \x01(\t\x12\x13\n\x0bsegment_ids\x18\x04 \x03(\x05\x12\x12\n\nconfidence\x18\x05 \x01(\x02\x12\x11\n\tis_pinned\x18\x06 \x01(\x08\"k\n\x17\x45xtractEntitiesResponse\x12+\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x19.noteflow.ExtractedEntity\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x0e\n\x06\x63\x61\x63hed\x18\x03 \x01(\x08\"\\\n\x13UpdateEntityRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x11\n\tentity_id\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x04 \x01(\t\"A\n\x14UpdateEntityResponse\x12)\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x19.noteflow.ExtractedEntity\"<\n\x13\x44\x65leteEntityRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x11\n\tentity_id\x18\x02 \x01(\t\"\'\n\x14\x44\x65leteEntityResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xc7\x01\n\rCalendarEvent\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x03\x12\x11\n\tattendees\x18\x05 \x03(\t\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x13\n\x0bmeeting_url\x18\x08 \x01(\t\x12\x14\n\x0cis_recurring\x18\t \x01(\x08\x12\x10\n\x08provider\x18\n \x01(\t\"Q\n\x19ListCalendarEventsRequest\x12\x13\n\x0bhours_ahead\x18\x01 \x01(\x05\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x10\n\x08provider\x18\x03 \x01(\t\"Z\n\x1aListCalendarEventsResponse\x12\'\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x17.noteflow.CalendarEvent\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x1d\n\x1bGetCalendarProvidersRequest\"P\n\x10\x43\x61lendarProvider\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10is_authenticated\x18\x02 \x01(\x08\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\"M\n\x1cGetCalendarProvidersResponse\x12-\n\tproviders\x18\x01 \x03(\x0b\x32\x1a.noteflow.CalendarProvider\"X\n\x14InitiateOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\x12\x18\n\x10integration_type\x18\x03 \x01(\t\"8\n\x15InitiateOAuthResponse\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"E\n\x14\x43ompleteOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\t\"o\n\x15\x43ompleteOAuthResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x16\n\x0eprovider_email\x18\x03 \x01(\t\x12\x16\n\x0eintegration_id\x18\x04 \x01(\t\"\x87\x01\n\x0fOAuthConnection\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x18\n\x10integration_type\x18\x06 \x01(\t\"M\n\x1fGetOAuthConnectionStatusRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x18\n\x10integration_type\x18\x02 \x01(\t\"Q\n GetOAuthConnectionStatusResponse\x12-\n\nconnection\x18\x01 \x01(\x0b\x32\x19.noteflow.OAuthConnection\"D\n\x16\x44isconnectOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x18\n\x10integration_type\x18\x02 \x01(\t\"A\n\x17\x44isconnectOAuthResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"\x92\x01\n\x16RegisterWebhookRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x65vents\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06secret\x18\x05 \x01(\t\x12\x12\n\ntimeout_ms\x18\x06 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x07 \x01(\x05\"\xc3\x01\n\x12WebhookConfigProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x0e\n\x06\x65vents\x18\x05 \x03(\t\x12\x0f\n\x07\x65nabled\x18\x06 \x01(\x08\x12\x12\n\ntimeout_ms\x18\x07 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x08 \x01(\x05\x12\x12\n\ncreated_at\x18\t \x01(\x03\x12\x12\n\nupdated_at\x18\n \x01(\x03\"+\n\x13ListWebhooksRequest\x12\x14\n\x0c\x65nabled_only\x18\x01 \x01(\x08\"[\n\x14ListWebhooksResponse\x12.\n\x08webhooks\x18\x01 \x03(\x0b\x32\x1c.noteflow.WebhookConfigProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x84\x02\n\x14UpdateWebhookRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06\x65vents\x18\x03 \x03(\t\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06secret\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x08 \x01(\x05H\x05\x88\x01\x01\x42\x06\n\x04_urlB\x07\n\x05_nameB\t\n\x07_secretB\n\n\x08_enabledB\r\n\x0b_timeout_msB\x0e\n\x0c_max_retries\"*\n\x14\x44\x65leteWebhookRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteWebhookResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xcb\x01\n\x14WebhookDeliveryProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nwebhook_id\x18\x02 \x01(\t\x12\x12\n\nevent_type\x18\x03 \x01(\t\x12\x13\n\x0bstatus_code\x18\x04 \x01(\x05\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x15\n\rattempt_count\x18\x06 \x01(\x05\x12\x13\n\x0b\x64uration_ms\x18\x07 \x01(\x05\x12\x14\n\x0c\x64\x65livered_at\x18\x08 \x01(\x03\x12\x11\n\tsucceeded\x18\t \x01(\x08\"@\n\x1bGetWebhookDeliveriesRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"g\n\x1cGetWebhookDeliveriesResponse\x12\x32\n\ndeliveries\x18\x01 \x03(\x0b\x32\x1e.noteflow.WebhookDeliveryProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x1a\n\x18GrantCloudConsentRequest\"\x1b\n\x19GrantCloudConsentResponse\"\x1b\n\x19RevokeCloudConsentRequest\"\x1c\n\x1aRevokeCloudConsentResponse\"\x1e\n\x1cGetCloudConsentStatusRequest\"8\n\x1dGetCloudConsentStatusResponse\x12\x17\n\x0f\x63onsent_granted\x18\x01 \x01(\x08\"=\n\x1aSetHuggingFaceTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x10\n\x08validate\x18\x02 \x01(\x08\"x\n\x1bSetHuggingFaceTokenResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x12\n\x05valid\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x10validation_error\x18\x03 \x01(\t\x12\x10\n\x08username\x18\x04 \x01(\tB\x08\n\x06_valid\"\"\n GetHuggingFaceTokenStatusRequest\"x\n!GetHuggingFaceTokenStatusResponse\x12\x15\n\ris_configured\x18\x01 \x01(\x08\x12\x14\n\x0cis_validated\x18\x02 \x01(\x08\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x14\n\x0cvalidated_at\x18\x04 \x01(\x01\"\x1f\n\x1d\x44\x65leteHuggingFaceTokenRequest\"1\n\x1e\x44\x65leteHuggingFaceTokenResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"!\n\x1fValidateHuggingFaceTokenRequest\"Z\n ValidateHuggingFaceTokenResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rerror_message\x18\x03 \x01(\t\"%\n\x15GetPreferencesRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\xb6\x01\n\x16GetPreferencesResponse\x12\x46\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x31.noteflow.GetPreferencesResponse.PreferencesEntry\x12\x12\n\nupdated_at\x18\x02 \x01(\x01\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x1a\x32\n\x10PreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xce\x01\n\x15SetPreferencesRequest\x12\x45\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x30.noteflow.SetPreferencesRequest.PreferencesEntry\x12\x10\n\x08if_match\x18\x02 \x01(\t\x12\x19\n\x11\x63lient_updated_at\x18\x03 \x01(\x01\x12\r\n\x05merge\x18\x04 \x01(\x08\x1a\x32\n\x10PreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x02\n\x16SetPreferencesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x10\n\x08\x63onflict\x18\x02 \x01(\x08\x12S\n\x12server_preferences\x18\x03 \x03(\x0b\x32\x37.noteflow.SetPreferencesResponse.ServerPreferencesEntry\x12\x19\n\x11server_updated_at\x18\x04 \x01(\x01\x12\x0c\n\x04\x65tag\x18\x05 \x01(\t\x12\x18\n\x10\x63onflict_message\x18\x06 \x01(\t\x1a\x38\n\x16ServerPreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x1bStartIntegrationSyncRequest\x12\x16\n\x0eintegration_id\x18\x01 \x01(\t\"C\n\x1cStartIntegrationSyncResponse\x12\x13\n\x0bsync_run_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"+\n\x14GetSyncStatusRequest\x12\x13\n\x0bsync_run_id\x18\x01 \x01(\t\"\xda\x01\n\x15GetSyncStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x14\n\x0citems_synced\x18\x02 \x01(\x05\x12\x13\n\x0bitems_total\x18\x03 \x01(\x05\x12\x15\n\rerror_message\x18\x04 \x01(\t\x12\x13\n\x0b\x64uration_ms\x18\x05 \x01(\x03\x12\x17\n\nexpires_at\x18\n \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10not_found_reason\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_expires_atB\x13\n\x11_not_found_reason\"O\n\x16ListSyncHistoryRequest\x12\x16\n\x0eintegration_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"T\n\x17ListSyncHistoryResponse\x12$\n\x04runs\x18\x01 \x03(\x0b\x32\x16.noteflow.SyncRunProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xae\x01\n\x0cSyncRunProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0eintegration_id\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x14\n\x0citems_synced\x18\x04 \x01(\x05\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x13\n\x0b\x64uration_ms\x18\x06 \x01(\x03\x12\x12\n\nstarted_at\x18\x07 \x01(\t\x12\x14\n\x0c\x63ompleted_at\x18\x08 \x01(\t\"\x1c\n\x1aGetUserIntegrationsRequest\"_\n\x0fIntegrationInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x05 \x01(\t\"N\n\x1bGetUserIntegrationsResponse\x12/\n\x0cintegrations\x18\x01 \x03(\x0b\x32\x19.noteflow.IntegrationInfo\"D\n\x14GetRecentLogsRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\r\n\x05level\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\">\n\x15GetRecentLogsResponse\x12%\n\x04logs\x18\x01 \x03(\x0b\x32\x17.noteflow.LogEntryProto\"\x99\x02\n\rLogEntryProto\x12\x11\n\ttimestamp\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x35\n\x07\x64\x65tails\x18\x05 \x03(\x0b\x32$.noteflow.LogEntryProto.DetailsEntry\x12\x10\n\x08trace_id\x18\x06 \x01(\t\x12\x0f\n\x07span_id\x18\x07 \x01(\t\x12\x12\n\nevent_type\x18\x08 \x01(\t\x12\x14\n\x0coperation_id\x18\t \x01(\t\x12\x11\n\tentity_id\x18\n \x01(\t\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x1cGetPerformanceMetricsRequest\x12\x15\n\rhistory_limit\x18\x01 \x01(\x05\"\x87\x01\n\x1dGetPerformanceMetricsResponse\x12\x32\n\x07\x63urrent\x18\x01 \x01(\x0b\x32!.noteflow.PerformanceMetricsPoint\x12\x32\n\x07history\x18\x02 \x03(\x0b\x32!.noteflow.PerformanceMetricsPoint\"\xf1\x01\n\x17PerformanceMetricsPoint\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12\x13\n\x0b\x63pu_percent\x18\x02 \x01(\x01\x12\x16\n\x0ememory_percent\x18\x03 \x01(\x01\x12\x11\n\tmemory_mb\x18\x04 \x01(\x01\x12\x14\n\x0c\x64isk_percent\x18\x05 \x01(\x01\x12\x1a\n\x12network_bytes_sent\x18\x06 \x01(\x03\x12\x1a\n\x12network_bytes_recv\x18\x07 \x01(\x03\x12\x19\n\x11process_memory_mb\x18\x08 \x01(\x01\x12\x1a\n\x12\x61\x63tive_connections\x18\t \x01(\x05\"\xd0\x02\n\x11\x43laimMappingProto\x12\x15\n\rsubject_claim\x18\x01 \x01(\t\x12\x13\n\x0b\x65mail_claim\x18\x02 \x01(\t\x12\x1c\n\x14\x65mail_verified_claim\x18\x03 \x01(\t\x12\x12\n\nname_claim\x18\x04 \x01(\t\x12 \n\x18preferred_username_claim\x18\x05 \x01(\t\x12\x14\n\x0cgroups_claim\x18\x06 \x01(\t\x12\x15\n\rpicture_claim\x18\x07 \x01(\t\x12\x1d\n\x10\x66irst_name_claim\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0flast_name_claim\x18\t \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bphone_claim\x18\n \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_first_name_claimB\x12\n\x10_last_name_claimB\x0e\n\x0c_phone_claim\"\xf7\x02\n\x12OidcDiscoveryProto\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x1e\n\x16\x61uthorization_endpoint\x18\x02 \x01(\t\x12\x16\n\x0etoken_endpoint\x18\x03 \x01(\t\x12\x1e\n\x11userinfo_endpoint\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08jwks_uri\x18\x05 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x65nd_session_endpoint\x18\x06 \x01(\tH\x02\x88\x01\x01\x12 \n\x13revocation_endpoint\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x10scopes_supported\x18\x08 \x03(\t\x12\x18\n\x10\x63laims_supported\x18\t \x03(\t\x12\x15\n\rsupports_pkce\x18\n \x01(\x08\x42\x14\n\x12_userinfo_endpointB\x0b\n\t_jwks_uriB\x17\n\x15_end_session_endpointB\x16\n\x14_revocation_endpoint\"\xc5\x03\n\x11OidcProviderProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06preset\x18\x04 \x01(\t\x12\x12\n\nissuer_url\x18\x05 \x01(\t\x12\x11\n\tclient_id\x18\x06 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12\x34\n\tdiscovery\x18\x08 \x01(\x0b\x32\x1c.noteflow.OidcDiscoveryProtoH\x00\x88\x01\x01\x12\x32\n\rclaim_mapping\x18\t \x01(\x0b\x32\x1b.noteflow.ClaimMappingProto\x12\x0e\n\x06scopes\x18\n \x03(\t\x12\x1e\n\x16require_email_verified\x18\x0b \x01(\x08\x12\x16\n\x0e\x61llowed_groups\x18\x0c \x03(\t\x12\x12\n\ncreated_at\x18\r \x01(\x03\x12\x12\n\nupdated_at\x18\x0e \x01(\x03\x12#\n\x16\x64iscovery_refreshed_at\x18\x0f \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x08warnings\x18\x10 \x03(\tB\x0c\n\n_discoveryB\x19\n\x17_discovery_refreshed_at\"\xf0\x02\n\x1bRegisterOidcProviderRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nissuer_url\x18\x03 \x01(\t\x12\x11\n\tclient_id\x18\x04 \x01(\t\x12\x1a\n\rclient_secret\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06preset\x18\x06 \x01(\t\x12\x0e\n\x06scopes\x18\x07 \x03(\t\x12\x37\n\rclaim_mapping\x18\x08 \x01(\x0b\x32\x1b.noteflow.ClaimMappingProtoH\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_groups\x18\t \x03(\t\x12#\n\x16require_email_verified\x18\n \x01(\x08H\x02\x88\x01\x01\x12\x15\n\rauto_discover\x18\x0b \x01(\x08\x42\x10\n\x0e_client_secretB\x10\n\x0e_claim_mappingB\x19\n\x17_require_email_verified\"\\\n\x18ListOidcProvidersRequest\x12\x19\n\x0cworkspace_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0c\x65nabled_only\x18\x02 \x01(\x08\x42\x0f\n\r_workspace_id\"`\n\x19ListOidcProvidersResponse\x12.\n\tproviders\x18\x01 \x03(\x0b\x32\x1b.noteflow.OidcProviderProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"-\n\x16GetOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\"\xa1\x02\n\x19UpdateOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06scopes\x18\x03 \x03(\t\x12\x37\n\rclaim_mapping\x18\x04 \x01(\x0b\x32\x1b.noteflow.ClaimMappingProtoH\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_groups\x18\x05 \x03(\t\x12#\n\x16require_email_verified\x18\x06 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x07 \x01(\x08H\x03\x88\x01\x01\x42\x07\n\x05_nameB\x10\n\x0e_claim_mappingB\x19\n\x17_require_email_verifiedB\n\n\x08_enabled\"0\n\x19\x44\x65leteOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\"-\n\x1a\x44\x65leteOidcProviderResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"s\n\x1bRefreshOidcDiscoveryRequest\x12\x18\n\x0bprovider_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cworkspace_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_provider_idB\x0f\n\r_workspace_id\"\xc2\x01\n\x1cRefreshOidcDiscoveryResponse\x12\x44\n\x07results\x18\x01 \x03(\x0b\x32\x33.noteflow.RefreshOidcDiscoveryResponse.ResultsEntry\x12\x15\n\rsuccess_count\x18\x02 \x01(\x05\x12\x15\n\rfailure_count\x18\x03 \x01(\x05\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16ListOidcPresetsRequest\"\xb8\x01\n\x0fOidcPresetProto\x12\x0e\n\x06preset\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ult_scopes\x18\x04 \x03(\t\x12\x1e\n\x11\x64ocumentation_url\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05notes\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_documentation_urlB\x08\n\x06_notes\"E\n\x17ListOidcPresetsResponse\x12*\n\x07presets\x18\x01 \x03(\x0b\x32\x19.noteflow.OidcPresetProto\"\xea\x01\n\x10\x45xportRulesProto\x12\x33\n\x0e\x64\x65\x66\x61ult_format\x18\x01 \x01(\x0e\x32\x16.noteflow.ExportFormatH\x00\x88\x01\x01\x12\x1a\n\rinclude_audio\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1f\n\x12include_timestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x18\n\x0btemplate_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x11\n\x0f_default_formatB\x10\n\x0e_include_audioB\x15\n\x13_include_timestampsB\x0e\n\x0c_template_id\"\x88\x01\n\x11TriggerRulesProto\x12\x1f\n\x12\x61uto_start_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x17\x63\x61lendar_match_patterns\x18\x02 \x03(\t\x12\x1a\n\x12\x61pp_match_patterns\x18\x03 \x03(\tB\x15\n\x13_auto_start_enabled\"\xa5\x02\n\x16WorkspaceSettingsProto\x12\x35\n\x0c\x65xport_rules\x18\x01 \x01(\x0b\x32\x1a.noteflow.ExportRulesProtoH\x00\x88\x01\x01\x12\x37\n\rtrigger_rules\x18\x02 \x01(\x0b\x32\x1b.noteflow.TriggerRulesProtoH\x01\x88\x01\x01\x12\x18\n\x0brag_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12+\n\x1e\x64\x65\x66\x61ult_summarization_template\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0f\n\r_export_rulesB\x10\n\x0e_trigger_rulesB\x0e\n\x0c_rag_enabledB!\n\x1f_default_summarization_template\"\xa3\x02\n\x14ProjectSettingsProto\x12\x35\n\x0c\x65xport_rules\x18\x01 \x01(\x0b\x32\x1a.noteflow.ExportRulesProtoH\x00\x88\x01\x01\x12\x37\n\rtrigger_rules\x18\x02 \x01(\x0b\x32\x1b.noteflow.TriggerRulesProtoH\x01\x88\x01\x01\x12\x18\n\x0brag_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12+\n\x1e\x64\x65\x66\x61ult_summarization_template\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0f\n\r_export_rulesB\x10\n\x0e_trigger_rulesB\x0e\n\x0c_rag_enabledB!\n\x1f_default_summarization_template\"\xc3\x02\n\x0cProjectProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x11\n\x04slug\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nis_default\x18\x06 \x01(\x08\x12\x13\n\x0bis_archived\x18\x07 \x01(\x08\x12\x35\n\x08settings\x18\x08 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\t \x01(\x03\x12\x12\n\nupdated_at\x18\n \x01(\x03\x12\x18\n\x0b\x61rchived_at\x18\x0b \x01(\x03H\x03\x88\x01\x01\x42\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settingsB\x0e\n\x0c_archived_at\"z\n\x16ProjectMembershipProto\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\x12\x11\n\tjoined_at\x18\x04 \x01(\x03\"\xc4\x01\n\x14\x43reateProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\x04slug\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x08settings\x18\x05 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x02\x88\x01\x01\x42\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settings\"\'\n\x11GetProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"=\n\x17GetProjectBySlugRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04slug\x18\x02 \x01(\t\"d\n\x13ListProjectsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x18\n\x10include_archived\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\"U\n\x14ListProjectsResponse\x12(\n\x08projects\x18\x01 \x03(\x0b\x32\x16.noteflow.ProjectProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xd0\x01\n\x14UpdateProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04slug\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x08settings\x18\x05 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settings\"+\n\x15\x41rchiveProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"+\n\x15RestoreProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"*\n\x14\x44\x65leteProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteProjectResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"C\n\x17SetActiveProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\"\x1a\n\x18SetActiveProjectResponse\"/\n\x17GetActiveProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"k\n\x18GetActiveProjectResponse\x12\x17\n\nproject_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x07project\x18\x02 \x01(\x0b\x32\x16.noteflow.ProjectProtoB\r\n\x0b_project_id\"h\n\x17\x41\x64\x64ProjectMemberRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\"o\n\x1eUpdateProjectMemberRoleRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\"A\n\x1aRemoveProjectMemberRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\".\n\x1bRemoveProjectMemberResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"N\n\x19ListProjectMembersRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"d\n\x1aListProjectMembersResponse\x12\x31\n\x07members\x18\x01 \x03(\x0b\x32 .noteflow.ProjectMembershipProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x17\n\x15GetCurrentUserRequest\"\xbb\x01\n\x16GetCurrentUserResponse\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x18\n\x10is_authenticated\x18\x05 \x01(\x08\x12\x15\n\rauth_provider\x18\x06 \x01(\t\x12\x16\n\x0eworkspace_name\x18\x07 \x01(\t\x12\x0c\n\x04role\x18\x08 \x01(\t\"Z\n\x0eWorkspaceProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04slug\x18\x03 \x01(\t\x12\x12\n\nis_default\x18\x04 \x01(\x08\x12\x0c\n\x04role\x18\x05 \x01(\t\"6\n\x15ListWorkspacesRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\x0e\n\x06offset\x18\x02 \x01(\x05\"[\n\x16ListWorkspacesResponse\x12,\n\nworkspaces\x18\x01 \x03(\x0b\x32\x18.noteflow.WorkspaceProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\".\n\x16SwitchWorkspaceRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"n\n\x17SwitchWorkspaceResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12+\n\tworkspace\x18\x02 \x01(\x0b\x32\x18.noteflow.WorkspaceProto\x12\x15\n\rerror_message\x18\x03 \x01(\t\"3\n\x1bGetWorkspaceSettingsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"j\n\x1eUpdateWorkspaceSettingsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x32\n\x08settings\x18\x02 \x01(\x0b\x32 .noteflow.WorkspaceSettingsProto*\x8d\x01\n\nUpdateType\x12\x1b\n\x17UPDATE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13UPDATE_TYPE_PARTIAL\x10\x01\x12\x15\n\x11UPDATE_TYPE_FINAL\x10\x02\x12\x19\n\x15UPDATE_TYPE_VAD_START\x10\x03\x12\x17\n\x13UPDATE_TYPE_VAD_END\x10\x04*\xb6\x01\n\x0cMeetingState\x12\x1d\n\x19MEETING_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15MEETING_STATE_CREATED\x10\x01\x12\x1b\n\x17MEETING_STATE_RECORDING\x10\x02\x12\x19\n\x15MEETING_STATE_STOPPED\x10\x03\x12\x1b\n\x17MEETING_STATE_COMPLETED\x10\x04\x12\x17\n\x13MEETING_STATE_ERROR\x10\x05*`\n\tSortOrder\x12\x1a\n\x16SORT_ORDER_UNSPECIFIED\x10\x00\x12\x1b\n\x17SORT_ORDER_CREATED_DESC\x10\x01\x12\x1a\n\x16SORT_ORDER_CREATED_ASC\x10\x02*^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03*P\n\tAsrDevice\x12\x1a\n\x16\x41SR_DEVICE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x41SR_DEVICE_CPU\x10\x01\x12\x13\n\x0f\x41SR_DEVICE_CUDA\x10\x02*\x89\x01\n\x0e\x41srComputeType\x12 \n\x1c\x41SR_COMPUTE_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41SR_COMPUTE_TYPE_INT8\x10\x01\x12\x1c\n\x18\x41SR_COMPUTE_TYPE_FLOAT16\x10\x02\x12\x1c\n\x18\x41SR_COMPUTE_TYPE_FLOAT32\x10\x03*\xa4\x01\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_ACTION_ITEM\x10\x01\x12\x1c\n\x18\x41NNOTATION_TYPE_DECISION\x10\x02\x12\x18\n\x14\x41NNOTATION_TYPE_NOTE\x10\x03\x12\x18\n\x14\x41NNOTATION_TYPE_RISK\x10\x04*x\n\x0c\x45xportFormat\x12\x1d\n\x19\x45XPORT_FORMAT_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XPORT_FORMAT_MARKDOWN\x10\x01\x12\x16\n\x12\x45XPORT_FORMAT_HTML\x10\x02\x12\x15\n\x11\x45XPORT_FORMAT_PDF\x10\x03*\xa1\x01\n\tJobStatus\x12\x1a\n\x16JOB_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11JOB_STATUS_QUEUED\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x18\n\x14JOB_STATUS_COMPLETED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_CANCELLED\x10\x05*\xc9\x01\n\x14ProcessingStepStatus\x12\x1f\n\x1bPROCESSING_STEP_UNSPECIFIED\x10\x00\x12\x1b\n\x17PROCESSING_STEP_PENDING\x10\x01\x12\x1b\n\x17PROCESSING_STEP_RUNNING\x10\x02\x12\x1d\n\x19PROCESSING_STEP_COMPLETED\x10\x03\x12\x1a\n\x16PROCESSING_STEP_FAILED\x10\x04\x12\x1b\n\x17PROCESSING_STEP_SKIPPED\x10\x05*z\n\x10ProjectRoleProto\x12\x1c\n\x18PROJECT_ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x13PROJECT_ROLE_VIEWER\x10\x01\x12\x17\n\x13PROJECT_ROLE_EDITOR\x10\x02\x12\x16\n\x12PROJECT_ROLE_ADMIN\x10\x03\x32\xe8<\n\x0fNoteFlowService\x12K\n\x13StreamTranscription\x12\x14.noteflow.AudioChunk\x1a\x1a.noteflow.TranscriptUpdate(\x01\x30\x01\x12\x42\n\rCreateMeeting\x12\x1e.noteflow.CreateMeetingRequest\x1a\x11.noteflow.Meeting\x12>\n\x0bStopMeeting\x12\x1c.noteflow.StopMeetingRequest\x1a\x11.noteflow.Meeting\x12M\n\x0cListMeetings\x12\x1d.noteflow.ListMeetingsRequest\x1a\x1e.noteflow.ListMeetingsResponse\x12<\n\nGetMeeting\x12\x1b.noteflow.GetMeetingRequest\x1a\x11.noteflow.Meeting\x12P\n\rDeleteMeeting\x12\x1e.noteflow.DeleteMeetingRequest\x1a\x1f.noteflow.DeleteMeetingResponse\x12\x46\n\x0fGenerateSummary\x12 .noteflow.GenerateSummaryRequest\x1a\x11.noteflow.Summary\x12w\n\x1aListSummarizationTemplates\x12+.noteflow.ListSummarizationTemplatesRequest\x1a,.noteflow.ListSummarizationTemplatesResponse\x12q\n\x18GetSummarizationTemplate\x12).noteflow.GetSummarizationTemplateRequest\x1a*.noteflow.GetSummarizationTemplateResponse\x12|\n\x1b\x43reateSummarizationTemplate\x12,.noteflow.CreateSummarizationTemplateRequest\x1a/.noteflow.SummarizationTemplateMutationResponse\x12|\n\x1bUpdateSummarizationTemplate\x12,.noteflow.UpdateSummarizationTemplateRequest\x1a/.noteflow.SummarizationTemplateMutationResponse\x12s\n\x1c\x41rchiveSummarizationTemplate\x12-.noteflow.ArchiveSummarizationTemplateRequest\x1a$.noteflow.SummarizationTemplateProto\x12\x8c\x01\n!ListSummarizationTemplateVersions\x12\x32.noteflow.ListSummarizationTemplateVersionsRequest\x1a\x33.noteflow.ListSummarizationTemplateVersionsResponse\x12\x81\x01\n#RestoreSummarizationTemplateVersion\x12\x34.noteflow.RestoreSummarizationTemplateVersionRequest\x1a$.noteflow.SummarizationTemplateProto\x12\x45\n\rAddAnnotation\x12\x1e.noteflow.AddAnnotationRequest\x1a\x14.noteflow.Annotation\x12\x45\n\rGetAnnotation\x12\x1e.noteflow.GetAnnotationRequest\x1a\x14.noteflow.Annotation\x12V\n\x0fListAnnotations\x12 .noteflow.ListAnnotationsRequest\x1a!.noteflow.ListAnnotationsResponse\x12K\n\x10UpdateAnnotation\x12!.noteflow.UpdateAnnotationRequest\x1a\x14.noteflow.Annotation\x12Y\n\x10\x44\x65leteAnnotation\x12!.noteflow.DeleteAnnotationRequest\x1a\".noteflow.DeleteAnnotationResponse\x12Y\n\x10\x45xportTranscript\x12!.noteflow.ExportTranscriptRequest\x1a\".noteflow.ExportTranscriptResponse\x12q\n\x18RefineSpeakerDiarization\x12).noteflow.RefineSpeakerDiarizationRequest\x1a*.noteflow.RefineSpeakerDiarizationResponse\x12P\n\rRenameSpeaker\x12\x1e.noteflow.RenameSpeakerRequest\x1a\x1f.noteflow.RenameSpeakerResponse\x12\x63\n\x17GetDiarizationJobStatus\x12(.noteflow.GetDiarizationJobStatusRequest\x1a\x1e.noteflow.DiarizationJobStatus\x12\x65\n\x14\x43\x61ncelDiarizationJob\x12%.noteflow.CancelDiarizationJobRequest\x1a&.noteflow.CancelDiarizationJobResponse\x12q\n\x18GetActiveDiarizationJobs\x12).noteflow.GetActiveDiarizationJobsRequest\x1a*.noteflow.GetActiveDiarizationJobsResponse\x12\x42\n\rGetServerInfo\x12\x1b.noteflow.ServerInfoRequest\x1a\x14.noteflow.ServerInfo\x12\x62\n\x13GetAsrConfiguration\x12$.noteflow.GetAsrConfigurationRequest\x1a%.noteflow.GetAsrConfigurationResponse\x12k\n\x16UpdateAsrConfiguration\x12\'.noteflow.UpdateAsrConfigurationRequest\x1a(.noteflow.UpdateAsrConfigurationResponse\x12r\n\x1cGetAsrConfigurationJobStatus\x12-.noteflow.GetAsrConfigurationJobStatusRequest\x1a#.noteflow.AsrConfigurationJobStatus\x12V\n\x0f\x45xtractEntities\x12 .noteflow.ExtractEntitiesRequest\x1a!.noteflow.ExtractEntitiesResponse\x12M\n\x0cUpdateEntity\x12\x1d.noteflow.UpdateEntityRequest\x1a\x1e.noteflow.UpdateEntityResponse\x12M\n\x0c\x44\x65leteEntity\x12\x1d.noteflow.DeleteEntityRequest\x1a\x1e.noteflow.DeleteEntityResponse\x12_\n\x12ListCalendarEvents\x12#.noteflow.ListCalendarEventsRequest\x1a$.noteflow.ListCalendarEventsResponse\x12\x65\n\x14GetCalendarProviders\x12%.noteflow.GetCalendarProvidersRequest\x1a&.noteflow.GetCalendarProvidersResponse\x12P\n\rInitiateOAuth\x12\x1e.noteflow.InitiateOAuthRequest\x1a\x1f.noteflow.InitiateOAuthResponse\x12P\n\rCompleteOAuth\x12\x1e.noteflow.CompleteOAuthRequest\x1a\x1f.noteflow.CompleteOAuthResponse\x12q\n\x18GetOAuthConnectionStatus\x12).noteflow.GetOAuthConnectionStatusRequest\x1a*.noteflow.GetOAuthConnectionStatusResponse\x12V\n\x0f\x44isconnectOAuth\x12 .noteflow.DisconnectOAuthRequest\x1a!.noteflow.DisconnectOAuthResponse\x12Q\n\x0fRegisterWebhook\x12 .noteflow.RegisterWebhookRequest\x1a\x1c.noteflow.WebhookConfigProto\x12M\n\x0cListWebhooks\x12\x1d.noteflow.ListWebhooksRequest\x1a\x1e.noteflow.ListWebhooksResponse\x12M\n\rUpdateWebhook\x12\x1e.noteflow.UpdateWebhookRequest\x1a\x1c.noteflow.WebhookConfigProto\x12P\n\rDeleteWebhook\x12\x1e.noteflow.DeleteWebhookRequest\x1a\x1f.noteflow.DeleteWebhookResponse\x12\x65\n\x14GetWebhookDeliveries\x12%.noteflow.GetWebhookDeliveriesRequest\x1a&.noteflow.GetWebhookDeliveriesResponse\x12\\\n\x11GrantCloudConsent\x12\".noteflow.GrantCloudConsentRequest\x1a#.noteflow.GrantCloudConsentResponse\x12_\n\x12RevokeCloudConsent\x12#.noteflow.RevokeCloudConsentRequest\x1a$.noteflow.RevokeCloudConsentResponse\x12h\n\x15GetCloudConsentStatus\x12&.noteflow.GetCloudConsentStatusRequest\x1a\'.noteflow.GetCloudConsentStatusResponse\x12\x62\n\x13SetHuggingFaceToken\x12$.noteflow.SetHuggingFaceTokenRequest\x1a%.noteflow.SetHuggingFaceTokenResponse\x12t\n\x19GetHuggingFaceTokenStatus\x12*.noteflow.GetHuggingFaceTokenStatusRequest\x1a+.noteflow.GetHuggingFaceTokenStatusResponse\x12k\n\x16\x44\x65leteHuggingFaceToken\x12\'.noteflow.DeleteHuggingFaceTokenRequest\x1a(.noteflow.DeleteHuggingFaceTokenResponse\x12q\n\x18ValidateHuggingFaceToken\x12).noteflow.ValidateHuggingFaceTokenRequest\x1a*.noteflow.ValidateHuggingFaceTokenResponse\x12S\n\x0eGetPreferences\x12\x1f.noteflow.GetPreferencesRequest\x1a .noteflow.GetPreferencesResponse\x12S\n\x0eSetPreferences\x12\x1f.noteflow.SetPreferencesRequest\x1a .noteflow.SetPreferencesResponse\x12\x65\n\x14StartIntegrationSync\x12%.noteflow.StartIntegrationSyncRequest\x1a&.noteflow.StartIntegrationSyncResponse\x12P\n\rGetSyncStatus\x12\x1e.noteflow.GetSyncStatusRequest\x1a\x1f.noteflow.GetSyncStatusResponse\x12V\n\x0fListSyncHistory\x12 .noteflow.ListSyncHistoryRequest\x1a!.noteflow.ListSyncHistoryResponse\x12\x62\n\x13GetUserIntegrations\x12$.noteflow.GetUserIntegrationsRequest\x1a%.noteflow.GetUserIntegrationsResponse\x12P\n\rGetRecentLogs\x12\x1e.noteflow.GetRecentLogsRequest\x1a\x1f.noteflow.GetRecentLogsResponse\x12h\n\x15GetPerformanceMetrics\x12&.noteflow.GetPerformanceMetricsRequest\x1a\'.noteflow.GetPerformanceMetricsResponse\x12Z\n\x14RegisterOidcProvider\x12%.noteflow.RegisterOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12\\\n\x11ListOidcProviders\x12\".noteflow.ListOidcProvidersRequest\x1a#.noteflow.ListOidcProvidersResponse\x12P\n\x0fGetOidcProvider\x12 .noteflow.GetOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12V\n\x12UpdateOidcProvider\x12#.noteflow.UpdateOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12_\n\x12\x44\x65leteOidcProvider\x12#.noteflow.DeleteOidcProviderRequest\x1a$.noteflow.DeleteOidcProviderResponse\x12\x65\n\x14RefreshOidcDiscovery\x12%.noteflow.RefreshOidcDiscoveryRequest\x1a&.noteflow.RefreshOidcDiscoveryResponse\x12V\n\x0fListOidcPresets\x12 .noteflow.ListOidcPresetsRequest\x1a!.noteflow.ListOidcPresetsResponse\x12G\n\rCreateProject\x12\x1e.noteflow.CreateProjectRequest\x1a\x16.noteflow.ProjectProto\x12\x41\n\nGetProject\x12\x1b.noteflow.GetProjectRequest\x1a\x16.noteflow.ProjectProto\x12M\n\x10GetProjectBySlug\x12!.noteflow.GetProjectBySlugRequest\x1a\x16.noteflow.ProjectProto\x12M\n\x0cListProjects\x12\x1d.noteflow.ListProjectsRequest\x1a\x1e.noteflow.ListProjectsResponse\x12G\n\rUpdateProject\x12\x1e.noteflow.UpdateProjectRequest\x1a\x16.noteflow.ProjectProto\x12I\n\x0e\x41rchiveProject\x12\x1f.noteflow.ArchiveProjectRequest\x1a\x16.noteflow.ProjectProto\x12I\n\x0eRestoreProject\x12\x1f.noteflow.RestoreProjectRequest\x1a\x16.noteflow.ProjectProto\x12P\n\rDeleteProject\x12\x1e.noteflow.DeleteProjectRequest\x1a\x1f.noteflow.DeleteProjectResponse\x12Y\n\x10SetActiveProject\x12!.noteflow.SetActiveProjectRequest\x1a\".noteflow.SetActiveProjectResponse\x12Y\n\x10GetActiveProject\x12!.noteflow.GetActiveProjectRequest\x1a\".noteflow.GetActiveProjectResponse\x12W\n\x10\x41\x64\x64ProjectMember\x12!.noteflow.AddProjectMemberRequest\x1a .noteflow.ProjectMembershipProto\x12\x65\n\x17UpdateProjectMemberRole\x12(.noteflow.UpdateProjectMemberRoleRequest\x1a .noteflow.ProjectMembershipProto\x12\x62\n\x13RemoveProjectMember\x12$.noteflow.RemoveProjectMemberRequest\x1a%.noteflow.RemoveProjectMemberResponse\x12_\n\x12ListProjectMembers\x12#.noteflow.ListProjectMembersRequest\x1a$.noteflow.ListProjectMembersResponse\x12S\n\x0eGetCurrentUser\x12\x1f.noteflow.GetCurrentUserRequest\x1a .noteflow.GetCurrentUserResponse\x12S\n\x0eListWorkspaces\x12\x1f.noteflow.ListWorkspacesRequest\x1a .noteflow.ListWorkspacesResponse\x12V\n\x0fSwitchWorkspace\x12 .noteflow.SwitchWorkspaceRequest\x1a!.noteflow.SwitchWorkspaceResponse\x12_\n\x14GetWorkspaceSettings\x12%.noteflow.GetWorkspaceSettingsRequest\x1a .noteflow.WorkspaceSettingsProto\x12\x65\n\x17UpdateWorkspaceSettings\x12(.noteflow.UpdateWorkspaceSettingsRequest\x1a .noteflow.WorkspaceSettingsProtob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0enoteflow.proto\x12\x08noteflow\"\x86\x01\n\nAudioChunk\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x12\n\naudio_data\x18\x02 \x01(\x0c\x12\x11\n\ttimestamp\x18\x03 \x01(\x01\x12\x13\n\x0bsample_rate\x18\x04 \x01(\x05\x12\x10\n\x08\x63hannels\x18\x05 \x01(\x05\x12\x16\n\x0e\x63hunk_sequence\x18\x06 \x01(\x03\"`\n\x0e\x43ongestionInfo\x12\x1b\n\x13processing_delay_ms\x18\x01 \x01(\x05\x12\x13\n\x0bqueue_depth\x18\x02 \x01(\x05\x12\x1c\n\x14throttle_recommended\x18\x03 \x01(\x08\"\x98\x02\n\x10TranscriptUpdate\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12)\n\x0bupdate_type\x18\x02 \x01(\x0e\x32\x14.noteflow.UpdateType\x12\x14\n\x0cpartial_text\x18\x03 \x01(\t\x12\'\n\x07segment\x18\x04 \x01(\x0b\x32\x16.noteflow.FinalSegment\x12\x18\n\x10server_timestamp\x18\x05 \x01(\x01\x12\x19\n\x0c\x61\x63k_sequence\x18\x06 \x01(\x03H\x00\x88\x01\x01\x12\x31\n\ncongestion\x18\n \x01(\x0b\x32\x18.noteflow.CongestionInfoH\x01\x88\x01\x01\x42\x0f\n\r_ack_sequenceB\r\n\x0b_congestion\"\x87\x02\n\x0c\x46inalSegment\x12\x12\n\nsegment_id\x18\x01 \x01(\x05\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x01\x12#\n\x05words\x18\x05 \x03(\x0b\x32\x14.noteflow.WordTiming\x12\x10\n\x08language\x18\x06 \x01(\t\x12\x1b\n\x13language_confidence\x18\x07 \x01(\x02\x12\x13\n\x0b\x61vg_logprob\x18\x08 \x01(\x02\x12\x16\n\x0eno_speech_prob\x18\t \x01(\x02\x12\x12\n\nspeaker_id\x18\n \x01(\t\x12\x1a\n\x12speaker_confidence\x18\x0b \x01(\x02\"U\n\nWordTiming\x12\x0c\n\x04word\x18\x01 \x01(\t\x12\x12\n\nstart_time\x18\x02 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x03 \x01(\x01\x12\x13\n\x0bprobability\x18\x04 \x01(\x02\"\xb0\x03\n\x07Meeting\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12%\n\x05state\x18\x03 \x01(\x0e\x32\x16.noteflow.MeetingState\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\x12\n\nstarted_at\x18\x05 \x01(\x01\x12\x10\n\x08\x65nded_at\x18\x06 \x01(\x01\x12\x18\n\x10\x64uration_seconds\x18\x07 \x01(\x01\x12(\n\x08segments\x18\x08 \x03(\x0b\x32\x16.noteflow.FinalSegment\x12\"\n\x07summary\x18\t \x01(\x0b\x32\x11.noteflow.Summary\x12\x31\n\x08metadata\x18\n \x03(\x0b\x32\x1f.noteflow.Meeting.MetadataEntry\x12\x17\n\nproject_id\x18\x0b \x01(\tH\x00\x88\x01\x01\x12\x35\n\x11processing_status\x18\x0c \x01(\x0b\x32\x1a.noteflow.ProcessingStatus\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_project_id\"\xbe\x01\n\x14\x43reateMeetingRequest\x12\r\n\x05title\x18\x01 \x01(\t\x12>\n\x08metadata\x18\x02 \x03(\x0b\x32,.noteflow.CreateMeetingRequest.MetadataEntry\x12\x17\n\nproject_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_project_id\"(\n\x12StopMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\"\xc2\x01\n\x13ListMeetingsRequest\x12&\n\x06states\x18\x01 \x03(\x0e\x32\x16.noteflow.MeetingState\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\x12\'\n\nsort_order\x18\x04 \x01(\x0e\x32\x13.noteflow.SortOrder\x12\x17\n\nproject_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0bproject_ids\x18\x06 \x03(\tB\r\n\x0b_project_id\"P\n\x14ListMeetingsResponse\x12#\n\x08meetings\x18\x01 \x03(\x0b\x32\x11.noteflow.Meeting\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"Z\n\x11GetMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x18\n\x10include_segments\x18\x02 \x01(\x08\x12\x17\n\x0finclude_summary\x18\x03 \x01(\x08\"*\n\x14\x44\x65leteMeetingRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteMeetingResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xb9\x01\n\x07Summary\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x19\n\x11\x65xecutive_summary\x18\x02 \x01(\t\x12&\n\nkey_points\x18\x03 \x03(\x0b\x32\x12.noteflow.KeyPoint\x12*\n\x0c\x61\x63tion_items\x18\x04 \x03(\x0b\x32\x14.noteflow.ActionItem\x12\x14\n\x0cgenerated_at\x18\x05 \x01(\x01\x12\x15\n\rmodel_version\x18\x06 \x01(\t\"S\n\x08KeyPoint\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x13\n\x0bsegment_ids\x18\x02 \x03(\x05\x12\x12\n\nstart_time\x18\x03 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x01\"y\n\nActionItem\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x10\n\x08\x61ssignee\x18\x02 \x01(\t\x12\x10\n\x08\x64ue_date\x18\x03 \x01(\x01\x12$\n\x08priority\x18\x04 \x01(\x0e\x32\x12.noteflow.Priority\x12\x13\n\x0bsegment_ids\x18\x05 \x03(\x05\"\\\n\x14SummarizationOptions\x12\x0c\n\x04tone\x18\x01 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t\x12\x11\n\tverbosity\x18\x03 \x01(\t\x12\x13\n\x0btemplate_id\x18\x04 \x01(\t\"w\n\x16GenerateSummaryRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x18\n\x10\x66orce_regenerate\x18\x02 \x01(\x08\x12/\n\x07options\x18\x03 \x01(\x0b\x32\x1e.noteflow.SummarizationOptions\"\xe4\x02\n\x1aSummarizationTemplateProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cworkspace_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tis_system\x18\x05 \x01(\x08\x12\x13\n\x0bis_archived\x18\x06 \x01(\x08\x12\x1f\n\x12\x63urrent_version_id\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\x08 \x01(\x03\x12\x12\n\nupdated_at\x18\t \x01(\x03\x12\x17\n\ncreated_by\x18\n \x01(\tH\x03\x88\x01\x01\x12\x17\n\nupdated_by\x18\x0b \x01(\tH\x04\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0e\n\x0c_descriptionB\x15\n\x13_current_version_idB\r\n\x0b_created_byB\r\n\x0b_updated_by\"\xd3\x01\n!SummarizationTemplateVersionProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0btemplate_id\x18\x02 \x01(\t\x12\x16\n\x0eversion_number\x18\x03 \x01(\x05\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\t\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x06 \x01(\x03\x12\x17\n\ncreated_by\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_change_noteB\r\n\x0b_created_by\"\x8a\x01\n!ListSummarizationTemplatesRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x16\n\x0einclude_system\x18\x02 \x01(\x08\x12\x18\n\x10include_archived\x18\x03 \x01(\x08\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x05\"r\n\"ListSummarizationTemplatesResponse\x12\x37\n\ttemplates\x18\x01 \x03(\x0b\x32$.noteflow.SummarizationTemplateProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"W\n\x1fGetSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x1f\n\x17include_current_version\x18\x02 \x01(\x08\"\xb9\x01\n GetSummarizationTemplateResponse\x12\x36\n\x08template\x18\x01 \x01(\x0b\x32$.noteflow.SummarizationTemplateProto\x12I\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32+.noteflow.SummarizationTemplateVersionProtoH\x00\x88\x01\x01\x42\x12\n\x10_current_version\"\xae\x01\n%SummarizationTemplateMutationResponse\x12\x36\n\x08template\x18\x01 \x01(\x0b\x32$.noteflow.SummarizationTemplateProto\x12\x41\n\x07version\x18\x02 \x01(\x0b\x32+.noteflow.SummarizationTemplateVersionProtoH\x00\x88\x01\x01\x42\n\n\x08_version\"\xad\x01\n\"CreateSummarizationTemplateRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\t\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_change_note\"\xcb\x01\n\"UpdateSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x63ontent\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x63hange_note\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\n\n\x08_contentB\x0e\n\x0c_change_note\":\n#ArchiveSummarizationTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"^\n(ListSummarizationTemplateVersionsRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"\x7f\n)ListSummarizationTemplateVersionsResponse\x12=\n\x08versions\x18\x01 \x03(\x0b\x32+.noteflow.SummarizationTemplateVersionProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"U\n*RestoreSummarizationTemplateVersionRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x12\n\nversion_id\x18\x02 \x01(\t\"\x13\n\x11ServerInfoRequest\"\x83\x04\n\nServerInfo\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x11\n\tasr_model\x18\x02 \x01(\t\x12\x11\n\tasr_ready\x18\x03 \x01(\x08\x12\x1e\n\x16supported_sample_rates\x18\x04 \x03(\x05\x12\x16\n\x0emax_chunk_size\x18\x05 \x01(\x05\x12\x16\n\x0euptime_seconds\x18\x06 \x01(\x01\x12\x17\n\x0f\x61\x63tive_meetings\x18\x07 \x01(\x05\x12\x1b\n\x13\x64iarization_enabled\x18\x08 \x01(\x08\x12\x19\n\x11\x64iarization_ready\x18\t \x01(\x08\x12\x15\n\rstate_version\x18\n \x01(\x03\x12#\n\x16system_ram_total_bytes\x18\x0b \x01(\x03H\x00\x88\x01\x01\x12\'\n\x1asystem_ram_available_bytes\x18\x0c \x01(\x03H\x01\x88\x01\x01\x12!\n\x14gpu_vram_total_bytes\x18\r \x01(\x03H\x02\x88\x01\x01\x12%\n\x18gpu_vram_available_bytes\x18\x0e \x01(\x03H\x03\x88\x01\x01\x42\x19\n\x17_system_ram_total_bytesB\x1d\n\x1b_system_ram_available_bytesB\x17\n\x15_gpu_vram_total_bytesB\x1b\n\x19_gpu_vram_available_bytes\"\xff\x01\n\x10\x41srConfiguration\x12\x12\n\nmodel_size\x18\x01 \x01(\t\x12#\n\x06\x64\x65vice\x18\x02 \x01(\x0e\x32\x13.noteflow.AsrDevice\x12.\n\x0c\x63ompute_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AsrComputeType\x12\x10\n\x08is_ready\x18\x04 \x01(\x08\x12\x16\n\x0e\x63uda_available\x18\x05 \x01(\x08\x12\x1d\n\x15\x61vailable_model_sizes\x18\x06 \x03(\t\x12\x39\n\x17\x61vailable_compute_types\x18\x07 \x03(\x0e\x32\x18.noteflow.AsrComputeType\"\x1c\n\x1aGetAsrConfigurationRequest\"P\n\x1bGetAsrConfigurationResponse\x12\x31\n\rconfiguration\x18\x01 \x01(\x0b\x32\x1a.noteflow.AsrConfiguration\"\xc2\x01\n\x1dUpdateAsrConfigurationRequest\x12\x17\n\nmodel_size\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x06\x64\x65vice\x18\x02 \x01(\x0e\x32\x13.noteflow.AsrDeviceH\x01\x88\x01\x01\x12\x33\n\x0c\x63ompute_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AsrComputeTypeH\x02\x88\x01\x01\x42\r\n\x0b_model_sizeB\t\n\x07_deviceB\x0f\n\r_compute_type\"~\n\x1eUpdateAsrConfigurationResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x04 \x01(\x08\"5\n#GetAsrConfigurationJobStatusRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\xe2\x01\n\x19\x41srConfigurationJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x18\n\x10progress_percent\x18\x03 \x01(\x02\x12\r\n\x05phase\x18\x04 \x01(\t\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12:\n\x11new_configuration\x18\x06 \x01(\x0b\x32\x1a.noteflow.AsrConfigurationH\x00\x88\x01\x01\x42\x14\n\x12_new_configuration\"\xbc\x01\n\nAnnotation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nmeeting_id\x18\x02 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x03 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x12\n\nstart_time\x18\x05 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x06 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x07 \x03(\x05\x12\x12\n\ncreated_at\x18\x08 \x01(\x01\"\xa6\x01\n\x14\x41\x64\x64\x41nnotationRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x12\n\nstart_time\x18\x04 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x05 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x06 \x03(\x05\"-\n\x14GetAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\"R\n\x16ListAnnotationsRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x12\n\nstart_time\x18\x02 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x03 \x01(\x01\"D\n\x17ListAnnotationsResponse\x12)\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x14.noteflow.Annotation\"\xac\x01\n\x17UpdateAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\x12\x31\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32\x18.noteflow.AnnotationType\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x12\n\nstart_time\x18\x04 \x01(\x01\x12\x10\n\x08\x65nd_time\x18\x05 \x01(\x01\x12\x13\n\x0bsegment_ids\x18\x06 \x03(\x05\"0\n\x17\x44\x65leteAnnotationRequest\x12\x15\n\rannotation_id\x18\x01 \x01(\t\"+\n\x18\x44\x65leteAnnotationResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\x86\x01\n\x13ProcessingStepState\x12.\n\x06status\x18\x01 \x01(\x0e\x32\x1e.noteflow.ProcessingStepStatus\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x01\x12\x14\n\x0c\x63ompleted_at\x18\x04 \x01(\x01\"\xa7\x01\n\x10ProcessingStatus\x12.\n\x07summary\x18\x01 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\x12/\n\x08\x65ntities\x18\x02 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\x12\x32\n\x0b\x64iarization\x18\x03 \x01(\x0b\x32\x1d.noteflow.ProcessingStepState\"U\n\x17\x45xportTranscriptRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12&\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\x16.noteflow.ExportFormat\"X\n\x18\x45xportTranscriptResponse\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x13\n\x0b\x66ormat_name\x18\x02 \x01(\t\x12\x16\n\x0e\x66ile_extension\x18\x03 \x01(\t\"K\n\x1fRefineSpeakerDiarizationRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x14\n\x0cnum_speakers\x18\x02 \x01(\x05\"\x9d\x01\n RefineSpeakerDiarizationResponse\x12\x18\n\x10segments_updated\x18\x01 \x01(\x05\x12\x13\n\x0bspeaker_ids\x18\x02 \x03(\t\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12#\n\x06status\x18\x05 \x01(\x0e\x32\x13.noteflow.JobStatus\"\\\n\x14RenameSpeakerRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x16\n\x0eold_speaker_id\x18\x02 \x01(\t\x12\x18\n\x10new_speaker_name\x18\x03 \x01(\t\"B\n\x15RenameSpeakerResponse\x12\x18\n\x10segments_updated\x18\x01 \x01(\x05\x12\x0f\n\x07success\x18\x02 \x01(\x08\"0\n\x1eGetDiarizationJobStatusRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"\xab\x01\n\x14\x44iarizationJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.noteflow.JobStatus\x12\x18\n\x10segments_updated\x18\x03 \x01(\x05\x12\x13\n\x0bspeaker_ids\x18\x04 \x03(\t\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x18\n\x10progress_percent\x18\x06 \x01(\x02\"-\n\x1b\x43\x61ncelDiarizationJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"k\n\x1c\x43\x61ncelDiarizationJobResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12#\n\x06status\x18\x03 \x01(\x0e\x32\x13.noteflow.JobStatus\"!\n\x1fGetActiveDiarizationJobsRequest\"P\n GetActiveDiarizationJobsResponse\x12,\n\x04jobs\x18\x01 \x03(\x0b\x32\x1e.noteflow.DiarizationJobStatus\"C\n\x16\x45xtractEntitiesRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x15\n\rforce_refresh\x18\x02 \x01(\x08\"y\n\x0f\x45xtractedEntity\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x03 \x01(\t\x12\x13\n\x0bsegment_ids\x18\x04 \x03(\x05\x12\x12\n\nconfidence\x18\x05 \x01(\x02\x12\x11\n\tis_pinned\x18\x06 \x01(\x08\"k\n\x17\x45xtractEntitiesResponse\x12+\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x19.noteflow.ExtractedEntity\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x0e\n\x06\x63\x61\x63hed\x18\x03 \x01(\x08\"\\\n\x13UpdateEntityRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x11\n\tentity_id\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x04 \x01(\t\"A\n\x14UpdateEntityResponse\x12)\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x19.noteflow.ExtractedEntity\"<\n\x13\x44\x65leteEntityRequest\x12\x12\n\nmeeting_id\x18\x01 \x01(\t\x12\x11\n\tentity_id\x18\x02 \x01(\t\"\'\n\x14\x44\x65leteEntityResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xc7\x01\n\rCalendarEvent\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x03\x12\x11\n\tattendees\x18\x05 \x03(\t\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x13\n\x0bmeeting_url\x18\x08 \x01(\t\x12\x14\n\x0cis_recurring\x18\t \x01(\x08\x12\x10\n\x08provider\x18\n \x01(\t\"Q\n\x19ListCalendarEventsRequest\x12\x13\n\x0bhours_ahead\x18\x01 \x01(\x05\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x10\n\x08provider\x18\x03 \x01(\t\"Z\n\x1aListCalendarEventsResponse\x12\'\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x17.noteflow.CalendarEvent\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x1d\n\x1bGetCalendarProvidersRequest\"P\n\x10\x43\x61lendarProvider\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10is_authenticated\x18\x02 \x01(\x08\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\"M\n\x1cGetCalendarProvidersResponse\x12-\n\tproviders\x18\x01 \x03(\x0b\x32\x1a.noteflow.CalendarProvider\"X\n\x14InitiateOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\x12\x18\n\x10integration_type\x18\x03 \x01(\t\"8\n\x15InitiateOAuthResponse\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"E\n\x14\x43ompleteOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\t\"o\n\x15\x43ompleteOAuthResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\x12\x16\n\x0eprovider_email\x18\x03 \x01(\t\x12\x16\n\x0eintegration_id\x18\x04 \x01(\t\"\x87\x01\n\x0fOAuthConnection\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x18\n\x10integration_type\x18\x06 \x01(\t\"M\n\x1fGetOAuthConnectionStatusRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x18\n\x10integration_type\x18\x02 \x01(\t\"Q\n GetOAuthConnectionStatusResponse\x12-\n\nconnection\x18\x01 \x01(\x0b\x32\x19.noteflow.OAuthConnection\"D\n\x16\x44isconnectOAuthRequest\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x18\n\x10integration_type\x18\x02 \x01(\t\"A\n\x17\x44isconnectOAuthResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rerror_message\x18\x02 \x01(\t\"\x92\x01\n\x16RegisterWebhookRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x65vents\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06secret\x18\x05 \x01(\t\x12\x12\n\ntimeout_ms\x18\x06 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x07 \x01(\x05\"\xc3\x01\n\x12WebhookConfigProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x0e\n\x06\x65vents\x18\x05 \x03(\t\x12\x0f\n\x07\x65nabled\x18\x06 \x01(\x08\x12\x12\n\ntimeout_ms\x18\x07 \x01(\x05\x12\x13\n\x0bmax_retries\x18\x08 \x01(\x05\x12\x12\n\ncreated_at\x18\t \x01(\x03\x12\x12\n\nupdated_at\x18\n \x01(\x03\"+\n\x13ListWebhooksRequest\x12\x14\n\x0c\x65nabled_only\x18\x01 \x01(\x08\"[\n\x14ListWebhooksResponse\x12.\n\x08webhooks\x18\x01 \x03(\x0b\x32\x1c.noteflow.WebhookConfigProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x84\x02\n\x14UpdateWebhookRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06\x65vents\x18\x03 \x03(\t\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06secret\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x08 \x01(\x05H\x05\x88\x01\x01\x42\x06\n\x04_urlB\x07\n\x05_nameB\t\n\x07_secretB\n\n\x08_enabledB\r\n\x0b_timeout_msB\x0e\n\x0c_max_retries\"*\n\x14\x44\x65leteWebhookRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteWebhookResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xcb\x01\n\x14WebhookDeliveryProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nwebhook_id\x18\x02 \x01(\t\x12\x12\n\nevent_type\x18\x03 \x01(\t\x12\x13\n\x0bstatus_code\x18\x04 \x01(\x05\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x15\n\rattempt_count\x18\x06 \x01(\x05\x12\x13\n\x0b\x64uration_ms\x18\x07 \x01(\x05\x12\x14\n\x0c\x64\x65livered_at\x18\x08 \x01(\x03\x12\x11\n\tsucceeded\x18\t \x01(\x08\"@\n\x1bGetWebhookDeliveriesRequest\x12\x12\n\nwebhook_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"g\n\x1cGetWebhookDeliveriesResponse\x12\x32\n\ndeliveries\x18\x01 \x03(\x0b\x32\x1e.noteflow.WebhookDeliveryProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x1a\n\x18GrantCloudConsentRequest\"\x1b\n\x19GrantCloudConsentResponse\"\x1b\n\x19RevokeCloudConsentRequest\"\x1c\n\x1aRevokeCloudConsentResponse\"\x1e\n\x1cGetCloudConsentStatusRequest\"8\n\x1dGetCloudConsentStatusResponse\x12\x17\n\x0f\x63onsent_granted\x18\x01 \x01(\x08\"=\n\x1aSetHuggingFaceTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x10\n\x08validate\x18\x02 \x01(\x08\"x\n\x1bSetHuggingFaceTokenResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x12\n\x05valid\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x10validation_error\x18\x03 \x01(\t\x12\x10\n\x08username\x18\x04 \x01(\tB\x08\n\x06_valid\"\"\n GetHuggingFaceTokenStatusRequest\"x\n!GetHuggingFaceTokenStatusResponse\x12\x15\n\ris_configured\x18\x01 \x01(\x08\x12\x14\n\x0cis_validated\x18\x02 \x01(\x08\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x14\n\x0cvalidated_at\x18\x04 \x01(\x01\"\x1f\n\x1d\x44\x65leteHuggingFaceTokenRequest\"1\n\x1e\x44\x65leteHuggingFaceTokenResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"!\n\x1fValidateHuggingFaceTokenRequest\"Z\n ValidateHuggingFaceTokenResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rerror_message\x18\x03 \x01(\t\"%\n\x15GetPreferencesRequest\x12\x0c\n\x04keys\x18\x01 \x03(\t\"\xb6\x01\n\x16GetPreferencesResponse\x12\x46\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x31.noteflow.GetPreferencesResponse.PreferencesEntry\x12\x12\n\nupdated_at\x18\x02 \x01(\x01\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x1a\x32\n\x10PreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xce\x01\n\x15SetPreferencesRequest\x12\x45\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x30.noteflow.SetPreferencesRequest.PreferencesEntry\x12\x10\n\x08if_match\x18\x02 \x01(\t\x12\x19\n\x11\x63lient_updated_at\x18\x03 \x01(\x01\x12\r\n\x05merge\x18\x04 \x01(\x08\x1a\x32\n\x10PreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x02\n\x16SetPreferencesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x10\n\x08\x63onflict\x18\x02 \x01(\x08\x12S\n\x12server_preferences\x18\x03 \x03(\x0b\x32\x37.noteflow.SetPreferencesResponse.ServerPreferencesEntry\x12\x19\n\x11server_updated_at\x18\x04 \x01(\x01\x12\x0c\n\x04\x65tag\x18\x05 \x01(\t\x12\x18\n\x10\x63onflict_message\x18\x06 \x01(\t\x1a\x38\n\x16ServerPreferencesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x1bStartIntegrationSyncRequest\x12\x16\n\x0eintegration_id\x18\x01 \x01(\t\"C\n\x1cStartIntegrationSyncResponse\x12\x13\n\x0bsync_run_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"+\n\x14GetSyncStatusRequest\x12\x13\n\x0bsync_run_id\x18\x01 \x01(\t\"\xda\x01\n\x15GetSyncStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x14\n\x0citems_synced\x18\x02 \x01(\x05\x12\x13\n\x0bitems_total\x18\x03 \x01(\x05\x12\x15\n\rerror_message\x18\x04 \x01(\t\x12\x13\n\x0b\x64uration_ms\x18\x05 \x01(\x03\x12\x17\n\nexpires_at\x18\n \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10not_found_reason\x18\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_expires_atB\x13\n\x11_not_found_reason\"O\n\x16ListSyncHistoryRequest\x12\x16\n\x0eintegration_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"T\n\x17ListSyncHistoryResponse\x12$\n\x04runs\x18\x01 \x03(\x0b\x32\x16.noteflow.SyncRunProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xae\x01\n\x0cSyncRunProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0eintegration_id\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x14\n\x0citems_synced\x18\x04 \x01(\x05\x12\x15\n\rerror_message\x18\x05 \x01(\t\x12\x13\n\x0b\x64uration_ms\x18\x06 \x01(\x03\x12\x12\n\nstarted_at\x18\x07 \x01(\t\x12\x14\n\x0c\x63ompleted_at\x18\x08 \x01(\t\"\x1c\n\x1aGetUserIntegrationsRequest\"_\n\x0fIntegrationInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x05 \x01(\t\"N\n\x1bGetUserIntegrationsResponse\x12/\n\x0cintegrations\x18\x01 \x03(\x0b\x32\x19.noteflow.IntegrationInfo\"D\n\x14GetRecentLogsRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\r\n\x05level\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\">\n\x15GetRecentLogsResponse\x12%\n\x04logs\x18\x01 \x03(\x0b\x32\x17.noteflow.LogEntryProto\"\x99\x02\n\rLogEntryProto\x12\x11\n\ttimestamp\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x35\n\x07\x64\x65tails\x18\x05 \x03(\x0b\x32$.noteflow.LogEntryProto.DetailsEntry\x12\x10\n\x08trace_id\x18\x06 \x01(\t\x12\x0f\n\x07span_id\x18\x07 \x01(\t\x12\x12\n\nevent_type\x18\x08 \x01(\t\x12\x14\n\x0coperation_id\x18\t \x01(\t\x12\x11\n\tentity_id\x18\n \x01(\t\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x1cGetPerformanceMetricsRequest\x12\x15\n\rhistory_limit\x18\x01 \x01(\x05\"\x87\x01\n\x1dGetPerformanceMetricsResponse\x12\x32\n\x07\x63urrent\x18\x01 \x01(\x0b\x32!.noteflow.PerformanceMetricsPoint\x12\x32\n\x07history\x18\x02 \x03(\x0b\x32!.noteflow.PerformanceMetricsPoint\"\xf1\x01\n\x17PerformanceMetricsPoint\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12\x13\n\x0b\x63pu_percent\x18\x02 \x01(\x01\x12\x16\n\x0ememory_percent\x18\x03 \x01(\x01\x12\x11\n\tmemory_mb\x18\x04 \x01(\x01\x12\x14\n\x0c\x64isk_percent\x18\x05 \x01(\x01\x12\x1a\n\x12network_bytes_sent\x18\x06 \x01(\x03\x12\x1a\n\x12network_bytes_recv\x18\x07 \x01(\x03\x12\x19\n\x11process_memory_mb\x18\x08 \x01(\x01\x12\x1a\n\x12\x61\x63tive_connections\x18\t \x01(\x05\"\xd0\x02\n\x11\x43laimMappingProto\x12\x15\n\rsubject_claim\x18\x01 \x01(\t\x12\x13\n\x0b\x65mail_claim\x18\x02 \x01(\t\x12\x1c\n\x14\x65mail_verified_claim\x18\x03 \x01(\t\x12\x12\n\nname_claim\x18\x04 \x01(\t\x12 \n\x18preferred_username_claim\x18\x05 \x01(\t\x12\x14\n\x0cgroups_claim\x18\x06 \x01(\t\x12\x15\n\rpicture_claim\x18\x07 \x01(\t\x12\x1d\n\x10\x66irst_name_claim\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0flast_name_claim\x18\t \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bphone_claim\x18\n \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_first_name_claimB\x12\n\x10_last_name_claimB\x0e\n\x0c_phone_claim\"\xf7\x02\n\x12OidcDiscoveryProto\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x1e\n\x16\x61uthorization_endpoint\x18\x02 \x01(\t\x12\x16\n\x0etoken_endpoint\x18\x03 \x01(\t\x12\x1e\n\x11userinfo_endpoint\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08jwks_uri\x18\x05 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x65nd_session_endpoint\x18\x06 \x01(\tH\x02\x88\x01\x01\x12 \n\x13revocation_endpoint\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x10scopes_supported\x18\x08 \x03(\t\x12\x18\n\x10\x63laims_supported\x18\t \x03(\t\x12\x15\n\rsupports_pkce\x18\n \x01(\x08\x42\x14\n\x12_userinfo_endpointB\x0b\n\t_jwks_uriB\x17\n\x15_end_session_endpointB\x16\n\x14_revocation_endpoint\"\xc5\x03\n\x11OidcProviderProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06preset\x18\x04 \x01(\t\x12\x12\n\nissuer_url\x18\x05 \x01(\t\x12\x11\n\tclient_id\x18\x06 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12\x34\n\tdiscovery\x18\x08 \x01(\x0b\x32\x1c.noteflow.OidcDiscoveryProtoH\x00\x88\x01\x01\x12\x32\n\rclaim_mapping\x18\t \x01(\x0b\x32\x1b.noteflow.ClaimMappingProto\x12\x0e\n\x06scopes\x18\n \x03(\t\x12\x1e\n\x16require_email_verified\x18\x0b \x01(\x08\x12\x16\n\x0e\x61llowed_groups\x18\x0c \x03(\t\x12\x12\n\ncreated_at\x18\r \x01(\x03\x12\x12\n\nupdated_at\x18\x0e \x01(\x03\x12#\n\x16\x64iscovery_refreshed_at\x18\x0f \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x08warnings\x18\x10 \x03(\tB\x0c\n\n_discoveryB\x19\n\x17_discovery_refreshed_at\"\xf0\x02\n\x1bRegisterOidcProviderRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nissuer_url\x18\x03 \x01(\t\x12\x11\n\tclient_id\x18\x04 \x01(\t\x12\x1a\n\rclient_secret\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06preset\x18\x06 \x01(\t\x12\x0e\n\x06scopes\x18\x07 \x03(\t\x12\x37\n\rclaim_mapping\x18\x08 \x01(\x0b\x32\x1b.noteflow.ClaimMappingProtoH\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_groups\x18\t \x03(\t\x12#\n\x16require_email_verified\x18\n \x01(\x08H\x02\x88\x01\x01\x12\x15\n\rauto_discover\x18\x0b \x01(\x08\x42\x10\n\x0e_client_secretB\x10\n\x0e_claim_mappingB\x19\n\x17_require_email_verified\"\\\n\x18ListOidcProvidersRequest\x12\x19\n\x0cworkspace_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0c\x65nabled_only\x18\x02 \x01(\x08\x42\x0f\n\r_workspace_id\"`\n\x19ListOidcProvidersResponse\x12.\n\tproviders\x18\x01 \x03(\x0b\x32\x1b.noteflow.OidcProviderProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"-\n\x16GetOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\"\xa1\x02\n\x19UpdateOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06scopes\x18\x03 \x03(\t\x12\x37\n\rclaim_mapping\x18\x04 \x01(\x0b\x32\x1b.noteflow.ClaimMappingProtoH\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_groups\x18\x05 \x03(\t\x12#\n\x16require_email_verified\x18\x06 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07\x65nabled\x18\x07 \x01(\x08H\x03\x88\x01\x01\x42\x07\n\x05_nameB\x10\n\x0e_claim_mappingB\x19\n\x17_require_email_verifiedB\n\n\x08_enabled\"0\n\x19\x44\x65leteOidcProviderRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\"-\n\x1a\x44\x65leteOidcProviderResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"s\n\x1bRefreshOidcDiscoveryRequest\x12\x18\n\x0bprovider_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cworkspace_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_provider_idB\x0f\n\r_workspace_id\"\xc2\x01\n\x1cRefreshOidcDiscoveryResponse\x12\x44\n\x07results\x18\x01 \x03(\x0b\x32\x33.noteflow.RefreshOidcDiscoveryResponse.ResultsEntry\x12\x15\n\rsuccess_count\x18\x02 \x01(\x05\x12\x15\n\rfailure_count\x18\x03 \x01(\x05\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16ListOidcPresetsRequest\"\xb8\x01\n\x0fOidcPresetProto\x12\x0e\n\x06preset\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ult_scopes\x18\x04 \x03(\t\x12\x1e\n\x11\x64ocumentation_url\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05notes\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_documentation_urlB\x08\n\x06_notes\"E\n\x17ListOidcPresetsResponse\x12*\n\x07presets\x18\x01 \x03(\x0b\x32\x19.noteflow.OidcPresetProto\"\xea\x01\n\x10\x45xportRulesProto\x12\x33\n\x0e\x64\x65\x66\x61ult_format\x18\x01 \x01(\x0e\x32\x16.noteflow.ExportFormatH\x00\x88\x01\x01\x12\x1a\n\rinclude_audio\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1f\n\x12include_timestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x18\n\x0btemplate_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x11\n\x0f_default_formatB\x10\n\x0e_include_audioB\x15\n\x13_include_timestampsB\x0e\n\x0c_template_id\"\x88\x01\n\x11TriggerRulesProto\x12\x1f\n\x12\x61uto_start_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x17\x63\x61lendar_match_patterns\x18\x02 \x03(\t\x12\x1a\n\x12\x61pp_match_patterns\x18\x03 \x03(\tB\x15\n\x13_auto_start_enabled\"\xa5\x02\n\x16WorkspaceSettingsProto\x12\x35\n\x0c\x65xport_rules\x18\x01 \x01(\x0b\x32\x1a.noteflow.ExportRulesProtoH\x00\x88\x01\x01\x12\x37\n\rtrigger_rules\x18\x02 \x01(\x0b\x32\x1b.noteflow.TriggerRulesProtoH\x01\x88\x01\x01\x12\x18\n\x0brag_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12+\n\x1e\x64\x65\x66\x61ult_summarization_template\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0f\n\r_export_rulesB\x10\n\x0e_trigger_rulesB\x0e\n\x0c_rag_enabledB!\n\x1f_default_summarization_template\"\xa3\x02\n\x14ProjectSettingsProto\x12\x35\n\x0c\x65xport_rules\x18\x01 \x01(\x0b\x32\x1a.noteflow.ExportRulesProtoH\x00\x88\x01\x01\x12\x37\n\rtrigger_rules\x18\x02 \x01(\x0b\x32\x1b.noteflow.TriggerRulesProtoH\x01\x88\x01\x01\x12\x18\n\x0brag_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12+\n\x1e\x64\x65\x66\x61ult_summarization_template\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0f\n\r_export_rulesB\x10\n\x0e_trigger_rulesB\x0e\n\x0c_rag_enabledB!\n\x1f_default_summarization_template\"\xc3\x02\n\x0cProjectProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x11\n\x04slug\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nis_default\x18\x06 \x01(\x08\x12\x13\n\x0bis_archived\x18\x07 \x01(\x08\x12\x35\n\x08settings\x18\x08 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\t \x01(\x03\x12\x12\n\nupdated_at\x18\n \x01(\x03\x12\x18\n\x0b\x61rchived_at\x18\x0b \x01(\x03H\x03\x88\x01\x01\x42\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settingsB\x0e\n\x0c_archived_at\"z\n\x16ProjectMembershipProto\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\x12\x11\n\tjoined_at\x18\x04 \x01(\x03\"\xc4\x01\n\x14\x43reateProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\x04slug\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x08settings\x18\x05 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x02\x88\x01\x01\x42\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settings\"\'\n\x11GetProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"=\n\x17GetProjectBySlugRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x0c\n\x04slug\x18\x02 \x01(\t\"d\n\x13ListProjectsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x18\n\x10include_archived\x18\x02 \x01(\x08\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\"U\n\x14ListProjectsResponse\x12(\n\x08projects\x18\x01 \x03(\x0b\x32\x16.noteflow.ProjectProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xd0\x01\n\x14UpdateProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04slug\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x08settings\x18\x05 \x01(\x0b\x32\x1e.noteflow.ProjectSettingsProtoH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_slugB\x0e\n\x0c_descriptionB\x0b\n\t_settings\"+\n\x15\x41rchiveProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"+\n\x15RestoreProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"*\n\x14\x44\x65leteProjectRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"(\n\x15\x44\x65leteProjectResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"C\n\x17SetActiveProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\"\x1a\n\x18SetActiveProjectResponse\"/\n\x17GetActiveProjectRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"k\n\x18GetActiveProjectResponse\x12\x17\n\nproject_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x07project\x18\x02 \x01(\x0b\x32\x16.noteflow.ProjectProtoB\r\n\x0b_project_id\"h\n\x17\x41\x64\x64ProjectMemberRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\"o\n\x1eUpdateProjectMemberRoleRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x04role\x18\x03 \x01(\x0e\x32\x1a.noteflow.ProjectRoleProto\"A\n\x1aRemoveProjectMemberRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\".\n\x1bRemoveProjectMemberResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"N\n\x19ListProjectMembersRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x0e\n\x06offset\x18\x03 \x01(\x05\"d\n\x1aListProjectMembersResponse\x12\x31\n\x07members\x18\x01 \x03(\x0b\x32 .noteflow.ProjectMembershipProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x17\n\x15GetCurrentUserRequest\"\xbb\x01\n\x16GetCurrentUserResponse\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x14\n\x0cworkspace_id\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x18\n\x10is_authenticated\x18\x05 \x01(\x08\x12\x15\n\rauth_provider\x18\x06 \x01(\t\x12\x16\n\x0eworkspace_name\x18\x07 \x01(\t\x12\x0c\n\x04role\x18\x08 \x01(\t\"Z\n\x0eWorkspaceProto\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04slug\x18\x03 \x01(\t\x12\x12\n\nis_default\x18\x04 \x01(\x08\x12\x0c\n\x04role\x18\x05 \x01(\t\"6\n\x15ListWorkspacesRequest\x12\r\n\x05limit\x18\x01 \x01(\x05\x12\x0e\n\x06offset\x18\x02 \x01(\x05\"[\n\x16ListWorkspacesResponse\x12,\n\nworkspaces\x18\x01 \x03(\x0b\x32\x18.noteflow.WorkspaceProto\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\".\n\x16SwitchWorkspaceRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"n\n\x17SwitchWorkspaceResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12+\n\tworkspace\x18\x02 \x01(\x0b\x32\x18.noteflow.WorkspaceProto\x12\x15\n\rerror_message\x18\x03 \x01(\t\"3\n\x1bGetWorkspaceSettingsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\"j\n\x1eUpdateWorkspaceSettingsRequest\x12\x14\n\x0cworkspace_id\x18\x01 \x01(\t\x12\x32\n\x08settings\x18\x02 \x01(\x0b\x32 .noteflow.WorkspaceSettingsProto*\x8d\x01\n\nUpdateType\x12\x1b\n\x17UPDATE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13UPDATE_TYPE_PARTIAL\x10\x01\x12\x15\n\x11UPDATE_TYPE_FINAL\x10\x02\x12\x19\n\x15UPDATE_TYPE_VAD_START\x10\x03\x12\x17\n\x13UPDATE_TYPE_VAD_END\x10\x04*\xb6\x01\n\x0cMeetingState\x12\x1d\n\x19MEETING_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15MEETING_STATE_CREATED\x10\x01\x12\x1b\n\x17MEETING_STATE_RECORDING\x10\x02\x12\x19\n\x15MEETING_STATE_STOPPED\x10\x03\x12\x1b\n\x17MEETING_STATE_COMPLETED\x10\x04\x12\x17\n\x13MEETING_STATE_ERROR\x10\x05*`\n\tSortOrder\x12\x1a\n\x16SORT_ORDER_UNSPECIFIED\x10\x00\x12\x1b\n\x17SORT_ORDER_CREATED_DESC\x10\x01\x12\x1a\n\x16SORT_ORDER_CREATED_ASC\x10\x02*^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03*P\n\tAsrDevice\x12\x1a\n\x16\x41SR_DEVICE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x41SR_DEVICE_CPU\x10\x01\x12\x13\n\x0f\x41SR_DEVICE_CUDA\x10\x02*\x89\x01\n\x0e\x41srComputeType\x12 \n\x1c\x41SR_COMPUTE_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41SR_COMPUTE_TYPE_INT8\x10\x01\x12\x1c\n\x18\x41SR_COMPUTE_TYPE_FLOAT16\x10\x02\x12\x1c\n\x18\x41SR_COMPUTE_TYPE_FLOAT32\x10\x03*\xa4\x01\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_ACTION_ITEM\x10\x01\x12\x1c\n\x18\x41NNOTATION_TYPE_DECISION\x10\x02\x12\x18\n\x14\x41NNOTATION_TYPE_NOTE\x10\x03\x12\x18\n\x14\x41NNOTATION_TYPE_RISK\x10\x04*x\n\x0c\x45xportFormat\x12\x1d\n\x19\x45XPORT_FORMAT_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XPORT_FORMAT_MARKDOWN\x10\x01\x12\x16\n\x12\x45XPORT_FORMAT_HTML\x10\x02\x12\x15\n\x11\x45XPORT_FORMAT_PDF\x10\x03*\xa1\x01\n\tJobStatus\x12\x1a\n\x16JOB_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11JOB_STATUS_QUEUED\x10\x01\x12\x16\n\x12JOB_STATUS_RUNNING\x10\x02\x12\x18\n\x14JOB_STATUS_COMPLETED\x10\x03\x12\x15\n\x11JOB_STATUS_FAILED\x10\x04\x12\x18\n\x14JOB_STATUS_CANCELLED\x10\x05*\xc9\x01\n\x14ProcessingStepStatus\x12\x1f\n\x1bPROCESSING_STEP_UNSPECIFIED\x10\x00\x12\x1b\n\x17PROCESSING_STEP_PENDING\x10\x01\x12\x1b\n\x17PROCESSING_STEP_RUNNING\x10\x02\x12\x1d\n\x19PROCESSING_STEP_COMPLETED\x10\x03\x12\x1a\n\x16PROCESSING_STEP_FAILED\x10\x04\x12\x1b\n\x17PROCESSING_STEP_SKIPPED\x10\x05*z\n\x10ProjectRoleProto\x12\x1c\n\x18PROJECT_ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x13PROJECT_ROLE_VIEWER\x10\x01\x12\x17\n\x13PROJECT_ROLE_EDITOR\x10\x02\x12\x16\n\x12PROJECT_ROLE_ADMIN\x10\x03\x32\xe8<\n\x0fNoteFlowService\x12K\n\x13StreamTranscription\x12\x14.noteflow.AudioChunk\x1a\x1a.noteflow.TranscriptUpdate(\x01\x30\x01\x12\x42\n\rCreateMeeting\x12\x1e.noteflow.CreateMeetingRequest\x1a\x11.noteflow.Meeting\x12>\n\x0bStopMeeting\x12\x1c.noteflow.StopMeetingRequest\x1a\x11.noteflow.Meeting\x12M\n\x0cListMeetings\x12\x1d.noteflow.ListMeetingsRequest\x1a\x1e.noteflow.ListMeetingsResponse\x12<\n\nGetMeeting\x12\x1b.noteflow.GetMeetingRequest\x1a\x11.noteflow.Meeting\x12P\n\rDeleteMeeting\x12\x1e.noteflow.DeleteMeetingRequest\x1a\x1f.noteflow.DeleteMeetingResponse\x12\x46\n\x0fGenerateSummary\x12 .noteflow.GenerateSummaryRequest\x1a\x11.noteflow.Summary\x12w\n\x1aListSummarizationTemplates\x12+.noteflow.ListSummarizationTemplatesRequest\x1a,.noteflow.ListSummarizationTemplatesResponse\x12q\n\x18GetSummarizationTemplate\x12).noteflow.GetSummarizationTemplateRequest\x1a*.noteflow.GetSummarizationTemplateResponse\x12|\n\x1b\x43reateSummarizationTemplate\x12,.noteflow.CreateSummarizationTemplateRequest\x1a/.noteflow.SummarizationTemplateMutationResponse\x12|\n\x1bUpdateSummarizationTemplate\x12,.noteflow.UpdateSummarizationTemplateRequest\x1a/.noteflow.SummarizationTemplateMutationResponse\x12s\n\x1c\x41rchiveSummarizationTemplate\x12-.noteflow.ArchiveSummarizationTemplateRequest\x1a$.noteflow.SummarizationTemplateProto\x12\x8c\x01\n!ListSummarizationTemplateVersions\x12\x32.noteflow.ListSummarizationTemplateVersionsRequest\x1a\x33.noteflow.ListSummarizationTemplateVersionsResponse\x12\x81\x01\n#RestoreSummarizationTemplateVersion\x12\x34.noteflow.RestoreSummarizationTemplateVersionRequest\x1a$.noteflow.SummarizationTemplateProto\x12\x45\n\rAddAnnotation\x12\x1e.noteflow.AddAnnotationRequest\x1a\x14.noteflow.Annotation\x12\x45\n\rGetAnnotation\x12\x1e.noteflow.GetAnnotationRequest\x1a\x14.noteflow.Annotation\x12V\n\x0fListAnnotations\x12 .noteflow.ListAnnotationsRequest\x1a!.noteflow.ListAnnotationsResponse\x12K\n\x10UpdateAnnotation\x12!.noteflow.UpdateAnnotationRequest\x1a\x14.noteflow.Annotation\x12Y\n\x10\x44\x65leteAnnotation\x12!.noteflow.DeleteAnnotationRequest\x1a\".noteflow.DeleteAnnotationResponse\x12Y\n\x10\x45xportTranscript\x12!.noteflow.ExportTranscriptRequest\x1a\".noteflow.ExportTranscriptResponse\x12q\n\x18RefineSpeakerDiarization\x12).noteflow.RefineSpeakerDiarizationRequest\x1a*.noteflow.RefineSpeakerDiarizationResponse\x12P\n\rRenameSpeaker\x12\x1e.noteflow.RenameSpeakerRequest\x1a\x1f.noteflow.RenameSpeakerResponse\x12\x63\n\x17GetDiarizationJobStatus\x12(.noteflow.GetDiarizationJobStatusRequest\x1a\x1e.noteflow.DiarizationJobStatus\x12\x65\n\x14\x43\x61ncelDiarizationJob\x12%.noteflow.CancelDiarizationJobRequest\x1a&.noteflow.CancelDiarizationJobResponse\x12q\n\x18GetActiveDiarizationJobs\x12).noteflow.GetActiveDiarizationJobsRequest\x1a*.noteflow.GetActiveDiarizationJobsResponse\x12\x42\n\rGetServerInfo\x12\x1b.noteflow.ServerInfoRequest\x1a\x14.noteflow.ServerInfo\x12\x62\n\x13GetAsrConfiguration\x12$.noteflow.GetAsrConfigurationRequest\x1a%.noteflow.GetAsrConfigurationResponse\x12k\n\x16UpdateAsrConfiguration\x12\'.noteflow.UpdateAsrConfigurationRequest\x1a(.noteflow.UpdateAsrConfigurationResponse\x12r\n\x1cGetAsrConfigurationJobStatus\x12-.noteflow.GetAsrConfigurationJobStatusRequest\x1a#.noteflow.AsrConfigurationJobStatus\x12V\n\x0f\x45xtractEntities\x12 .noteflow.ExtractEntitiesRequest\x1a!.noteflow.ExtractEntitiesResponse\x12M\n\x0cUpdateEntity\x12\x1d.noteflow.UpdateEntityRequest\x1a\x1e.noteflow.UpdateEntityResponse\x12M\n\x0c\x44\x65leteEntity\x12\x1d.noteflow.DeleteEntityRequest\x1a\x1e.noteflow.DeleteEntityResponse\x12_\n\x12ListCalendarEvents\x12#.noteflow.ListCalendarEventsRequest\x1a$.noteflow.ListCalendarEventsResponse\x12\x65\n\x14GetCalendarProviders\x12%.noteflow.GetCalendarProvidersRequest\x1a&.noteflow.GetCalendarProvidersResponse\x12P\n\rInitiateOAuth\x12\x1e.noteflow.InitiateOAuthRequest\x1a\x1f.noteflow.InitiateOAuthResponse\x12P\n\rCompleteOAuth\x12\x1e.noteflow.CompleteOAuthRequest\x1a\x1f.noteflow.CompleteOAuthResponse\x12q\n\x18GetOAuthConnectionStatus\x12).noteflow.GetOAuthConnectionStatusRequest\x1a*.noteflow.GetOAuthConnectionStatusResponse\x12V\n\x0f\x44isconnectOAuth\x12 .noteflow.DisconnectOAuthRequest\x1a!.noteflow.DisconnectOAuthResponse\x12Q\n\x0fRegisterWebhook\x12 .noteflow.RegisterWebhookRequest\x1a\x1c.noteflow.WebhookConfigProto\x12M\n\x0cListWebhooks\x12\x1d.noteflow.ListWebhooksRequest\x1a\x1e.noteflow.ListWebhooksResponse\x12M\n\rUpdateWebhook\x12\x1e.noteflow.UpdateWebhookRequest\x1a\x1c.noteflow.WebhookConfigProto\x12P\n\rDeleteWebhook\x12\x1e.noteflow.DeleteWebhookRequest\x1a\x1f.noteflow.DeleteWebhookResponse\x12\x65\n\x14GetWebhookDeliveries\x12%.noteflow.GetWebhookDeliveriesRequest\x1a&.noteflow.GetWebhookDeliveriesResponse\x12\\\n\x11GrantCloudConsent\x12\".noteflow.GrantCloudConsentRequest\x1a#.noteflow.GrantCloudConsentResponse\x12_\n\x12RevokeCloudConsent\x12#.noteflow.RevokeCloudConsentRequest\x1a$.noteflow.RevokeCloudConsentResponse\x12h\n\x15GetCloudConsentStatus\x12&.noteflow.GetCloudConsentStatusRequest\x1a\'.noteflow.GetCloudConsentStatusResponse\x12\x62\n\x13SetHuggingFaceToken\x12$.noteflow.SetHuggingFaceTokenRequest\x1a%.noteflow.SetHuggingFaceTokenResponse\x12t\n\x19GetHuggingFaceTokenStatus\x12*.noteflow.GetHuggingFaceTokenStatusRequest\x1a+.noteflow.GetHuggingFaceTokenStatusResponse\x12k\n\x16\x44\x65leteHuggingFaceToken\x12\'.noteflow.DeleteHuggingFaceTokenRequest\x1a(.noteflow.DeleteHuggingFaceTokenResponse\x12q\n\x18ValidateHuggingFaceToken\x12).noteflow.ValidateHuggingFaceTokenRequest\x1a*.noteflow.ValidateHuggingFaceTokenResponse\x12S\n\x0eGetPreferences\x12\x1f.noteflow.GetPreferencesRequest\x1a .noteflow.GetPreferencesResponse\x12S\n\x0eSetPreferences\x12\x1f.noteflow.SetPreferencesRequest\x1a .noteflow.SetPreferencesResponse\x12\x65\n\x14StartIntegrationSync\x12%.noteflow.StartIntegrationSyncRequest\x1a&.noteflow.StartIntegrationSyncResponse\x12P\n\rGetSyncStatus\x12\x1e.noteflow.GetSyncStatusRequest\x1a\x1f.noteflow.GetSyncStatusResponse\x12V\n\x0fListSyncHistory\x12 .noteflow.ListSyncHistoryRequest\x1a!.noteflow.ListSyncHistoryResponse\x12\x62\n\x13GetUserIntegrations\x12$.noteflow.GetUserIntegrationsRequest\x1a%.noteflow.GetUserIntegrationsResponse\x12P\n\rGetRecentLogs\x12\x1e.noteflow.GetRecentLogsRequest\x1a\x1f.noteflow.GetRecentLogsResponse\x12h\n\x15GetPerformanceMetrics\x12&.noteflow.GetPerformanceMetricsRequest\x1a\'.noteflow.GetPerformanceMetricsResponse\x12Z\n\x14RegisterOidcProvider\x12%.noteflow.RegisterOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12\\\n\x11ListOidcProviders\x12\".noteflow.ListOidcProvidersRequest\x1a#.noteflow.ListOidcProvidersResponse\x12P\n\x0fGetOidcProvider\x12 .noteflow.GetOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12V\n\x12UpdateOidcProvider\x12#.noteflow.UpdateOidcProviderRequest\x1a\x1b.noteflow.OidcProviderProto\x12_\n\x12\x44\x65leteOidcProvider\x12#.noteflow.DeleteOidcProviderRequest\x1a$.noteflow.DeleteOidcProviderResponse\x12\x65\n\x14RefreshOidcDiscovery\x12%.noteflow.RefreshOidcDiscoveryRequest\x1a&.noteflow.RefreshOidcDiscoveryResponse\x12V\n\x0fListOidcPresets\x12 .noteflow.ListOidcPresetsRequest\x1a!.noteflow.ListOidcPresetsResponse\x12G\n\rCreateProject\x12\x1e.noteflow.CreateProjectRequest\x1a\x16.noteflow.ProjectProto\x12\x41\n\nGetProject\x12\x1b.noteflow.GetProjectRequest\x1a\x16.noteflow.ProjectProto\x12M\n\x10GetProjectBySlug\x12!.noteflow.GetProjectBySlugRequest\x1a\x16.noteflow.ProjectProto\x12M\n\x0cListProjects\x12\x1d.noteflow.ListProjectsRequest\x1a\x1e.noteflow.ListProjectsResponse\x12G\n\rUpdateProject\x12\x1e.noteflow.UpdateProjectRequest\x1a\x16.noteflow.ProjectProto\x12I\n\x0e\x41rchiveProject\x12\x1f.noteflow.ArchiveProjectRequest\x1a\x16.noteflow.ProjectProto\x12I\n\x0eRestoreProject\x12\x1f.noteflow.RestoreProjectRequest\x1a\x16.noteflow.ProjectProto\x12P\n\rDeleteProject\x12\x1e.noteflow.DeleteProjectRequest\x1a\x1f.noteflow.DeleteProjectResponse\x12Y\n\x10SetActiveProject\x12!.noteflow.SetActiveProjectRequest\x1a\".noteflow.SetActiveProjectResponse\x12Y\n\x10GetActiveProject\x12!.noteflow.GetActiveProjectRequest\x1a\".noteflow.GetActiveProjectResponse\x12W\n\x10\x41\x64\x64ProjectMember\x12!.noteflow.AddProjectMemberRequest\x1a .noteflow.ProjectMembershipProto\x12\x65\n\x17UpdateProjectMemberRole\x12(.noteflow.UpdateProjectMemberRoleRequest\x1a .noteflow.ProjectMembershipProto\x12\x62\n\x13RemoveProjectMember\x12$.noteflow.RemoveProjectMemberRequest\x1a%.noteflow.RemoveProjectMemberResponse\x12_\n\x12ListProjectMembers\x12#.noteflow.ListProjectMembersRequest\x1a$.noteflow.ListProjectMembersResponse\x12S\n\x0eGetCurrentUser\x12\x1f.noteflow.GetCurrentUserRequest\x1a .noteflow.GetCurrentUserResponse\x12S\n\x0eListWorkspaces\x12\x1f.noteflow.ListWorkspacesRequest\x1a .noteflow.ListWorkspacesResponse\x12V\n\x0fSwitchWorkspace\x12 .noteflow.SwitchWorkspaceRequest\x1a!.noteflow.SwitchWorkspaceResponse\x12_\n\x14GetWorkspaceSettings\x12%.noteflow.GetWorkspaceSettingsRequest\x1a .noteflow.WorkspaceSettingsProto\x12\x65\n\x17UpdateWorkspaceSettings\x12(.noteflow.UpdateWorkspaceSettingsRequest\x1a .noteflow.WorkspaceSettingsProtob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -45,28 +45,28 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_LOGENTRYPROTO_DETAILSENTRY']._serialized_options = b'8\001' _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._loaded_options = None _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._serialized_options = b'8\001' - _globals['_UPDATETYPE']._serialized_start=21129 - _globals['_UPDATETYPE']._serialized_end=21270 - _globals['_MEETINGSTATE']._serialized_start=21273 - _globals['_MEETINGSTATE']._serialized_end=21455 - _globals['_SORTORDER']._serialized_start=21457 - _globals['_SORTORDER']._serialized_end=21553 - _globals['_PRIORITY']._serialized_start=21555 - _globals['_PRIORITY']._serialized_end=21649 - _globals['_ASRDEVICE']._serialized_start=21651 - _globals['_ASRDEVICE']._serialized_end=21731 - _globals['_ASRCOMPUTETYPE']._serialized_start=21734 - _globals['_ASRCOMPUTETYPE']._serialized_end=21871 - _globals['_ANNOTATIONTYPE']._serialized_start=21874 - _globals['_ANNOTATIONTYPE']._serialized_end=22038 - _globals['_EXPORTFORMAT']._serialized_start=22040 - _globals['_EXPORTFORMAT']._serialized_end=22160 - _globals['_JOBSTATUS']._serialized_start=22163 - _globals['_JOBSTATUS']._serialized_end=22324 - _globals['_PROCESSINGSTEPSTATUS']._serialized_start=22327 - _globals['_PROCESSINGSTEPSTATUS']._serialized_end=22528 - _globals['_PROJECTROLEPROTO']._serialized_start=22530 - _globals['_PROJECTROLEPROTO']._serialized_end=22652 + _globals['_UPDATETYPE']._serialized_start=21393 + _globals['_UPDATETYPE']._serialized_end=21534 + _globals['_MEETINGSTATE']._serialized_start=21537 + _globals['_MEETINGSTATE']._serialized_end=21719 + _globals['_SORTORDER']._serialized_start=21721 + _globals['_SORTORDER']._serialized_end=21817 + _globals['_PRIORITY']._serialized_start=21819 + _globals['_PRIORITY']._serialized_end=21913 + _globals['_ASRDEVICE']._serialized_start=21915 + _globals['_ASRDEVICE']._serialized_end=21995 + _globals['_ASRCOMPUTETYPE']._serialized_start=21998 + _globals['_ASRCOMPUTETYPE']._serialized_end=22135 + _globals['_ANNOTATIONTYPE']._serialized_start=22138 + _globals['_ANNOTATIONTYPE']._serialized_end=22302 + _globals['_EXPORTFORMAT']._serialized_start=22304 + _globals['_EXPORTFORMAT']._serialized_end=22424 + _globals['_JOBSTATUS']._serialized_start=22427 + _globals['_JOBSTATUS']._serialized_end=22588 + _globals['_PROCESSINGSTEPSTATUS']._serialized_start=22591 + _globals['_PROCESSINGSTEPSTATUS']._serialized_end=22792 + _globals['_PROJECTROLEPROTO']._serialized_start=22794 + _globals['_PROJECTROLEPROTO']._serialized_end=22916 _globals['_AUDIOCHUNK']._serialized_start=29 _globals['_AUDIOCHUNK']._serialized_end=163 _globals['_CONGESTIONINFO']._serialized_start=165 @@ -136,307 +136,307 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_SERVERINFOREQUEST']._serialized_start=4675 _globals['_SERVERINFOREQUEST']._serialized_end=4694 _globals['_SERVERINFO']._serialized_start=4697 - _globals['_SERVERINFO']._serialized_end=4948 - _globals['_ASRCONFIGURATION']._serialized_start=4951 - _globals['_ASRCONFIGURATION']._serialized_end=5206 - _globals['_GETASRCONFIGURATIONREQUEST']._serialized_start=5208 - _globals['_GETASRCONFIGURATIONREQUEST']._serialized_end=5236 - _globals['_GETASRCONFIGURATIONRESPONSE']._serialized_start=5238 - _globals['_GETASRCONFIGURATIONRESPONSE']._serialized_end=5318 - _globals['_UPDATEASRCONFIGURATIONREQUEST']._serialized_start=5321 - _globals['_UPDATEASRCONFIGURATIONREQUEST']._serialized_end=5515 - _globals['_UPDATEASRCONFIGURATIONRESPONSE']._serialized_start=5517 - _globals['_UPDATEASRCONFIGURATIONRESPONSE']._serialized_end=5643 - _globals['_GETASRCONFIGURATIONJOBSTATUSREQUEST']._serialized_start=5645 - _globals['_GETASRCONFIGURATIONJOBSTATUSREQUEST']._serialized_end=5698 - _globals['_ASRCONFIGURATIONJOBSTATUS']._serialized_start=5701 - _globals['_ASRCONFIGURATIONJOBSTATUS']._serialized_end=5927 - _globals['_ANNOTATION']._serialized_start=5930 - _globals['_ANNOTATION']._serialized_end=6118 - _globals['_ADDANNOTATIONREQUEST']._serialized_start=6121 - _globals['_ADDANNOTATIONREQUEST']._serialized_end=6287 - _globals['_GETANNOTATIONREQUEST']._serialized_start=6289 - _globals['_GETANNOTATIONREQUEST']._serialized_end=6334 - _globals['_LISTANNOTATIONSREQUEST']._serialized_start=6336 - _globals['_LISTANNOTATIONSREQUEST']._serialized_end=6418 - _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=6420 - _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=6488 - _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=6491 - _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=6663 - _globals['_DELETEANNOTATIONREQUEST']._serialized_start=6665 - _globals['_DELETEANNOTATIONREQUEST']._serialized_end=6713 - _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=6715 - _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=6758 - _globals['_PROCESSINGSTEPSTATE']._serialized_start=6761 - _globals['_PROCESSINGSTEPSTATE']._serialized_end=6895 - _globals['_PROCESSINGSTATUS']._serialized_start=6898 - _globals['_PROCESSINGSTATUS']._serialized_end=7065 - _globals['_EXPORTTRANSCRIPTREQUEST']._serialized_start=7067 - _globals['_EXPORTTRANSCRIPTREQUEST']._serialized_end=7152 - _globals['_EXPORTTRANSCRIPTRESPONSE']._serialized_start=7154 - _globals['_EXPORTTRANSCRIPTRESPONSE']._serialized_end=7242 - _globals['_REFINESPEAKERDIARIZATIONREQUEST']._serialized_start=7244 - _globals['_REFINESPEAKERDIARIZATIONREQUEST']._serialized_end=7319 - _globals['_REFINESPEAKERDIARIZATIONRESPONSE']._serialized_start=7322 - _globals['_REFINESPEAKERDIARIZATIONRESPONSE']._serialized_end=7479 - _globals['_RENAMESPEAKERREQUEST']._serialized_start=7481 - _globals['_RENAMESPEAKERREQUEST']._serialized_end=7573 - _globals['_RENAMESPEAKERRESPONSE']._serialized_start=7575 - _globals['_RENAMESPEAKERRESPONSE']._serialized_end=7641 - _globals['_GETDIARIZATIONJOBSTATUSREQUEST']._serialized_start=7643 - _globals['_GETDIARIZATIONJOBSTATUSREQUEST']._serialized_end=7691 - _globals['_DIARIZATIONJOBSTATUS']._serialized_start=7694 - _globals['_DIARIZATIONJOBSTATUS']._serialized_end=7865 - _globals['_CANCELDIARIZATIONJOBREQUEST']._serialized_start=7867 - _globals['_CANCELDIARIZATIONJOBREQUEST']._serialized_end=7912 - _globals['_CANCELDIARIZATIONJOBRESPONSE']._serialized_start=7914 - _globals['_CANCELDIARIZATIONJOBRESPONSE']._serialized_end=8021 - _globals['_GETACTIVEDIARIZATIONJOBSREQUEST']._serialized_start=8023 - _globals['_GETACTIVEDIARIZATIONJOBSREQUEST']._serialized_end=8056 - _globals['_GETACTIVEDIARIZATIONJOBSRESPONSE']._serialized_start=8058 - _globals['_GETACTIVEDIARIZATIONJOBSRESPONSE']._serialized_end=8138 - _globals['_EXTRACTENTITIESREQUEST']._serialized_start=8140 - _globals['_EXTRACTENTITIESREQUEST']._serialized_end=8207 - _globals['_EXTRACTEDENTITY']._serialized_start=8209 - _globals['_EXTRACTEDENTITY']._serialized_end=8330 - _globals['_EXTRACTENTITIESRESPONSE']._serialized_start=8332 - _globals['_EXTRACTENTITIESRESPONSE']._serialized_end=8439 - _globals['_UPDATEENTITYREQUEST']._serialized_start=8441 - _globals['_UPDATEENTITYREQUEST']._serialized_end=8533 - _globals['_UPDATEENTITYRESPONSE']._serialized_start=8535 - _globals['_UPDATEENTITYRESPONSE']._serialized_end=8600 - _globals['_DELETEENTITYREQUEST']._serialized_start=8602 - _globals['_DELETEENTITYREQUEST']._serialized_end=8662 - _globals['_DELETEENTITYRESPONSE']._serialized_start=8664 - _globals['_DELETEENTITYRESPONSE']._serialized_end=8703 - _globals['_CALENDAREVENT']._serialized_start=8706 - _globals['_CALENDAREVENT']._serialized_end=8905 - _globals['_LISTCALENDAREVENTSREQUEST']._serialized_start=8907 - _globals['_LISTCALENDAREVENTSREQUEST']._serialized_end=8988 - _globals['_LISTCALENDAREVENTSRESPONSE']._serialized_start=8990 - _globals['_LISTCALENDAREVENTSRESPONSE']._serialized_end=9080 - _globals['_GETCALENDARPROVIDERSREQUEST']._serialized_start=9082 - _globals['_GETCALENDARPROVIDERSREQUEST']._serialized_end=9111 - _globals['_CALENDARPROVIDER']._serialized_start=9113 - _globals['_CALENDARPROVIDER']._serialized_end=9193 - _globals['_GETCALENDARPROVIDERSRESPONSE']._serialized_start=9195 - _globals['_GETCALENDARPROVIDERSRESPONSE']._serialized_end=9272 - _globals['_INITIATEOAUTHREQUEST']._serialized_start=9274 - _globals['_INITIATEOAUTHREQUEST']._serialized_end=9362 - _globals['_INITIATEOAUTHRESPONSE']._serialized_start=9364 - _globals['_INITIATEOAUTHRESPONSE']._serialized_end=9420 - _globals['_COMPLETEOAUTHREQUEST']._serialized_start=9422 - _globals['_COMPLETEOAUTHREQUEST']._serialized_end=9491 - _globals['_COMPLETEOAUTHRESPONSE']._serialized_start=9493 - _globals['_COMPLETEOAUTHRESPONSE']._serialized_end=9604 - _globals['_OAUTHCONNECTION']._serialized_start=9607 - _globals['_OAUTHCONNECTION']._serialized_end=9742 - _globals['_GETOAUTHCONNECTIONSTATUSREQUEST']._serialized_start=9744 - _globals['_GETOAUTHCONNECTIONSTATUSREQUEST']._serialized_end=9821 - _globals['_GETOAUTHCONNECTIONSTATUSRESPONSE']._serialized_start=9823 - _globals['_GETOAUTHCONNECTIONSTATUSRESPONSE']._serialized_end=9904 - _globals['_DISCONNECTOAUTHREQUEST']._serialized_start=9906 - _globals['_DISCONNECTOAUTHREQUEST']._serialized_end=9974 - _globals['_DISCONNECTOAUTHRESPONSE']._serialized_start=9976 - _globals['_DISCONNECTOAUTHRESPONSE']._serialized_end=10041 - _globals['_REGISTERWEBHOOKREQUEST']._serialized_start=10044 - _globals['_REGISTERWEBHOOKREQUEST']._serialized_end=10190 - _globals['_WEBHOOKCONFIGPROTO']._serialized_start=10193 - _globals['_WEBHOOKCONFIGPROTO']._serialized_end=10388 - _globals['_LISTWEBHOOKSREQUEST']._serialized_start=10390 - _globals['_LISTWEBHOOKSREQUEST']._serialized_end=10433 - _globals['_LISTWEBHOOKSRESPONSE']._serialized_start=10435 - _globals['_LISTWEBHOOKSRESPONSE']._serialized_end=10526 - _globals['_UPDATEWEBHOOKREQUEST']._serialized_start=10529 - _globals['_UPDATEWEBHOOKREQUEST']._serialized_end=10789 - _globals['_DELETEWEBHOOKREQUEST']._serialized_start=10791 - _globals['_DELETEWEBHOOKREQUEST']._serialized_end=10833 - _globals['_DELETEWEBHOOKRESPONSE']._serialized_start=10835 - _globals['_DELETEWEBHOOKRESPONSE']._serialized_end=10875 - _globals['_WEBHOOKDELIVERYPROTO']._serialized_start=10878 - _globals['_WEBHOOKDELIVERYPROTO']._serialized_end=11081 - _globals['_GETWEBHOOKDELIVERIESREQUEST']._serialized_start=11083 - _globals['_GETWEBHOOKDELIVERIESREQUEST']._serialized_end=11147 - _globals['_GETWEBHOOKDELIVERIESRESPONSE']._serialized_start=11149 - _globals['_GETWEBHOOKDELIVERIESRESPONSE']._serialized_end=11252 - _globals['_GRANTCLOUDCONSENTREQUEST']._serialized_start=11254 - _globals['_GRANTCLOUDCONSENTREQUEST']._serialized_end=11280 - _globals['_GRANTCLOUDCONSENTRESPONSE']._serialized_start=11282 - _globals['_GRANTCLOUDCONSENTRESPONSE']._serialized_end=11309 - _globals['_REVOKECLOUDCONSENTREQUEST']._serialized_start=11311 - _globals['_REVOKECLOUDCONSENTREQUEST']._serialized_end=11338 - _globals['_REVOKECLOUDCONSENTRESPONSE']._serialized_start=11340 - _globals['_REVOKECLOUDCONSENTRESPONSE']._serialized_end=11368 - _globals['_GETCLOUDCONSENTSTATUSREQUEST']._serialized_start=11370 - _globals['_GETCLOUDCONSENTSTATUSREQUEST']._serialized_end=11400 - _globals['_GETCLOUDCONSENTSTATUSRESPONSE']._serialized_start=11402 - _globals['_GETCLOUDCONSENTSTATUSRESPONSE']._serialized_end=11458 - _globals['_SETHUGGINGFACETOKENREQUEST']._serialized_start=11460 - _globals['_SETHUGGINGFACETOKENREQUEST']._serialized_end=11521 - _globals['_SETHUGGINGFACETOKENRESPONSE']._serialized_start=11523 - _globals['_SETHUGGINGFACETOKENRESPONSE']._serialized_end=11643 - _globals['_GETHUGGINGFACETOKENSTATUSREQUEST']._serialized_start=11645 - _globals['_GETHUGGINGFACETOKENSTATUSREQUEST']._serialized_end=11679 - _globals['_GETHUGGINGFACETOKENSTATUSRESPONSE']._serialized_start=11681 - _globals['_GETHUGGINGFACETOKENSTATUSRESPONSE']._serialized_end=11801 - _globals['_DELETEHUGGINGFACETOKENREQUEST']._serialized_start=11803 - _globals['_DELETEHUGGINGFACETOKENREQUEST']._serialized_end=11834 - _globals['_DELETEHUGGINGFACETOKENRESPONSE']._serialized_start=11836 - _globals['_DELETEHUGGINGFACETOKENRESPONSE']._serialized_end=11885 - _globals['_VALIDATEHUGGINGFACETOKENREQUEST']._serialized_start=11887 - _globals['_VALIDATEHUGGINGFACETOKENREQUEST']._serialized_end=11920 - _globals['_VALIDATEHUGGINGFACETOKENRESPONSE']._serialized_start=11922 - _globals['_VALIDATEHUGGINGFACETOKENRESPONSE']._serialized_end=12012 - _globals['_GETPREFERENCESREQUEST']._serialized_start=12014 - _globals['_GETPREFERENCESREQUEST']._serialized_end=12051 - _globals['_GETPREFERENCESRESPONSE']._serialized_start=12054 - _globals['_GETPREFERENCESRESPONSE']._serialized_end=12236 - _globals['_GETPREFERENCESRESPONSE_PREFERENCESENTRY']._serialized_start=12186 - _globals['_GETPREFERENCESRESPONSE_PREFERENCESENTRY']._serialized_end=12236 - _globals['_SETPREFERENCESREQUEST']._serialized_start=12239 - _globals['_SETPREFERENCESREQUEST']._serialized_end=12445 - _globals['_SETPREFERENCESREQUEST_PREFERENCESENTRY']._serialized_start=12186 - _globals['_SETPREFERENCESREQUEST_PREFERENCESENTRY']._serialized_end=12236 - _globals['_SETPREFERENCESRESPONSE']._serialized_start=12448 - _globals['_SETPREFERENCESRESPONSE']._serialized_end=12717 - _globals['_SETPREFERENCESRESPONSE_SERVERPREFERENCESENTRY']._serialized_start=12661 - _globals['_SETPREFERENCESRESPONSE_SERVERPREFERENCESENTRY']._serialized_end=12717 - _globals['_STARTINTEGRATIONSYNCREQUEST']._serialized_start=12719 - _globals['_STARTINTEGRATIONSYNCREQUEST']._serialized_end=12772 - _globals['_STARTINTEGRATIONSYNCRESPONSE']._serialized_start=12774 - _globals['_STARTINTEGRATIONSYNCRESPONSE']._serialized_end=12841 - _globals['_GETSYNCSTATUSREQUEST']._serialized_start=12843 - _globals['_GETSYNCSTATUSREQUEST']._serialized_end=12886 - _globals['_GETSYNCSTATUSRESPONSE']._serialized_start=12889 - _globals['_GETSYNCSTATUSRESPONSE']._serialized_end=13107 - _globals['_LISTSYNCHISTORYREQUEST']._serialized_start=13109 - _globals['_LISTSYNCHISTORYREQUEST']._serialized_end=13188 - _globals['_LISTSYNCHISTORYRESPONSE']._serialized_start=13190 - _globals['_LISTSYNCHISTORYRESPONSE']._serialized_end=13274 - _globals['_SYNCRUNPROTO']._serialized_start=13277 - _globals['_SYNCRUNPROTO']._serialized_end=13451 - _globals['_GETUSERINTEGRATIONSREQUEST']._serialized_start=13453 - _globals['_GETUSERINTEGRATIONSREQUEST']._serialized_end=13481 - _globals['_INTEGRATIONINFO']._serialized_start=13483 - _globals['_INTEGRATIONINFO']._serialized_end=13578 - _globals['_GETUSERINTEGRATIONSRESPONSE']._serialized_start=13580 - _globals['_GETUSERINTEGRATIONSRESPONSE']._serialized_end=13658 - _globals['_GETRECENTLOGSREQUEST']._serialized_start=13660 - _globals['_GETRECENTLOGSREQUEST']._serialized_end=13728 - _globals['_GETRECENTLOGSRESPONSE']._serialized_start=13730 - _globals['_GETRECENTLOGSRESPONSE']._serialized_end=13792 - _globals['_LOGENTRYPROTO']._serialized_start=13795 - _globals['_LOGENTRYPROTO']._serialized_end=14076 - _globals['_LOGENTRYPROTO_DETAILSENTRY']._serialized_start=14030 - _globals['_LOGENTRYPROTO_DETAILSENTRY']._serialized_end=14076 - _globals['_GETPERFORMANCEMETRICSREQUEST']._serialized_start=14078 - _globals['_GETPERFORMANCEMETRICSREQUEST']._serialized_end=14131 - _globals['_GETPERFORMANCEMETRICSRESPONSE']._serialized_start=14134 - _globals['_GETPERFORMANCEMETRICSRESPONSE']._serialized_end=14269 - _globals['_PERFORMANCEMETRICSPOINT']._serialized_start=14272 - _globals['_PERFORMANCEMETRICSPOINT']._serialized_end=14513 - _globals['_CLAIMMAPPINGPROTO']._serialized_start=14516 - _globals['_CLAIMMAPPINGPROTO']._serialized_end=14852 - _globals['_OIDCDISCOVERYPROTO']._serialized_start=14855 - _globals['_OIDCDISCOVERYPROTO']._serialized_end=15230 - _globals['_OIDCPROVIDERPROTO']._serialized_start=15233 - _globals['_OIDCPROVIDERPROTO']._serialized_end=15686 - _globals['_REGISTEROIDCPROVIDERREQUEST']._serialized_start=15689 - _globals['_REGISTEROIDCPROVIDERREQUEST']._serialized_end=16057 - _globals['_LISTOIDCPROVIDERSREQUEST']._serialized_start=16059 - _globals['_LISTOIDCPROVIDERSREQUEST']._serialized_end=16151 - _globals['_LISTOIDCPROVIDERSRESPONSE']._serialized_start=16153 - _globals['_LISTOIDCPROVIDERSRESPONSE']._serialized_end=16249 - _globals['_GETOIDCPROVIDERREQUEST']._serialized_start=16251 - _globals['_GETOIDCPROVIDERREQUEST']._serialized_end=16296 - _globals['_UPDATEOIDCPROVIDERREQUEST']._serialized_start=16299 - _globals['_UPDATEOIDCPROVIDERREQUEST']._serialized_end=16588 - _globals['_DELETEOIDCPROVIDERREQUEST']._serialized_start=16590 - _globals['_DELETEOIDCPROVIDERREQUEST']._serialized_end=16638 - _globals['_DELETEOIDCPROVIDERRESPONSE']._serialized_start=16640 - _globals['_DELETEOIDCPROVIDERRESPONSE']._serialized_end=16685 - _globals['_REFRESHOIDCDISCOVERYREQUEST']._serialized_start=16687 - _globals['_REFRESHOIDCDISCOVERYREQUEST']._serialized_end=16802 - _globals['_REFRESHOIDCDISCOVERYRESPONSE']._serialized_start=16805 - _globals['_REFRESHOIDCDISCOVERYRESPONSE']._serialized_end=16999 - _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._serialized_start=16953 - _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._serialized_end=16999 - _globals['_LISTOIDCPRESETSREQUEST']._serialized_start=17001 - _globals['_LISTOIDCPRESETSREQUEST']._serialized_end=17025 - _globals['_OIDCPRESETPROTO']._serialized_start=17028 - _globals['_OIDCPRESETPROTO']._serialized_end=17212 - _globals['_LISTOIDCPRESETSRESPONSE']._serialized_start=17214 - _globals['_LISTOIDCPRESETSRESPONSE']._serialized_end=17283 - _globals['_EXPORTRULESPROTO']._serialized_start=17286 - _globals['_EXPORTRULESPROTO']._serialized_end=17520 - _globals['_TRIGGERRULESPROTO']._serialized_start=17523 - _globals['_TRIGGERRULESPROTO']._serialized_end=17659 - _globals['_WORKSPACESETTINGSPROTO']._serialized_start=17662 - _globals['_WORKSPACESETTINGSPROTO']._serialized_end=17955 - _globals['_PROJECTSETTINGSPROTO']._serialized_start=17958 - _globals['_PROJECTSETTINGSPROTO']._serialized_end=18249 - _globals['_PROJECTPROTO']._serialized_start=18252 - _globals['_PROJECTPROTO']._serialized_end=18575 - _globals['_PROJECTMEMBERSHIPPROTO']._serialized_start=18577 - _globals['_PROJECTMEMBERSHIPPROTO']._serialized_end=18699 - _globals['_CREATEPROJECTREQUEST']._serialized_start=18702 - _globals['_CREATEPROJECTREQUEST']._serialized_end=18898 - _globals['_GETPROJECTREQUEST']._serialized_start=18900 - _globals['_GETPROJECTREQUEST']._serialized_end=18939 - _globals['_GETPROJECTBYSLUGREQUEST']._serialized_start=18941 - _globals['_GETPROJECTBYSLUGREQUEST']._serialized_end=19002 - _globals['_LISTPROJECTSREQUEST']._serialized_start=19004 - _globals['_LISTPROJECTSREQUEST']._serialized_end=19104 - _globals['_LISTPROJECTSRESPONSE']._serialized_start=19106 - _globals['_LISTPROJECTSRESPONSE']._serialized_end=19191 - _globals['_UPDATEPROJECTREQUEST']._serialized_start=19194 - _globals['_UPDATEPROJECTREQUEST']._serialized_end=19402 - _globals['_ARCHIVEPROJECTREQUEST']._serialized_start=19404 - _globals['_ARCHIVEPROJECTREQUEST']._serialized_end=19447 - _globals['_RESTOREPROJECTREQUEST']._serialized_start=19449 - _globals['_RESTOREPROJECTREQUEST']._serialized_end=19492 - _globals['_DELETEPROJECTREQUEST']._serialized_start=19494 - _globals['_DELETEPROJECTREQUEST']._serialized_end=19536 - _globals['_DELETEPROJECTRESPONSE']._serialized_start=19538 - _globals['_DELETEPROJECTRESPONSE']._serialized_end=19578 - _globals['_SETACTIVEPROJECTREQUEST']._serialized_start=19580 - _globals['_SETACTIVEPROJECTREQUEST']._serialized_end=19647 - _globals['_SETACTIVEPROJECTRESPONSE']._serialized_start=19649 - _globals['_SETACTIVEPROJECTRESPONSE']._serialized_end=19675 - _globals['_GETACTIVEPROJECTREQUEST']._serialized_start=19677 - _globals['_GETACTIVEPROJECTREQUEST']._serialized_end=19724 - _globals['_GETACTIVEPROJECTRESPONSE']._serialized_start=19726 - _globals['_GETACTIVEPROJECTRESPONSE']._serialized_end=19833 - _globals['_ADDPROJECTMEMBERREQUEST']._serialized_start=19835 - _globals['_ADDPROJECTMEMBERREQUEST']._serialized_end=19939 - _globals['_UPDATEPROJECTMEMBERROLEREQUEST']._serialized_start=19941 - _globals['_UPDATEPROJECTMEMBERROLEREQUEST']._serialized_end=20052 - _globals['_REMOVEPROJECTMEMBERREQUEST']._serialized_start=20054 - _globals['_REMOVEPROJECTMEMBERREQUEST']._serialized_end=20119 - _globals['_REMOVEPROJECTMEMBERRESPONSE']._serialized_start=20121 - _globals['_REMOVEPROJECTMEMBERRESPONSE']._serialized_end=20167 - _globals['_LISTPROJECTMEMBERSREQUEST']._serialized_start=20169 - _globals['_LISTPROJECTMEMBERSREQUEST']._serialized_end=20247 - _globals['_LISTPROJECTMEMBERSRESPONSE']._serialized_start=20249 - _globals['_LISTPROJECTMEMBERSRESPONSE']._serialized_end=20349 - _globals['_GETCURRENTUSERREQUEST']._serialized_start=20351 - _globals['_GETCURRENTUSERREQUEST']._serialized_end=20374 - _globals['_GETCURRENTUSERRESPONSE']._serialized_start=20377 - _globals['_GETCURRENTUSERRESPONSE']._serialized_end=20564 - _globals['_WORKSPACEPROTO']._serialized_start=20566 - _globals['_WORKSPACEPROTO']._serialized_end=20656 - _globals['_LISTWORKSPACESREQUEST']._serialized_start=20658 - _globals['_LISTWORKSPACESREQUEST']._serialized_end=20712 - _globals['_LISTWORKSPACESRESPONSE']._serialized_start=20714 - _globals['_LISTWORKSPACESRESPONSE']._serialized_end=20805 - _globals['_SWITCHWORKSPACEREQUEST']._serialized_start=20807 - _globals['_SWITCHWORKSPACEREQUEST']._serialized_end=20853 - _globals['_SWITCHWORKSPACERESPONSE']._serialized_start=20855 - _globals['_SWITCHWORKSPACERESPONSE']._serialized_end=20965 - _globals['_GETWORKSPACESETTINGSREQUEST']._serialized_start=20967 - _globals['_GETWORKSPACESETTINGSREQUEST']._serialized_end=21018 - _globals['_UPDATEWORKSPACESETTINGSREQUEST']._serialized_start=21020 - _globals['_UPDATEWORKSPACESETTINGSREQUEST']._serialized_end=21126 - _globals['_NOTEFLOWSERVICE']._serialized_start=22655 - _globals['_NOTEFLOWSERVICE']._serialized_end=30439 + _globals['_SERVERINFO']._serialized_end=5212 + _globals['_ASRCONFIGURATION']._serialized_start=5215 + _globals['_ASRCONFIGURATION']._serialized_end=5470 + _globals['_GETASRCONFIGURATIONREQUEST']._serialized_start=5472 + _globals['_GETASRCONFIGURATIONREQUEST']._serialized_end=5500 + _globals['_GETASRCONFIGURATIONRESPONSE']._serialized_start=5502 + _globals['_GETASRCONFIGURATIONRESPONSE']._serialized_end=5582 + _globals['_UPDATEASRCONFIGURATIONREQUEST']._serialized_start=5585 + _globals['_UPDATEASRCONFIGURATIONREQUEST']._serialized_end=5779 + _globals['_UPDATEASRCONFIGURATIONRESPONSE']._serialized_start=5781 + _globals['_UPDATEASRCONFIGURATIONRESPONSE']._serialized_end=5907 + _globals['_GETASRCONFIGURATIONJOBSTATUSREQUEST']._serialized_start=5909 + _globals['_GETASRCONFIGURATIONJOBSTATUSREQUEST']._serialized_end=5962 + _globals['_ASRCONFIGURATIONJOBSTATUS']._serialized_start=5965 + _globals['_ASRCONFIGURATIONJOBSTATUS']._serialized_end=6191 + _globals['_ANNOTATION']._serialized_start=6194 + _globals['_ANNOTATION']._serialized_end=6382 + _globals['_ADDANNOTATIONREQUEST']._serialized_start=6385 + _globals['_ADDANNOTATIONREQUEST']._serialized_end=6551 + _globals['_GETANNOTATIONREQUEST']._serialized_start=6553 + _globals['_GETANNOTATIONREQUEST']._serialized_end=6598 + _globals['_LISTANNOTATIONSREQUEST']._serialized_start=6600 + _globals['_LISTANNOTATIONSREQUEST']._serialized_end=6682 + _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=6684 + _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=6752 + _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=6755 + _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=6927 + _globals['_DELETEANNOTATIONREQUEST']._serialized_start=6929 + _globals['_DELETEANNOTATIONREQUEST']._serialized_end=6977 + _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=6979 + _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=7022 + _globals['_PROCESSINGSTEPSTATE']._serialized_start=7025 + _globals['_PROCESSINGSTEPSTATE']._serialized_end=7159 + _globals['_PROCESSINGSTATUS']._serialized_start=7162 + _globals['_PROCESSINGSTATUS']._serialized_end=7329 + _globals['_EXPORTTRANSCRIPTREQUEST']._serialized_start=7331 + _globals['_EXPORTTRANSCRIPTREQUEST']._serialized_end=7416 + _globals['_EXPORTTRANSCRIPTRESPONSE']._serialized_start=7418 + _globals['_EXPORTTRANSCRIPTRESPONSE']._serialized_end=7506 + _globals['_REFINESPEAKERDIARIZATIONREQUEST']._serialized_start=7508 + _globals['_REFINESPEAKERDIARIZATIONREQUEST']._serialized_end=7583 + _globals['_REFINESPEAKERDIARIZATIONRESPONSE']._serialized_start=7586 + _globals['_REFINESPEAKERDIARIZATIONRESPONSE']._serialized_end=7743 + _globals['_RENAMESPEAKERREQUEST']._serialized_start=7745 + _globals['_RENAMESPEAKERREQUEST']._serialized_end=7837 + _globals['_RENAMESPEAKERRESPONSE']._serialized_start=7839 + _globals['_RENAMESPEAKERRESPONSE']._serialized_end=7905 + _globals['_GETDIARIZATIONJOBSTATUSREQUEST']._serialized_start=7907 + _globals['_GETDIARIZATIONJOBSTATUSREQUEST']._serialized_end=7955 + _globals['_DIARIZATIONJOBSTATUS']._serialized_start=7958 + _globals['_DIARIZATIONJOBSTATUS']._serialized_end=8129 + _globals['_CANCELDIARIZATIONJOBREQUEST']._serialized_start=8131 + _globals['_CANCELDIARIZATIONJOBREQUEST']._serialized_end=8176 + _globals['_CANCELDIARIZATIONJOBRESPONSE']._serialized_start=8178 + _globals['_CANCELDIARIZATIONJOBRESPONSE']._serialized_end=8285 + _globals['_GETACTIVEDIARIZATIONJOBSREQUEST']._serialized_start=8287 + _globals['_GETACTIVEDIARIZATIONJOBSREQUEST']._serialized_end=8320 + _globals['_GETACTIVEDIARIZATIONJOBSRESPONSE']._serialized_start=8322 + _globals['_GETACTIVEDIARIZATIONJOBSRESPONSE']._serialized_end=8402 + _globals['_EXTRACTENTITIESREQUEST']._serialized_start=8404 + _globals['_EXTRACTENTITIESREQUEST']._serialized_end=8471 + _globals['_EXTRACTEDENTITY']._serialized_start=8473 + _globals['_EXTRACTEDENTITY']._serialized_end=8594 + _globals['_EXTRACTENTITIESRESPONSE']._serialized_start=8596 + _globals['_EXTRACTENTITIESRESPONSE']._serialized_end=8703 + _globals['_UPDATEENTITYREQUEST']._serialized_start=8705 + _globals['_UPDATEENTITYREQUEST']._serialized_end=8797 + _globals['_UPDATEENTITYRESPONSE']._serialized_start=8799 + _globals['_UPDATEENTITYRESPONSE']._serialized_end=8864 + _globals['_DELETEENTITYREQUEST']._serialized_start=8866 + _globals['_DELETEENTITYREQUEST']._serialized_end=8926 + _globals['_DELETEENTITYRESPONSE']._serialized_start=8928 + _globals['_DELETEENTITYRESPONSE']._serialized_end=8967 + _globals['_CALENDAREVENT']._serialized_start=8970 + _globals['_CALENDAREVENT']._serialized_end=9169 + _globals['_LISTCALENDAREVENTSREQUEST']._serialized_start=9171 + _globals['_LISTCALENDAREVENTSREQUEST']._serialized_end=9252 + _globals['_LISTCALENDAREVENTSRESPONSE']._serialized_start=9254 + _globals['_LISTCALENDAREVENTSRESPONSE']._serialized_end=9344 + _globals['_GETCALENDARPROVIDERSREQUEST']._serialized_start=9346 + _globals['_GETCALENDARPROVIDERSREQUEST']._serialized_end=9375 + _globals['_CALENDARPROVIDER']._serialized_start=9377 + _globals['_CALENDARPROVIDER']._serialized_end=9457 + _globals['_GETCALENDARPROVIDERSRESPONSE']._serialized_start=9459 + _globals['_GETCALENDARPROVIDERSRESPONSE']._serialized_end=9536 + _globals['_INITIATEOAUTHREQUEST']._serialized_start=9538 + _globals['_INITIATEOAUTHREQUEST']._serialized_end=9626 + _globals['_INITIATEOAUTHRESPONSE']._serialized_start=9628 + _globals['_INITIATEOAUTHRESPONSE']._serialized_end=9684 + _globals['_COMPLETEOAUTHREQUEST']._serialized_start=9686 + _globals['_COMPLETEOAUTHREQUEST']._serialized_end=9755 + _globals['_COMPLETEOAUTHRESPONSE']._serialized_start=9757 + _globals['_COMPLETEOAUTHRESPONSE']._serialized_end=9868 + _globals['_OAUTHCONNECTION']._serialized_start=9871 + _globals['_OAUTHCONNECTION']._serialized_end=10006 + _globals['_GETOAUTHCONNECTIONSTATUSREQUEST']._serialized_start=10008 + _globals['_GETOAUTHCONNECTIONSTATUSREQUEST']._serialized_end=10085 + _globals['_GETOAUTHCONNECTIONSTATUSRESPONSE']._serialized_start=10087 + _globals['_GETOAUTHCONNECTIONSTATUSRESPONSE']._serialized_end=10168 + _globals['_DISCONNECTOAUTHREQUEST']._serialized_start=10170 + _globals['_DISCONNECTOAUTHREQUEST']._serialized_end=10238 + _globals['_DISCONNECTOAUTHRESPONSE']._serialized_start=10240 + _globals['_DISCONNECTOAUTHRESPONSE']._serialized_end=10305 + _globals['_REGISTERWEBHOOKREQUEST']._serialized_start=10308 + _globals['_REGISTERWEBHOOKREQUEST']._serialized_end=10454 + _globals['_WEBHOOKCONFIGPROTO']._serialized_start=10457 + _globals['_WEBHOOKCONFIGPROTO']._serialized_end=10652 + _globals['_LISTWEBHOOKSREQUEST']._serialized_start=10654 + _globals['_LISTWEBHOOKSREQUEST']._serialized_end=10697 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_start=10699 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_end=10790 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_start=10793 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_end=11053 + _globals['_DELETEWEBHOOKREQUEST']._serialized_start=11055 + _globals['_DELETEWEBHOOKREQUEST']._serialized_end=11097 + _globals['_DELETEWEBHOOKRESPONSE']._serialized_start=11099 + _globals['_DELETEWEBHOOKRESPONSE']._serialized_end=11139 + _globals['_WEBHOOKDELIVERYPROTO']._serialized_start=11142 + _globals['_WEBHOOKDELIVERYPROTO']._serialized_end=11345 + _globals['_GETWEBHOOKDELIVERIESREQUEST']._serialized_start=11347 + _globals['_GETWEBHOOKDELIVERIESREQUEST']._serialized_end=11411 + _globals['_GETWEBHOOKDELIVERIESRESPONSE']._serialized_start=11413 + _globals['_GETWEBHOOKDELIVERIESRESPONSE']._serialized_end=11516 + _globals['_GRANTCLOUDCONSENTREQUEST']._serialized_start=11518 + _globals['_GRANTCLOUDCONSENTREQUEST']._serialized_end=11544 + _globals['_GRANTCLOUDCONSENTRESPONSE']._serialized_start=11546 + _globals['_GRANTCLOUDCONSENTRESPONSE']._serialized_end=11573 + _globals['_REVOKECLOUDCONSENTREQUEST']._serialized_start=11575 + _globals['_REVOKECLOUDCONSENTREQUEST']._serialized_end=11602 + _globals['_REVOKECLOUDCONSENTRESPONSE']._serialized_start=11604 + _globals['_REVOKECLOUDCONSENTRESPONSE']._serialized_end=11632 + _globals['_GETCLOUDCONSENTSTATUSREQUEST']._serialized_start=11634 + _globals['_GETCLOUDCONSENTSTATUSREQUEST']._serialized_end=11664 + _globals['_GETCLOUDCONSENTSTATUSRESPONSE']._serialized_start=11666 + _globals['_GETCLOUDCONSENTSTATUSRESPONSE']._serialized_end=11722 + _globals['_SETHUGGINGFACETOKENREQUEST']._serialized_start=11724 + _globals['_SETHUGGINGFACETOKENREQUEST']._serialized_end=11785 + _globals['_SETHUGGINGFACETOKENRESPONSE']._serialized_start=11787 + _globals['_SETHUGGINGFACETOKENRESPONSE']._serialized_end=11907 + _globals['_GETHUGGINGFACETOKENSTATUSREQUEST']._serialized_start=11909 + _globals['_GETHUGGINGFACETOKENSTATUSREQUEST']._serialized_end=11943 + _globals['_GETHUGGINGFACETOKENSTATUSRESPONSE']._serialized_start=11945 + _globals['_GETHUGGINGFACETOKENSTATUSRESPONSE']._serialized_end=12065 + _globals['_DELETEHUGGINGFACETOKENREQUEST']._serialized_start=12067 + _globals['_DELETEHUGGINGFACETOKENREQUEST']._serialized_end=12098 + _globals['_DELETEHUGGINGFACETOKENRESPONSE']._serialized_start=12100 + _globals['_DELETEHUGGINGFACETOKENRESPONSE']._serialized_end=12149 + _globals['_VALIDATEHUGGINGFACETOKENREQUEST']._serialized_start=12151 + _globals['_VALIDATEHUGGINGFACETOKENREQUEST']._serialized_end=12184 + _globals['_VALIDATEHUGGINGFACETOKENRESPONSE']._serialized_start=12186 + _globals['_VALIDATEHUGGINGFACETOKENRESPONSE']._serialized_end=12276 + _globals['_GETPREFERENCESREQUEST']._serialized_start=12278 + _globals['_GETPREFERENCESREQUEST']._serialized_end=12315 + _globals['_GETPREFERENCESRESPONSE']._serialized_start=12318 + _globals['_GETPREFERENCESRESPONSE']._serialized_end=12500 + _globals['_GETPREFERENCESRESPONSE_PREFERENCESENTRY']._serialized_start=12450 + _globals['_GETPREFERENCESRESPONSE_PREFERENCESENTRY']._serialized_end=12500 + _globals['_SETPREFERENCESREQUEST']._serialized_start=12503 + _globals['_SETPREFERENCESREQUEST']._serialized_end=12709 + _globals['_SETPREFERENCESREQUEST_PREFERENCESENTRY']._serialized_start=12450 + _globals['_SETPREFERENCESREQUEST_PREFERENCESENTRY']._serialized_end=12500 + _globals['_SETPREFERENCESRESPONSE']._serialized_start=12712 + _globals['_SETPREFERENCESRESPONSE']._serialized_end=12981 + _globals['_SETPREFERENCESRESPONSE_SERVERPREFERENCESENTRY']._serialized_start=12925 + _globals['_SETPREFERENCESRESPONSE_SERVERPREFERENCESENTRY']._serialized_end=12981 + _globals['_STARTINTEGRATIONSYNCREQUEST']._serialized_start=12983 + _globals['_STARTINTEGRATIONSYNCREQUEST']._serialized_end=13036 + _globals['_STARTINTEGRATIONSYNCRESPONSE']._serialized_start=13038 + _globals['_STARTINTEGRATIONSYNCRESPONSE']._serialized_end=13105 + _globals['_GETSYNCSTATUSREQUEST']._serialized_start=13107 + _globals['_GETSYNCSTATUSREQUEST']._serialized_end=13150 + _globals['_GETSYNCSTATUSRESPONSE']._serialized_start=13153 + _globals['_GETSYNCSTATUSRESPONSE']._serialized_end=13371 + _globals['_LISTSYNCHISTORYREQUEST']._serialized_start=13373 + _globals['_LISTSYNCHISTORYREQUEST']._serialized_end=13452 + _globals['_LISTSYNCHISTORYRESPONSE']._serialized_start=13454 + _globals['_LISTSYNCHISTORYRESPONSE']._serialized_end=13538 + _globals['_SYNCRUNPROTO']._serialized_start=13541 + _globals['_SYNCRUNPROTO']._serialized_end=13715 + _globals['_GETUSERINTEGRATIONSREQUEST']._serialized_start=13717 + _globals['_GETUSERINTEGRATIONSREQUEST']._serialized_end=13745 + _globals['_INTEGRATIONINFO']._serialized_start=13747 + _globals['_INTEGRATIONINFO']._serialized_end=13842 + _globals['_GETUSERINTEGRATIONSRESPONSE']._serialized_start=13844 + _globals['_GETUSERINTEGRATIONSRESPONSE']._serialized_end=13922 + _globals['_GETRECENTLOGSREQUEST']._serialized_start=13924 + _globals['_GETRECENTLOGSREQUEST']._serialized_end=13992 + _globals['_GETRECENTLOGSRESPONSE']._serialized_start=13994 + _globals['_GETRECENTLOGSRESPONSE']._serialized_end=14056 + _globals['_LOGENTRYPROTO']._serialized_start=14059 + _globals['_LOGENTRYPROTO']._serialized_end=14340 + _globals['_LOGENTRYPROTO_DETAILSENTRY']._serialized_start=14294 + _globals['_LOGENTRYPROTO_DETAILSENTRY']._serialized_end=14340 + _globals['_GETPERFORMANCEMETRICSREQUEST']._serialized_start=14342 + _globals['_GETPERFORMANCEMETRICSREQUEST']._serialized_end=14395 + _globals['_GETPERFORMANCEMETRICSRESPONSE']._serialized_start=14398 + _globals['_GETPERFORMANCEMETRICSRESPONSE']._serialized_end=14533 + _globals['_PERFORMANCEMETRICSPOINT']._serialized_start=14536 + _globals['_PERFORMANCEMETRICSPOINT']._serialized_end=14777 + _globals['_CLAIMMAPPINGPROTO']._serialized_start=14780 + _globals['_CLAIMMAPPINGPROTO']._serialized_end=15116 + _globals['_OIDCDISCOVERYPROTO']._serialized_start=15119 + _globals['_OIDCDISCOVERYPROTO']._serialized_end=15494 + _globals['_OIDCPROVIDERPROTO']._serialized_start=15497 + _globals['_OIDCPROVIDERPROTO']._serialized_end=15950 + _globals['_REGISTEROIDCPROVIDERREQUEST']._serialized_start=15953 + _globals['_REGISTEROIDCPROVIDERREQUEST']._serialized_end=16321 + _globals['_LISTOIDCPROVIDERSREQUEST']._serialized_start=16323 + _globals['_LISTOIDCPROVIDERSREQUEST']._serialized_end=16415 + _globals['_LISTOIDCPROVIDERSRESPONSE']._serialized_start=16417 + _globals['_LISTOIDCPROVIDERSRESPONSE']._serialized_end=16513 + _globals['_GETOIDCPROVIDERREQUEST']._serialized_start=16515 + _globals['_GETOIDCPROVIDERREQUEST']._serialized_end=16560 + _globals['_UPDATEOIDCPROVIDERREQUEST']._serialized_start=16563 + _globals['_UPDATEOIDCPROVIDERREQUEST']._serialized_end=16852 + _globals['_DELETEOIDCPROVIDERREQUEST']._serialized_start=16854 + _globals['_DELETEOIDCPROVIDERREQUEST']._serialized_end=16902 + _globals['_DELETEOIDCPROVIDERRESPONSE']._serialized_start=16904 + _globals['_DELETEOIDCPROVIDERRESPONSE']._serialized_end=16949 + _globals['_REFRESHOIDCDISCOVERYREQUEST']._serialized_start=16951 + _globals['_REFRESHOIDCDISCOVERYREQUEST']._serialized_end=17066 + _globals['_REFRESHOIDCDISCOVERYRESPONSE']._serialized_start=17069 + _globals['_REFRESHOIDCDISCOVERYRESPONSE']._serialized_end=17263 + _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._serialized_start=17217 + _globals['_REFRESHOIDCDISCOVERYRESPONSE_RESULTSENTRY']._serialized_end=17263 + _globals['_LISTOIDCPRESETSREQUEST']._serialized_start=17265 + _globals['_LISTOIDCPRESETSREQUEST']._serialized_end=17289 + _globals['_OIDCPRESETPROTO']._serialized_start=17292 + _globals['_OIDCPRESETPROTO']._serialized_end=17476 + _globals['_LISTOIDCPRESETSRESPONSE']._serialized_start=17478 + _globals['_LISTOIDCPRESETSRESPONSE']._serialized_end=17547 + _globals['_EXPORTRULESPROTO']._serialized_start=17550 + _globals['_EXPORTRULESPROTO']._serialized_end=17784 + _globals['_TRIGGERRULESPROTO']._serialized_start=17787 + _globals['_TRIGGERRULESPROTO']._serialized_end=17923 + _globals['_WORKSPACESETTINGSPROTO']._serialized_start=17926 + _globals['_WORKSPACESETTINGSPROTO']._serialized_end=18219 + _globals['_PROJECTSETTINGSPROTO']._serialized_start=18222 + _globals['_PROJECTSETTINGSPROTO']._serialized_end=18513 + _globals['_PROJECTPROTO']._serialized_start=18516 + _globals['_PROJECTPROTO']._serialized_end=18839 + _globals['_PROJECTMEMBERSHIPPROTO']._serialized_start=18841 + _globals['_PROJECTMEMBERSHIPPROTO']._serialized_end=18963 + _globals['_CREATEPROJECTREQUEST']._serialized_start=18966 + _globals['_CREATEPROJECTREQUEST']._serialized_end=19162 + _globals['_GETPROJECTREQUEST']._serialized_start=19164 + _globals['_GETPROJECTREQUEST']._serialized_end=19203 + _globals['_GETPROJECTBYSLUGREQUEST']._serialized_start=19205 + _globals['_GETPROJECTBYSLUGREQUEST']._serialized_end=19266 + _globals['_LISTPROJECTSREQUEST']._serialized_start=19268 + _globals['_LISTPROJECTSREQUEST']._serialized_end=19368 + _globals['_LISTPROJECTSRESPONSE']._serialized_start=19370 + _globals['_LISTPROJECTSRESPONSE']._serialized_end=19455 + _globals['_UPDATEPROJECTREQUEST']._serialized_start=19458 + _globals['_UPDATEPROJECTREQUEST']._serialized_end=19666 + _globals['_ARCHIVEPROJECTREQUEST']._serialized_start=19668 + _globals['_ARCHIVEPROJECTREQUEST']._serialized_end=19711 + _globals['_RESTOREPROJECTREQUEST']._serialized_start=19713 + _globals['_RESTOREPROJECTREQUEST']._serialized_end=19756 + _globals['_DELETEPROJECTREQUEST']._serialized_start=19758 + _globals['_DELETEPROJECTREQUEST']._serialized_end=19800 + _globals['_DELETEPROJECTRESPONSE']._serialized_start=19802 + _globals['_DELETEPROJECTRESPONSE']._serialized_end=19842 + _globals['_SETACTIVEPROJECTREQUEST']._serialized_start=19844 + _globals['_SETACTIVEPROJECTREQUEST']._serialized_end=19911 + _globals['_SETACTIVEPROJECTRESPONSE']._serialized_start=19913 + _globals['_SETACTIVEPROJECTRESPONSE']._serialized_end=19939 + _globals['_GETACTIVEPROJECTREQUEST']._serialized_start=19941 + _globals['_GETACTIVEPROJECTREQUEST']._serialized_end=19988 + _globals['_GETACTIVEPROJECTRESPONSE']._serialized_start=19990 + _globals['_GETACTIVEPROJECTRESPONSE']._serialized_end=20097 + _globals['_ADDPROJECTMEMBERREQUEST']._serialized_start=20099 + _globals['_ADDPROJECTMEMBERREQUEST']._serialized_end=20203 + _globals['_UPDATEPROJECTMEMBERROLEREQUEST']._serialized_start=20205 + _globals['_UPDATEPROJECTMEMBERROLEREQUEST']._serialized_end=20316 + _globals['_REMOVEPROJECTMEMBERREQUEST']._serialized_start=20318 + _globals['_REMOVEPROJECTMEMBERREQUEST']._serialized_end=20383 + _globals['_REMOVEPROJECTMEMBERRESPONSE']._serialized_start=20385 + _globals['_REMOVEPROJECTMEMBERRESPONSE']._serialized_end=20431 + _globals['_LISTPROJECTMEMBERSREQUEST']._serialized_start=20433 + _globals['_LISTPROJECTMEMBERSREQUEST']._serialized_end=20511 + _globals['_LISTPROJECTMEMBERSRESPONSE']._serialized_start=20513 + _globals['_LISTPROJECTMEMBERSRESPONSE']._serialized_end=20613 + _globals['_GETCURRENTUSERREQUEST']._serialized_start=20615 + _globals['_GETCURRENTUSERREQUEST']._serialized_end=20638 + _globals['_GETCURRENTUSERRESPONSE']._serialized_start=20641 + _globals['_GETCURRENTUSERRESPONSE']._serialized_end=20828 + _globals['_WORKSPACEPROTO']._serialized_start=20830 + _globals['_WORKSPACEPROTO']._serialized_end=20920 + _globals['_LISTWORKSPACESREQUEST']._serialized_start=20922 + _globals['_LISTWORKSPACESREQUEST']._serialized_end=20976 + _globals['_LISTWORKSPACESRESPONSE']._serialized_start=20978 + _globals['_LISTWORKSPACESRESPONSE']._serialized_end=21069 + _globals['_SWITCHWORKSPACEREQUEST']._serialized_start=21071 + _globals['_SWITCHWORKSPACEREQUEST']._serialized_end=21117 + _globals['_SWITCHWORKSPACERESPONSE']._serialized_start=21119 + _globals['_SWITCHWORKSPACERESPONSE']._serialized_end=21229 + _globals['_GETWORKSPACESETTINGSREQUEST']._serialized_start=21231 + _globals['_GETWORKSPACESETTINGSREQUEST']._serialized_end=21282 + _globals['_UPDATEWORKSPACESETTINGSREQUEST']._serialized_start=21284 + _globals['_UPDATEWORKSPACESETTINGSREQUEST']._serialized_end=21390 + _globals['_NOTEFLOWSERVICE']._serialized_start=22919 + _globals['_NOTEFLOWSERVICE']._serialized_end=30703 # @@protoc_insertion_point(module_scope) diff --git a/src/noteflow/infrastructure/metrics/__init__.py b/src/noteflow/infrastructure/metrics/__init__.py index 9c81d77..6e21b6b 100644 --- a/src/noteflow/infrastructure/metrics/__init__.py +++ b/src/noteflow/infrastructure/metrics/__init__.py @@ -1,9 +1,12 @@ """Metrics infrastructure for NoteFlow.""" from .collector import MetricsCollector, PerformanceMetrics, get_metrics_collector +from .system_resources import SystemResources, get_system_resources __all__ = [ "MetricsCollector", "PerformanceMetrics", "get_metrics_collector", + "SystemResources", + "get_system_resources", ] diff --git a/src/noteflow/infrastructure/metrics/system_resources.py b/src/noteflow/infrastructure/metrics/system_resources.py new file mode 100644 index 0000000..450e21f --- /dev/null +++ b/src/noteflow/infrastructure/metrics/system_resources.py @@ -0,0 +1,107 @@ +"""System resource discovery helpers.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Final, Protocol, cast + +from noteflow.infrastructure.logging import get_logger + +logger = get_logger(__name__) + +_GPU_DEVICE_INDEX: Final = 0 + + +class _TorchCudaProperties(Protocol): + total_memory: int + + +class _TorchCudaModule(Protocol): + def is_available(self) -> bool: ... + def mem_get_info(self) -> tuple[int, int]: ... + def get_device_properties(self, device: int) -> _TorchCudaProperties: ... + def memory_reserved(self, device: int) -> int: ... + def memory_allocated(self, device: int) -> int: ... + + +class _TorchModule(Protocol): + cuda: _TorchCudaModule + + +@dataclass(frozen=True, slots=True) +class SystemResources: + """Snapshot of server memory resources.""" + + ram_total_bytes: int | None + ram_available_bytes: int | None + gpu_vram_total_bytes: int | None + gpu_vram_available_bytes: int | None + + +def get_system_resources() -> SystemResources: + """Collect current system memory resources. + + Returns: + SystemResources with byte counts when available. + """ + ram_total, ram_available = _get_ram_bytes() + gpu_total, gpu_available = _get_gpu_bytes() + return SystemResources( + ram_total_bytes=ram_total, + ram_available_bytes=ram_available, + gpu_vram_total_bytes=gpu_total, + gpu_vram_available_bytes=gpu_available, + ) + + +def _get_ram_bytes() -> tuple[int | None, int | None]: + try: + import psutil + except ImportError as exc: + logger.debug("psutil unavailable; cannot read system RAM: %s", exc) + return None, None + + try: + memory = psutil.virtual_memory() + except (OSError, RuntimeError) as exc: + logger.debug("Failed to read system RAM: %s", exc) + return None, None + + return int(memory.total), int(memory.available) + + +def _get_gpu_bytes() -> tuple[int | None, int | None]: + try: + import torch + except ImportError as exc: + logger.debug("torch unavailable; cannot read GPU memory: %s", exc) + return None, None + + torch_typed = cast(_TorchModule, torch) + cuda = torch_typed.cuda + + try: + if not cuda.is_available(): + return None, None + except RuntimeError as exc: + logger.debug("Failed to query CUDA availability: %s", exc) + return None, None + + if hasattr(cuda, "mem_get_info"): + try: + free_bytes, total_bytes = cuda.mem_get_info() + return int(total_bytes), int(free_bytes) + except RuntimeError as exc: + logger.debug("Failed to read CUDA mem info: %s", exc) + + try: + props = cuda.get_device_properties(_GPU_DEVICE_INDEX) + total_bytes = int(props.total_memory) + reserved = int(cuda.memory_reserved(_GPU_DEVICE_INDEX)) + allocated = int(cuda.memory_allocated(_GPU_DEVICE_INDEX)) + used_bytes = max(reserved, allocated) + free_bytes = max(total_bytes - used_bytes, 0) + return total_bytes, free_bytes + except RuntimeError as exc: + logger.debug("Failed to estimate GPU memory: %s", exc) + return None, None