mvp implementation

This commit is contained in:
2026-03-26 14:01:10 -07:00
parent 0cde587220
commit ebcf404fde
33 changed files with 3048 additions and 6 deletions
@@ -0,0 +1,383 @@
# -*- coding: utf-8 -*-
# Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
# source: officeconvertapi/v1/conversion.proto
from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
from typing import Protocol
from connectrpc.client import ConnectClient, ConnectClientSync
from connectrpc.code import Code
from connectrpc.compression import Compression
from connectrpc.errors import ConnectError
from connectrpc.interceptor import Interceptor, InterceptorSync
from connectrpc.method import IdempotencyLevel, MethodInfo
from connectrpc.request import Headers, RequestContext
from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
import officeconvertapi.v1.conversion_pb2 as officeconvertapi_dot_v1_dot_conversion__pb2
class ConversionService(Protocol):
async def create_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
async def start_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
async def get_conversion_status(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
async def get_slide_deck(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
async def delete_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
class ConversionServiceASGIApplication(ConnectASGIApplication[ConversionService]):
def __init__(self, service: ConversionService | AsyncGenerator[ConversionService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
super().__init__(
service=service,
endpoints=lambda svc: {
"/officeconvertapi.v1.ConversionService/CreateConversion": Endpoint.unary(
method=MethodInfo(
name="CreateConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=svc.create_conversion,
),
"/officeconvertapi.v1.ConversionService/StartConversion": Endpoint.unary(
method=MethodInfo(
name="StartConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=svc.start_conversion,
),
"/officeconvertapi.v1.ConversionService/GetConversionStatus": Endpoint.unary(
method=MethodInfo(
name="GetConversionStatus",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=svc.get_conversion_status,
),
"/officeconvertapi.v1.ConversionService/GetSlideDeck": Endpoint.unary(
method=MethodInfo(
name="GetSlideDeck",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=svc.get_slide_deck,
),
"/officeconvertapi.v1.ConversionService/DeleteConversion": Endpoint.unary(
method=MethodInfo(
name="DeleteConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=svc.delete_conversion,
),
},
interceptors=interceptors,
read_max_bytes=read_max_bytes,
compressions=compressions,
)
@property
def path(self) -> str:
"""Returns the URL path to mount the application to when serving multiple applications."""
return "/officeconvertapi.v1.ConversionService"
class ConversionServiceClient(ConnectClient):
async def create_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
name="CreateConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
async def start_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
name="StartConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
async def get_conversion_status(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
name="GetConversionStatus",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
async def get_slide_deck(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
name="GetSlideDeck",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
async def delete_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
name="DeleteConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
class ConversionServiceSync(Protocol):
def create_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
def start_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
def get_conversion_status(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
def get_slide_deck(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
def delete_conversion(self, request: officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest, ctx: RequestContext) -> officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
class ConversionServiceWSGIApplication(ConnectWSGIApplication):
def __init__(self, service: ConversionServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
super().__init__(
endpoints={
"/officeconvertapi.v1.ConversionService/CreateConversion": EndpointSync.unary(
method=MethodInfo(
name="CreateConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=service.create_conversion,
),
"/officeconvertapi.v1.ConversionService/StartConversion": EndpointSync.unary(
method=MethodInfo(
name="StartConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=service.start_conversion,
),
"/officeconvertapi.v1.ConversionService/GetConversionStatus": EndpointSync.unary(
method=MethodInfo(
name="GetConversionStatus",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=service.get_conversion_status,
),
"/officeconvertapi.v1.ConversionService/GetSlideDeck": EndpointSync.unary(
method=MethodInfo(
name="GetSlideDeck",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=service.get_slide_deck,
),
"/officeconvertapi.v1.ConversionService/DeleteConversion": EndpointSync.unary(
method=MethodInfo(
name="DeleteConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
function=service.delete_conversion,
),
},
interceptors=interceptors,
read_max_bytes=read_max_bytes,
compressions=compressions,
)
@property
def path(self) -> str:
"""Returns the URL path to mount the application to when serving multiple applications."""
return "/officeconvertapi.v1.ConversionService"
class ConversionServiceClientSync(ConnectClientSync):
def create_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
name="CreateConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.CreateConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
def start_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
name="StartConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.StartConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
def get_conversion_status(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
name="GetConversionStatus",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetConversionStatusResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
def get_slide_deck(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
name="GetSlideDeck",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.GetSlideDeckResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
def delete_conversion(
self,
request: officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
) -> officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
name="DeleteConversion",
service_name="officeconvertapi.v1.ConversionService",
input=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionRequest,
output=officeconvertapi_dot_v1_dot_conversion__pb2.DeleteConversionResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: officeconvertapi/v1/conversion.proto
# Protobuf Python Version: 7.34.1
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC,
7,
34,
1,
'',
'officeconvertapi/v1/conversion.proto'
)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$officeconvertapi/v1/conversion.proto\x12\x13officeconvertapi.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"[\n\x05Slide\x12\x14\n\x05index\x18\x01 \x01(\x05R\x05index\x12\x1f\n\x0bnotes_plain\x18\x02 \x01(\tR\nnotesPlain\x12\x1b\n\timage_url\x18\x03 \x01(\tR\x08imageUrl\"\xc8\x01\n\tSlideDeck\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\x12\'\n\x0fsource_filename\x18\x02 \x01(\tR\x0esourceFilename\x12\x32\n\x06slides\x18\x03 \x03(\x0b\x32\x1a.officeconvertapi.v1.SlideR\x06slides\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\"B\n\x17\x43reateConversionRequest\x12\'\n\x0fsource_filename\x18\x01 \x01(\tR\x0esourceFilename\"\xea\x01\n\x18\x43reateConversionResponse\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\x12#\n\rupload_bucket\x18\x02 \x01(\tR\x0cuploadBucket\x12*\n\x11upload_object_key\x18\x03 \x01(\tR\x0fuploadObjectKey\x12\x1d\n\nupload_url\x18\x04 \x01(\tR\tuploadUrl\x12\x39\n\nexpires_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"=\n\x16StartConversionRequest\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\"}\n\x17StartConversionResponse\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\x12=\n\x06status\x18\x02 \x01(\x0e\x32%.officeconvertapi.v1.ConversionStatusR\x06status\"A\n\x1aGetConversionStatusRequest\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\"\xe1\x01\n\x1bGetConversionStatusResponse\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\x12=\n\x06status\x18\x02 \x01(\x0e\x32%.officeconvertapi.v1.ConversionStatusR\x06status\x12#\n\rerror_message\x18\x03 \x01(\tR\x0c\x65rrorMessage\x12\x39\n\nupdated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\":\n\x13GetSlideDeckRequest\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\"U\n\x14GetSlideDeckResponse\x12=\n\nslide_deck\x18\x01 \x01(\x0b\x32\x1e.officeconvertapi.v1.SlideDeckR\tslideDeck\">\n\x17\x44\x65leteConversionRequest\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\"Y\n\x18\x44\x65leteConversionResponse\x12#\n\rconversion_id\x18\x01 \x01(\tR\x0c\x63onversionId\x12\x18\n\x07\x64\x65leted\x18\x02 \x01(\x08R\x07\x64\x65leted*\xb2\x01\n\x10\x43onversionStatus\x12!\n\x1d\x43ONVERSION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43ONVERSION_STATUS_PENDING\x10\x01\x12\x1d\n\x19\x43ONVERSION_STATUS_RUNNING\x10\x02\x12\x1f\n\x1b\x43ONVERSION_STATUS_SUCCEEDED\x10\x03\x12\x1c\n\x18\x43ONVERSION_STATUS_FAILED\x10\x04\x32\xcc\x04\n\x11\x43onversionService\x12q\n\x10\x43reateConversion\x12,.officeconvertapi.v1.CreateConversionRequest\x1a-.officeconvertapi.v1.CreateConversionResponse\"\x00\x12n\n\x0fStartConversion\x12+.officeconvertapi.v1.StartConversionRequest\x1a,.officeconvertapi.v1.StartConversionResponse\"\x00\x12z\n\x13GetConversionStatus\x12/.officeconvertapi.v1.GetConversionStatusRequest\x1a\x30.officeconvertapi.v1.GetConversionStatusResponse\"\x00\x12\x65\n\x0cGetSlideDeck\x12(.officeconvertapi.v1.GetSlideDeckRequest\x1a).officeconvertapi.v1.GetSlideDeckResponse\"\x00\x12q\n\x10\x44\x65leteConversion\x12,.officeconvertapi.v1.DeleteConversionRequest\x1a-.officeconvertapi.v1.DeleteConversionResponse\"\x00\x42LZJgithub.com/end/officeconvert/gen/go/officeconvertapi/v1;officeconvertapiv1b\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'officeconvertapi.v1.conversion_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options = b'ZJgithub.com/end/officeconvert/gen/go/officeconvertapi/v1;officeconvertapiv1'
_globals['_CONVERSIONSTATUS']._serialized_start=1483
_globals['_CONVERSIONSTATUS']._serialized_end=1661
_globals['_SLIDE']._serialized_start=94
_globals['_SLIDE']._serialized_end=185
_globals['_SLIDEDECK']._serialized_start=188
_globals['_SLIDEDECK']._serialized_end=388
_globals['_CREATECONVERSIONREQUEST']._serialized_start=390
_globals['_CREATECONVERSIONREQUEST']._serialized_end=456
_globals['_CREATECONVERSIONRESPONSE']._serialized_start=459
_globals['_CREATECONVERSIONRESPONSE']._serialized_end=693
_globals['_STARTCONVERSIONREQUEST']._serialized_start=695
_globals['_STARTCONVERSIONREQUEST']._serialized_end=756
_globals['_STARTCONVERSIONRESPONSE']._serialized_start=758
_globals['_STARTCONVERSIONRESPONSE']._serialized_end=883
_globals['_GETCONVERSIONSTATUSREQUEST']._serialized_start=885
_globals['_GETCONVERSIONSTATUSREQUEST']._serialized_end=950
_globals['_GETCONVERSIONSTATUSRESPONSE']._serialized_start=953
_globals['_GETCONVERSIONSTATUSRESPONSE']._serialized_end=1178
_globals['_GETSLIDEDECKREQUEST']._serialized_start=1180
_globals['_GETSLIDEDECKREQUEST']._serialized_end=1238
_globals['_GETSLIDEDECKRESPONSE']._serialized_start=1240
_globals['_GETSLIDEDECKRESPONSE']._serialized_end=1325
_globals['_DELETECONVERSIONREQUEST']._serialized_start=1327
_globals['_DELETECONVERSIONREQUEST']._serialized_end=1389
_globals['_DELETECONVERSIONRESPONSE']._serialized_start=1391
_globals['_DELETECONVERSIONRESPONSE']._serialized_end=1480
_globals['_CONVERSIONSERVICE']._serialized_start=1664
_globals['_CONVERSIONSERVICE']._serialized_end=2252
# @@protoc_insertion_point(module_scope)
@@ -0,0 +1,124 @@
import datetime
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class ConversionStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = ()
CONVERSION_STATUS_UNSPECIFIED: _ClassVar[ConversionStatus]
CONVERSION_STATUS_PENDING: _ClassVar[ConversionStatus]
CONVERSION_STATUS_RUNNING: _ClassVar[ConversionStatus]
CONVERSION_STATUS_SUCCEEDED: _ClassVar[ConversionStatus]
CONVERSION_STATUS_FAILED: _ClassVar[ConversionStatus]
CONVERSION_STATUS_UNSPECIFIED: ConversionStatus
CONVERSION_STATUS_PENDING: ConversionStatus
CONVERSION_STATUS_RUNNING: ConversionStatus
CONVERSION_STATUS_SUCCEEDED: ConversionStatus
CONVERSION_STATUS_FAILED: ConversionStatus
class Slide(_message.Message):
__slots__ = ("index", "notes_plain", "image_url")
INDEX_FIELD_NUMBER: _ClassVar[int]
NOTES_PLAIN_FIELD_NUMBER: _ClassVar[int]
IMAGE_URL_FIELD_NUMBER: _ClassVar[int]
index: int
notes_plain: str
image_url: str
def __init__(self, index: _Optional[int] = ..., notes_plain: _Optional[str] = ..., image_url: _Optional[str] = ...) -> None: ...
class SlideDeck(_message.Message):
__slots__ = ("conversion_id", "source_filename", "slides", "created_at")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
SOURCE_FILENAME_FIELD_NUMBER: _ClassVar[int]
SLIDES_FIELD_NUMBER: _ClassVar[int]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
source_filename: str
slides: _containers.RepeatedCompositeFieldContainer[Slide]
created_at: _timestamp_pb2.Timestamp
def __init__(self, conversion_id: _Optional[str] = ..., source_filename: _Optional[str] = ..., slides: _Optional[_Iterable[_Union[Slide, _Mapping]]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class CreateConversionRequest(_message.Message):
__slots__ = ("source_filename",)
SOURCE_FILENAME_FIELD_NUMBER: _ClassVar[int]
source_filename: str
def __init__(self, source_filename: _Optional[str] = ...) -> None: ...
class CreateConversionResponse(_message.Message):
__slots__ = ("conversion_id", "upload_bucket", "upload_object_key", "upload_url", "expires_at")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
UPLOAD_BUCKET_FIELD_NUMBER: _ClassVar[int]
UPLOAD_OBJECT_KEY_FIELD_NUMBER: _ClassVar[int]
UPLOAD_URL_FIELD_NUMBER: _ClassVar[int]
EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
upload_bucket: str
upload_object_key: str
upload_url: str
expires_at: _timestamp_pb2.Timestamp
def __init__(self, conversion_id: _Optional[str] = ..., upload_bucket: _Optional[str] = ..., upload_object_key: _Optional[str] = ..., upload_url: _Optional[str] = ..., expires_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class StartConversionRequest(_message.Message):
__slots__ = ("conversion_id",)
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
def __init__(self, conversion_id: _Optional[str] = ...) -> None: ...
class StartConversionResponse(_message.Message):
__slots__ = ("conversion_id", "status")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
STATUS_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
status: ConversionStatus
def __init__(self, conversion_id: _Optional[str] = ..., status: _Optional[_Union[ConversionStatus, str]] = ...) -> None: ...
class GetConversionStatusRequest(_message.Message):
__slots__ = ("conversion_id",)
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
def __init__(self, conversion_id: _Optional[str] = ...) -> None: ...
class GetConversionStatusResponse(_message.Message):
__slots__ = ("conversion_id", "status", "error_message", "updated_at")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
STATUS_FIELD_NUMBER: _ClassVar[int]
ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
status: ConversionStatus
error_message: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, conversion_id: _Optional[str] = ..., status: _Optional[_Union[ConversionStatus, str]] = ..., error_message: _Optional[str] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class GetSlideDeckRequest(_message.Message):
__slots__ = ("conversion_id",)
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
def __init__(self, conversion_id: _Optional[str] = ...) -> None: ...
class GetSlideDeckResponse(_message.Message):
__slots__ = ("slide_deck",)
SLIDE_DECK_FIELD_NUMBER: _ClassVar[int]
slide_deck: SlideDeck
def __init__(self, slide_deck: _Optional[_Union[SlideDeck, _Mapping]] = ...) -> None: ...
class DeleteConversionRequest(_message.Message):
__slots__ = ("conversion_id",)
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
def __init__(self, conversion_id: _Optional[str] = ...) -> None: ...
class DeleteConversionResponse(_message.Message):
__slots__ = ("conversion_id", "deleted")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
DELETED_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
deleted: bool
def __init__(self, conversion_id: _Optional[str] = ..., deleted: _Optional[bool] = ...) -> None: ...