scalekit-sdk-python 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. buf/__init__.py +0 -0
  2. buf/validate/__init__.py +0 -0
  3. buf/validate/expression_pb2.py +31 -0
  4. buf/validate/expression_pb2.pyi +34 -0
  5. buf/validate/expression_pb2_grpc.py +4 -0
  6. buf/validate/priv/__init__.py +0 -0
  7. buf/validate/priv/private_pb2.py +30 -0
  8. buf/validate/priv/private_pb2.pyi +25 -0
  9. buf/validate/priv/private_pb2_grpc.py +4 -0
  10. buf/validate/validate_pb2.py +402 -0
  11. buf/validate/validate_pb2.pyi +503 -0
  12. buf/validate/validate_pb2_grpc.py +4 -0
  13. scalekit/__init__.py +4 -0
  14. scalekit/client.py +143 -0
  15. scalekit/common/__init__.py +0 -0
  16. scalekit/common/scalekit.py +49 -0
  17. scalekit/common/user.py +75 -0
  18. scalekit/connection.py +103 -0
  19. scalekit/constants/__init__.py +0 -0
  20. scalekit/constants/user.py +21 -0
  21. scalekit/core.py +169 -0
  22. scalekit/domain.py +73 -0
  23. scalekit/organization.py +181 -0
  24. scalekit/v1/__init__.py +0 -0
  25. scalekit/v1/clients/__init__.py +0 -0
  26. scalekit/v1/clients/clients_pb2.py +103 -0
  27. scalekit/v1/clients/clients_pb2.pyi +156 -0
  28. scalekit/v1/clients/clients_pb2_grpc.py +232 -0
  29. scalekit/v1/commons/__init__.py +0 -0
  30. scalekit/v1/commons/commons_pb2.py +36 -0
  31. scalekit/v1/commons/commons_pb2.pyi +30 -0
  32. scalekit/v1/commons/commons_pb2_grpc.py +4 -0
  33. scalekit/v1/connections/__init__.py +0 -0
  34. scalekit/v1/connections/connections_pb2.py +355 -0
  35. scalekit/v1/connections/connections_pb2.pyi +526 -0
  36. scalekit/v1/connections/connections_pb2_grpc.py +265 -0
  37. scalekit/v1/domains/__init__.py +0 -0
  38. scalekit/v1/domains/domains_pb2.py +92 -0
  39. scalekit/v1/domains/domains_pb2.pyi +153 -0
  40. scalekit/v1/domains/domains_pb2_grpc.py +199 -0
  41. scalekit/v1/environments/__init__.py +0 -0
  42. scalekit/v1/environments/environments_pb2.py +171 -0
  43. scalekit/v1/environments/environments_pb2.pyi +241 -0
  44. scalekit/v1/environments/environments_pb2_grpc.py +463 -0
  45. scalekit/v1/errdetails/__init__.py +0 -0
  46. scalekit/v1/errdetails/errdetails_pb2.py +44 -0
  47. scalekit/v1/errdetails/errdetails_pb2.pyi +89 -0
  48. scalekit/v1/errdetails/errdetails_pb2_grpc.py +4 -0
  49. scalekit/v1/events/__init__.py +0 -0
  50. scalekit/v1/events/events_pb2.py +39 -0
  51. scalekit/v1/events/events_pb2.pyi +62 -0
  52. scalekit/v1/events/events_pb2_grpc.py +4 -0
  53. scalekit/v1/members/__init__.py +0 -0
  54. scalekit/v1/members/members_pb2.py +105 -0
  55. scalekit/v1/members/members_pb2.pyi +142 -0
  56. scalekit/v1/members/members_pb2_grpc.py +271 -0
  57. scalekit/v1/options/__init__.py +0 -0
  58. scalekit/v1/options/options_pb2.py +30 -0
  59. scalekit/v1/options/options_pb2.pyi +44 -0
  60. scalekit/v1/options/options_pb2_grpc.py +4 -0
  61. scalekit/v1/organizations/__init__.py +0 -0
  62. scalekit/v1/organizations/organizations_pb2.py +168 -0
  63. scalekit/v1/organizations/organizations_pb2.pyi +190 -0
  64. scalekit/v1/organizations/organizations_pb2_grpc.py +301 -0
  65. scalekit/v1/users/__init__.py +0 -0
  66. scalekit/v1/users/users_pb2.py +97 -0
  67. scalekit/v1/users/users_pb2.pyi +136 -0
  68. scalekit/v1/users/users_pb2_grpc.py +199 -0
  69. scalekit/v1/workspaces/__init__.py +0 -0
  70. scalekit/v1/workspaces/workspaces_pb2.py +90 -0
  71. scalekit/v1/workspaces/workspaces_pb2.pyi +102 -0
  72. scalekit/v1/workspaces/workspaces_pb2_grpc.py +198 -0
  73. scalekit_sdk_python-1.0.0.dist-info/LICENSE +21 -0
  74. scalekit_sdk_python-1.0.0.dist-info/METADATA +67 -0
  75. scalekit_sdk_python-1.0.0.dist-info/RECORD +77 -0
  76. scalekit_sdk_python-1.0.0.dist-info/WHEEL +5 -0
  77. scalekit_sdk_python-1.0.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,199 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
6
+ from scalekit.v1.users import users_pb2 as scalekit_dot_v1_dot_users_dot_users__pb2
7
+
8
+
9
+ class UserServiceStub(object):
10
+ """Missing associated documentation comment in .proto file."""
11
+
12
+ def __init__(self, channel):
13
+ """Constructor.
14
+
15
+ Args:
16
+ channel: A grpc.Channel.
17
+ """
18
+ self.CreateUser = channel.unary_unary(
19
+ '/scalekit.v1.users.UserService/CreateUser',
20
+ request_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserRequest.SerializeToString,
21
+ response_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserResponse.FromString,
22
+ )
23
+ self.UpdateUser = channel.unary_unary(
24
+ '/scalekit.v1.users.UserService/UpdateUser',
25
+ request_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserRequest.SerializeToString,
26
+ response_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserResponse.FromString,
27
+ )
28
+ self.GetUser = channel.unary_unary(
29
+ '/scalekit.v1.users.UserService/GetUser',
30
+ request_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.GetUserRequest.SerializeToString,
31
+ response_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.GetUserResponse.FromString,
32
+ )
33
+ self.ListUsers = channel.unary_unary(
34
+ '/scalekit.v1.users.UserService/ListUsers',
35
+ request_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.ListUserRequest.SerializeToString,
36
+ response_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.ListUserResponse.FromString,
37
+ )
38
+ self.DeleteUser = channel.unary_unary(
39
+ '/scalekit.v1.users.UserService/DeleteUser',
40
+ request_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.DeleteUserRequest.SerializeToString,
41
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
42
+ )
43
+
44
+
45
+ class UserServiceServicer(object):
46
+ """Missing associated documentation comment in .proto file."""
47
+
48
+ def CreateUser(self, request, context):
49
+ """Missing associated documentation comment in .proto file."""
50
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
51
+ context.set_details('Method not implemented!')
52
+ raise NotImplementedError('Method not implemented!')
53
+
54
+ def UpdateUser(self, request, context):
55
+ """Missing associated documentation comment in .proto file."""
56
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
57
+ context.set_details('Method not implemented!')
58
+ raise NotImplementedError('Method not implemented!')
59
+
60
+ def GetUser(self, request, context):
61
+ """Missing associated documentation comment in .proto file."""
62
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
63
+ context.set_details('Method not implemented!')
64
+ raise NotImplementedError('Method not implemented!')
65
+
66
+ def ListUsers(self, request, context):
67
+ """Missing associated documentation comment in .proto file."""
68
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
69
+ context.set_details('Method not implemented!')
70
+ raise NotImplementedError('Method not implemented!')
71
+
72
+ def DeleteUser(self, request, context):
73
+ """Missing associated documentation comment in .proto file."""
74
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
75
+ context.set_details('Method not implemented!')
76
+ raise NotImplementedError('Method not implemented!')
77
+
78
+
79
+ def add_UserServiceServicer_to_server(servicer, server):
80
+ rpc_method_handlers = {
81
+ 'CreateUser': grpc.unary_unary_rpc_method_handler(
82
+ servicer.CreateUser,
83
+ request_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserRequest.FromString,
84
+ response_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserResponse.SerializeToString,
85
+ ),
86
+ 'UpdateUser': grpc.unary_unary_rpc_method_handler(
87
+ servicer.UpdateUser,
88
+ request_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserRequest.FromString,
89
+ response_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserResponse.SerializeToString,
90
+ ),
91
+ 'GetUser': grpc.unary_unary_rpc_method_handler(
92
+ servicer.GetUser,
93
+ request_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.GetUserRequest.FromString,
94
+ response_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.GetUserResponse.SerializeToString,
95
+ ),
96
+ 'ListUsers': grpc.unary_unary_rpc_method_handler(
97
+ servicer.ListUsers,
98
+ request_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.ListUserRequest.FromString,
99
+ response_serializer=scalekit_dot_v1_dot_users_dot_users__pb2.ListUserResponse.SerializeToString,
100
+ ),
101
+ 'DeleteUser': grpc.unary_unary_rpc_method_handler(
102
+ servicer.DeleteUser,
103
+ request_deserializer=scalekit_dot_v1_dot_users_dot_users__pb2.DeleteUserRequest.FromString,
104
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
105
+ ),
106
+ }
107
+ generic_handler = grpc.method_handlers_generic_handler(
108
+ 'scalekit.v1.users.UserService', rpc_method_handlers)
109
+ server.add_generic_rpc_handlers((generic_handler,))
110
+
111
+
112
+ # This class is part of an EXPERIMENTAL API.
113
+ class UserService(object):
114
+ """Missing associated documentation comment in .proto file."""
115
+
116
+ @staticmethod
117
+ def CreateUser(request,
118
+ target,
119
+ options=(),
120
+ channel_credentials=None,
121
+ call_credentials=None,
122
+ insecure=False,
123
+ compression=None,
124
+ wait_for_ready=None,
125
+ timeout=None,
126
+ metadata=None):
127
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.users.UserService/CreateUser',
128
+ scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserRequest.SerializeToString,
129
+ scalekit_dot_v1_dot_users_dot_users__pb2.CreateUserResponse.FromString,
130
+ options, channel_credentials,
131
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
132
+
133
+ @staticmethod
134
+ def UpdateUser(request,
135
+ target,
136
+ options=(),
137
+ channel_credentials=None,
138
+ call_credentials=None,
139
+ insecure=False,
140
+ compression=None,
141
+ wait_for_ready=None,
142
+ timeout=None,
143
+ metadata=None):
144
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.users.UserService/UpdateUser',
145
+ scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserRequest.SerializeToString,
146
+ scalekit_dot_v1_dot_users_dot_users__pb2.UpdateUserResponse.FromString,
147
+ options, channel_credentials,
148
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
149
+
150
+ @staticmethod
151
+ def GetUser(request,
152
+ target,
153
+ options=(),
154
+ channel_credentials=None,
155
+ call_credentials=None,
156
+ insecure=False,
157
+ compression=None,
158
+ wait_for_ready=None,
159
+ timeout=None,
160
+ metadata=None):
161
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.users.UserService/GetUser',
162
+ scalekit_dot_v1_dot_users_dot_users__pb2.GetUserRequest.SerializeToString,
163
+ scalekit_dot_v1_dot_users_dot_users__pb2.GetUserResponse.FromString,
164
+ options, channel_credentials,
165
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
166
+
167
+ @staticmethod
168
+ def ListUsers(request,
169
+ target,
170
+ options=(),
171
+ channel_credentials=None,
172
+ call_credentials=None,
173
+ insecure=False,
174
+ compression=None,
175
+ wait_for_ready=None,
176
+ timeout=None,
177
+ metadata=None):
178
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.users.UserService/ListUsers',
179
+ scalekit_dot_v1_dot_users_dot_users__pb2.ListUserRequest.SerializeToString,
180
+ scalekit_dot_v1_dot_users_dot_users__pb2.ListUserResponse.FromString,
181
+ options, channel_credentials,
182
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
183
+
184
+ @staticmethod
185
+ def DeleteUser(request,
186
+ target,
187
+ options=(),
188
+ channel_credentials=None,
189
+ call_credentials=None,
190
+ insecure=False,
191
+ compression=None,
192
+ wait_for_ready=None,
193
+ timeout=None,
194
+ metadata=None):
195
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.users.UserService/DeleteUser',
196
+ scalekit_dot_v1_dot_users_dot_users__pb2.DeleteUserRequest.SerializeToString,
197
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
198
+ options, channel_credentials,
199
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
File without changes
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: scalekit/v1/workspaces/workspaces.proto
4
+ # Protobuf Python Version: 5.26.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
16
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
17
+ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
18
+ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
19
+ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
20
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
21
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
22
+ from scalekit.v1.commons import commons_pb2 as scalekit_dot_v1_dot_commons_dot_commons__pb2
23
+ from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
24
+
25
+
26
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'scalekit/v1/workspaces/workspaces.proto\x12\x16scalekit.v1.workspaces\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scalekit/v1/commons/commons.proto\x1a!scalekit/v1/options/options.proto\"\x96\x02\n\tWorkspace\x12\x1e\n\x02id\x18\x01 \x01(\tB\x0e\xbaH\x0br\t\x10\x01\x18 :\x03\x65nvR\x02id\x12;\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ncreateTime\x12;\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\nupdateTime\x12-\n\x0c\x64isplay_name\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\xc8\x01R\x0b\x64isplayName\x12@\n\x0bregion_code\x18\x06 \x01(\x0e\x32\x1f.scalekit.v1.commons.RegionCodeR\nregionCode\"\x89\x02\n\x0f\x43reateWorkspace\x12V\n\x05\x65mail\x18\x01 \x01(\tB@\xbaH=\xba\x01:\n\x0bvalid_email\x12\x1b\x65mail must be a valid email\x1a\x0ethis.isEmail()R\x05\x65mail\x12)\n\x07\x63ompany\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\x80\x02H\x00R\x07\x63ompany\x88\x01\x01\x12P\n\x12send_welcome_email\x18\x03 \x01(\x0e\x32\x1d.scalekit.v1.workspaces.YesNoH\x01R\x10sendWelcomeEmail\x88\x01\x01\x42\n\n\x08_companyB\x15\n\x13_send_welcome_email\"@\n\x0fUpdateWorkspace\x12-\n\x0c\x64isplay_name\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\x80\x02R\x0b\x64isplayName\"g\n\x16\x43reateWorkspaceRequest\x12M\n\tworkspace\x18\x01 \x01(\x0b\x32\'.scalekit.v1.workspaces.CreateWorkspaceB\x06\xbaH\x03\xc8\x01\x01R\tworkspace\"n\n\x17\x43reateWorkspaceResponse\x12?\n\tworkspace\x18\x01 \x01(\x0b\x32!.scalekit.v1.workspaces.WorkspaceR\tworkspace\x12\x12\n\x04link\x18\x02 \x01(\tR\x04link\"\x87\x01\n\x16UpdateWorkspaceRequest\x12\x1e\n\x02id\x18\x01 \x01(\tB\x0e\xbaH\x0br\t\x10\x01\x18 :\x03wksR\x02id\x12M\n\tworkspace\x18\x02 \x01(\x0b\x32\'.scalekit.v1.workspaces.UpdateWorkspaceB\x06\xbaH\x03\xc8\x01\x01R\tworkspace\"n\n\x1dUpdateCurrentWorkspaceRequest\x12M\n\tworkspace\x18\x01 \x01(\x0b\x32\'.scalekit.v1.workspaces.UpdateWorkspaceB\x06\xbaH\x03\xc8\x01\x01R\tworkspace\"Z\n\x17UpdateWorkspaceResponse\x12?\n\tworkspace\x18\x01 \x01(\x0b\x32!.scalekit.v1.workspaces.WorkspaceR\tworkspace\"5\n\x13GetWorkspaceRequest\x12\x1e\n\x02id\x18\x01 \x01(\tB\x0e\xbaH\x0br\t\x10\x01\x18 :\x03wksR\x02id\"\x1c\n\x1aGetCurrentWorkspaceRequest\"W\n\x14GetWorkspaceResponse\x12?\n\tworkspace\x18\x01 \x01(\x0b\x32!.scalekit.v1.workspaces.WorkspaceR\tworkspace*\x18\n\x05YesNo\x12\x07\n\x03YES\x10\x00\x12\x06\n\x02NO\x10\x01\x32\xc0\x06\n\x10WorkspaceService\x12\x9b\x01\n\x0f\x43reateWorkspace\x12..scalekit.v1.workspaces.CreateWorkspaceRequest\x1a/.scalekit.v1.workspaces.CreateWorkspaceResponse\"\'\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x1b\"\x0e/api/v1/signup:\tworkspace\x12\x90\x01\n\x0cGetWorkspace\x12+.scalekit.v1.workspaces.GetWorkspaceRequest\x1a,.scalekit.v1.workspaces.GetWorkspaceResponse\"%\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/workspaces/{id}\x12\x9e\x01\n\x13GetCurrentWorkspace\x12\x32.scalekit.v1.workspaces.GetCurrentWorkspaceRequest\x1a,.scalekit.v1.workspaces.GetWorkspaceResponse\"%\x82\xb5\x18\x02\x18P\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/workspaces:this\x12\xa4\x01\n\x0fUpdateWorkspace\x12..scalekit.v1.workspaces.UpdateWorkspaceRequest\x1a/.scalekit.v1.workspaces.UpdateWorkspaceResponse\"0\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02$2\x17/api/v1/workspaces/{id}:\tworkspace\x12\xb2\x01\n\x16UpdateCurrentWorkspace\x12\x35.scalekit.v1.workspaces.UpdateCurrentWorkspaceRequest\x1a/.scalekit.v1.workspaces.UpdateWorkspaceResponse\"0\x82\xb5\x18\x02\x18P\x82\xd3\xe4\x93\x02$2\x17/api/v1/workspaces:this:\tworkspaceB6Z4github.com/scalekit-inc/scalekit/pkg/grpc/workspacesb\x06proto3')
27
+
28
+ _globals = globals()
29
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
30
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'scalekit.v1.workspaces.workspaces_pb2', _globals)
31
+ if not _descriptor._USE_C_DESCRIPTORS:
32
+ _globals['DESCRIPTOR']._loaded_options = None
33
+ _globals['DESCRIPTOR']._serialized_options = b'Z4github.com/scalekit-inc/scalekit/pkg/grpc/workspaces'
34
+ _globals['_WORKSPACE'].fields_by_name['id']._loaded_options = None
35
+ _globals['_WORKSPACE'].fields_by_name['id']._serialized_options = b'\272H\013r\t\020\001\030 :\003env'
36
+ _globals['_WORKSPACE'].fields_by_name['display_name']._loaded_options = None
37
+ _globals['_WORKSPACE'].fields_by_name['display_name']._serialized_options = b'\272H\007r\005\020\001\030\310\001'
38
+ _globals['_CREATEWORKSPACE'].fields_by_name['email']._loaded_options = None
39
+ _globals['_CREATEWORKSPACE'].fields_by_name['email']._serialized_options = b'\272H=\272\001:\n\013valid_email\022\033email must be a valid email\032\016this.isEmail()'
40
+ _globals['_CREATEWORKSPACE'].fields_by_name['company']._loaded_options = None
41
+ _globals['_CREATEWORKSPACE'].fields_by_name['company']._serialized_options = b'\272H\007r\005\020\001\030\200\002'
42
+ _globals['_UPDATEWORKSPACE'].fields_by_name['display_name']._loaded_options = None
43
+ _globals['_UPDATEWORKSPACE'].fields_by_name['display_name']._serialized_options = b'\272H\007r\005\020\001\030\200\002'
44
+ _globals['_CREATEWORKSPACEREQUEST'].fields_by_name['workspace']._loaded_options = None
45
+ _globals['_CREATEWORKSPACEREQUEST'].fields_by_name['workspace']._serialized_options = b'\272H\003\310\001\001'
46
+ _globals['_UPDATEWORKSPACEREQUEST'].fields_by_name['id']._loaded_options = None
47
+ _globals['_UPDATEWORKSPACEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\013r\t\020\001\030 :\003wks'
48
+ _globals['_UPDATEWORKSPACEREQUEST'].fields_by_name['workspace']._loaded_options = None
49
+ _globals['_UPDATEWORKSPACEREQUEST'].fields_by_name['workspace']._serialized_options = b'\272H\003\310\001\001'
50
+ _globals['_UPDATECURRENTWORKSPACEREQUEST'].fields_by_name['workspace']._loaded_options = None
51
+ _globals['_UPDATECURRENTWORKSPACEREQUEST'].fields_by_name['workspace']._serialized_options = b'\272H\003\310\001\001'
52
+ _globals['_GETWORKSPACEREQUEST'].fields_by_name['id']._loaded_options = None
53
+ _globals['_GETWORKSPACEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\013r\t\020\001\030 :\003wks'
54
+ _globals['_WORKSPACESERVICE'].methods_by_name['CreateWorkspace']._loaded_options = None
55
+ _globals['_WORKSPACESERVICE'].methods_by_name['CreateWorkspace']._serialized_options = b'\202\265\030\002\030\001\202\323\344\223\002\033\"\016/api/v1/signup:\tworkspace'
56
+ _globals['_WORKSPACESERVICE'].methods_by_name['GetWorkspace']._loaded_options = None
57
+ _globals['_WORKSPACESERVICE'].methods_by_name['GetWorkspace']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002\031\022\027/api/v1/workspaces/{id}'
58
+ _globals['_WORKSPACESERVICE'].methods_by_name['GetCurrentWorkspace']._loaded_options = None
59
+ _globals['_WORKSPACESERVICE'].methods_by_name['GetCurrentWorkspace']._serialized_options = b'\202\265\030\002\030P\202\323\344\223\002\031\022\027/api/v1/workspaces:this'
60
+ _globals['_WORKSPACESERVICE'].methods_by_name['UpdateWorkspace']._loaded_options = None
61
+ _globals['_WORKSPACESERVICE'].methods_by_name['UpdateWorkspace']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002$2\027/api/v1/workspaces/{id}:\tworkspace'
62
+ _globals['_WORKSPACESERVICE'].methods_by_name['UpdateCurrentWorkspace']._loaded_options = None
63
+ _globals['_WORKSPACESERVICE'].methods_by_name['UpdateCurrentWorkspace']._serialized_options = b'\202\265\030\002\030P\202\323\344\223\002$2\027/api/v1/workspaces:this:\tworkspace'
64
+ _globals['_YESNO']._serialized_start=1698
65
+ _globals['_YESNO']._serialized_end=1722
66
+ _globals['_WORKSPACE']._serialized_start=351
67
+ _globals['_WORKSPACE']._serialized_end=629
68
+ _globals['_CREATEWORKSPACE']._serialized_start=632
69
+ _globals['_CREATEWORKSPACE']._serialized_end=897
70
+ _globals['_UPDATEWORKSPACE']._serialized_start=899
71
+ _globals['_UPDATEWORKSPACE']._serialized_end=963
72
+ _globals['_CREATEWORKSPACEREQUEST']._serialized_start=965
73
+ _globals['_CREATEWORKSPACEREQUEST']._serialized_end=1068
74
+ _globals['_CREATEWORKSPACERESPONSE']._serialized_start=1070
75
+ _globals['_CREATEWORKSPACERESPONSE']._serialized_end=1180
76
+ _globals['_UPDATEWORKSPACEREQUEST']._serialized_start=1183
77
+ _globals['_UPDATEWORKSPACEREQUEST']._serialized_end=1318
78
+ _globals['_UPDATECURRENTWORKSPACEREQUEST']._serialized_start=1320
79
+ _globals['_UPDATECURRENTWORKSPACEREQUEST']._serialized_end=1430
80
+ _globals['_UPDATEWORKSPACERESPONSE']._serialized_start=1432
81
+ _globals['_UPDATEWORKSPACERESPONSE']._serialized_end=1522
82
+ _globals['_GETWORKSPACEREQUEST']._serialized_start=1524
83
+ _globals['_GETWORKSPACEREQUEST']._serialized_end=1577
84
+ _globals['_GETCURRENTWORKSPACEREQUEST']._serialized_start=1579
85
+ _globals['_GETCURRENTWORKSPACEREQUEST']._serialized_end=1607
86
+ _globals['_GETWORKSPACERESPONSE']._serialized_start=1609
87
+ _globals['_GETWORKSPACERESPONSE']._serialized_end=1696
88
+ _globals['_WORKSPACESERVICE']._serialized_start=1725
89
+ _globals['_WORKSPACESERVICE']._serialized_end=2557
90
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,102 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
2
+ from google.api import annotations_pb2 as _annotations_pb2
3
+ from google.api import field_behavior_pb2 as _field_behavior_pb2
4
+ from google.protobuf import any_pb2 as _any_pb2
5
+ from google.protobuf import duration_pb2 as _duration_pb2
6
+ from google.protobuf import empty_pb2 as _empty_pb2
7
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
8
+ from scalekit.v1.commons import commons_pb2 as _commons_pb2
9
+ from scalekit.v1.options import options_pb2 as _options_pb2
10
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
11
+ from google.protobuf import descriptor as _descriptor
12
+ from google.protobuf import message as _message
13
+ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
14
+
15
+ DESCRIPTOR: _descriptor.FileDescriptor
16
+
17
+ class YesNo(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
18
+ __slots__ = ()
19
+ YES: _ClassVar[YesNo]
20
+ NO: _ClassVar[YesNo]
21
+ YES: YesNo
22
+ NO: YesNo
23
+
24
+ class Workspace(_message.Message):
25
+ __slots__ = ("id", "create_time", "update_time", "display_name", "region_code")
26
+ ID_FIELD_NUMBER: _ClassVar[int]
27
+ CREATE_TIME_FIELD_NUMBER: _ClassVar[int]
28
+ UPDATE_TIME_FIELD_NUMBER: _ClassVar[int]
29
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
30
+ REGION_CODE_FIELD_NUMBER: _ClassVar[int]
31
+ id: str
32
+ create_time: _timestamp_pb2.Timestamp
33
+ update_time: _timestamp_pb2.Timestamp
34
+ display_name: str
35
+ region_code: _commons_pb2.RegionCode
36
+ def __init__(self, id: _Optional[str] = ..., create_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., update_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., display_name: _Optional[str] = ..., region_code: _Optional[_Union[_commons_pb2.RegionCode, str]] = ...) -> None: ...
37
+
38
+ class CreateWorkspace(_message.Message):
39
+ __slots__ = ("email", "company", "send_welcome_email")
40
+ EMAIL_FIELD_NUMBER: _ClassVar[int]
41
+ COMPANY_FIELD_NUMBER: _ClassVar[int]
42
+ SEND_WELCOME_EMAIL_FIELD_NUMBER: _ClassVar[int]
43
+ email: str
44
+ company: str
45
+ send_welcome_email: YesNo
46
+ def __init__(self, email: _Optional[str] = ..., company: _Optional[str] = ..., send_welcome_email: _Optional[_Union[YesNo, str]] = ...) -> None: ...
47
+
48
+ class UpdateWorkspace(_message.Message):
49
+ __slots__ = ("display_name",)
50
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
51
+ display_name: str
52
+ def __init__(self, display_name: _Optional[str] = ...) -> None: ...
53
+
54
+ class CreateWorkspaceRequest(_message.Message):
55
+ __slots__ = ("workspace",)
56
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
57
+ workspace: CreateWorkspace
58
+ def __init__(self, workspace: _Optional[_Union[CreateWorkspace, _Mapping]] = ...) -> None: ...
59
+
60
+ class CreateWorkspaceResponse(_message.Message):
61
+ __slots__ = ("workspace", "link")
62
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
63
+ LINK_FIELD_NUMBER: _ClassVar[int]
64
+ workspace: Workspace
65
+ link: str
66
+ def __init__(self, workspace: _Optional[_Union[Workspace, _Mapping]] = ..., link: _Optional[str] = ...) -> None: ...
67
+
68
+ class UpdateWorkspaceRequest(_message.Message):
69
+ __slots__ = ("id", "workspace")
70
+ ID_FIELD_NUMBER: _ClassVar[int]
71
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
72
+ id: str
73
+ workspace: UpdateWorkspace
74
+ def __init__(self, id: _Optional[str] = ..., workspace: _Optional[_Union[UpdateWorkspace, _Mapping]] = ...) -> None: ...
75
+
76
+ class UpdateCurrentWorkspaceRequest(_message.Message):
77
+ __slots__ = ("workspace",)
78
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
79
+ workspace: UpdateWorkspace
80
+ def __init__(self, workspace: _Optional[_Union[UpdateWorkspace, _Mapping]] = ...) -> None: ...
81
+
82
+ class UpdateWorkspaceResponse(_message.Message):
83
+ __slots__ = ("workspace",)
84
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
85
+ workspace: Workspace
86
+ def __init__(self, workspace: _Optional[_Union[Workspace, _Mapping]] = ...) -> None: ...
87
+
88
+ class GetWorkspaceRequest(_message.Message):
89
+ __slots__ = ("id",)
90
+ ID_FIELD_NUMBER: _ClassVar[int]
91
+ id: str
92
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
93
+
94
+ class GetCurrentWorkspaceRequest(_message.Message):
95
+ __slots__ = ()
96
+ def __init__(self) -> None: ...
97
+
98
+ class GetWorkspaceResponse(_message.Message):
99
+ __slots__ = ("workspace",)
100
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
101
+ workspace: Workspace
102
+ def __init__(self, workspace: _Optional[_Union[Workspace, _Mapping]] = ...) -> None: ...
@@ -0,0 +1,198 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from scalekit.v1.workspaces import workspaces_pb2 as scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2
6
+
7
+
8
+ class WorkspaceServiceStub(object):
9
+ """Missing associated documentation comment in .proto file."""
10
+
11
+ def __init__(self, channel):
12
+ """Constructor.
13
+
14
+ Args:
15
+ channel: A grpc.Channel.
16
+ """
17
+ self.CreateWorkspace = channel.unary_unary(
18
+ '/scalekit.v1.workspaces.WorkspaceService/CreateWorkspace',
19
+ request_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceRequest.SerializeToString,
20
+ response_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceResponse.FromString,
21
+ )
22
+ self.GetWorkspace = channel.unary_unary(
23
+ '/scalekit.v1.workspaces.WorkspaceService/GetWorkspace',
24
+ request_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceRequest.SerializeToString,
25
+ response_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.FromString,
26
+ )
27
+ self.GetCurrentWorkspace = channel.unary_unary(
28
+ '/scalekit.v1.workspaces.WorkspaceService/GetCurrentWorkspace',
29
+ request_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetCurrentWorkspaceRequest.SerializeToString,
30
+ response_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.FromString,
31
+ )
32
+ self.UpdateWorkspace = channel.unary_unary(
33
+ '/scalekit.v1.workspaces.WorkspaceService/UpdateWorkspace',
34
+ request_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceRequest.SerializeToString,
35
+ response_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.FromString,
36
+ )
37
+ self.UpdateCurrentWorkspace = channel.unary_unary(
38
+ '/scalekit.v1.workspaces.WorkspaceService/UpdateCurrentWorkspace',
39
+ request_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateCurrentWorkspaceRequest.SerializeToString,
40
+ response_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.FromString,
41
+ )
42
+
43
+
44
+ class WorkspaceServiceServicer(object):
45
+ """Missing associated documentation comment in .proto file."""
46
+
47
+ def CreateWorkspace(self, request, context):
48
+ """Missing associated documentation comment in .proto file."""
49
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
50
+ context.set_details('Method not implemented!')
51
+ raise NotImplementedError('Method not implemented!')
52
+
53
+ def GetWorkspace(self, request, context):
54
+ """Missing associated documentation comment in .proto file."""
55
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
56
+ context.set_details('Method not implemented!')
57
+ raise NotImplementedError('Method not implemented!')
58
+
59
+ def GetCurrentWorkspace(self, request, context):
60
+ """Missing associated documentation comment in .proto file."""
61
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
62
+ context.set_details('Method not implemented!')
63
+ raise NotImplementedError('Method not implemented!')
64
+
65
+ def UpdateWorkspace(self, request, context):
66
+ """Missing associated documentation comment in .proto file."""
67
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
68
+ context.set_details('Method not implemented!')
69
+ raise NotImplementedError('Method not implemented!')
70
+
71
+ def UpdateCurrentWorkspace(self, request, context):
72
+ """Missing associated documentation comment in .proto file."""
73
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
74
+ context.set_details('Method not implemented!')
75
+ raise NotImplementedError('Method not implemented!')
76
+
77
+
78
+ def add_WorkspaceServiceServicer_to_server(servicer, server):
79
+ rpc_method_handlers = {
80
+ 'CreateWorkspace': grpc.unary_unary_rpc_method_handler(
81
+ servicer.CreateWorkspace,
82
+ request_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceRequest.FromString,
83
+ response_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceResponse.SerializeToString,
84
+ ),
85
+ 'GetWorkspace': grpc.unary_unary_rpc_method_handler(
86
+ servicer.GetWorkspace,
87
+ request_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceRequest.FromString,
88
+ response_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.SerializeToString,
89
+ ),
90
+ 'GetCurrentWorkspace': grpc.unary_unary_rpc_method_handler(
91
+ servicer.GetCurrentWorkspace,
92
+ request_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetCurrentWorkspaceRequest.FromString,
93
+ response_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.SerializeToString,
94
+ ),
95
+ 'UpdateWorkspace': grpc.unary_unary_rpc_method_handler(
96
+ servicer.UpdateWorkspace,
97
+ request_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceRequest.FromString,
98
+ response_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.SerializeToString,
99
+ ),
100
+ 'UpdateCurrentWorkspace': grpc.unary_unary_rpc_method_handler(
101
+ servicer.UpdateCurrentWorkspace,
102
+ request_deserializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateCurrentWorkspaceRequest.FromString,
103
+ response_serializer=scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.SerializeToString,
104
+ ),
105
+ }
106
+ generic_handler = grpc.method_handlers_generic_handler(
107
+ 'scalekit.v1.workspaces.WorkspaceService', rpc_method_handlers)
108
+ server.add_generic_rpc_handlers((generic_handler,))
109
+
110
+
111
+ # This class is part of an EXPERIMENTAL API.
112
+ class WorkspaceService(object):
113
+ """Missing associated documentation comment in .proto file."""
114
+
115
+ @staticmethod
116
+ def CreateWorkspace(request,
117
+ target,
118
+ options=(),
119
+ channel_credentials=None,
120
+ call_credentials=None,
121
+ insecure=False,
122
+ compression=None,
123
+ wait_for_ready=None,
124
+ timeout=None,
125
+ metadata=None):
126
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.workspaces.WorkspaceService/CreateWorkspace',
127
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceRequest.SerializeToString,
128
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.CreateWorkspaceResponse.FromString,
129
+ options, channel_credentials,
130
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
131
+
132
+ @staticmethod
133
+ def GetWorkspace(request,
134
+ target,
135
+ options=(),
136
+ channel_credentials=None,
137
+ call_credentials=None,
138
+ insecure=False,
139
+ compression=None,
140
+ wait_for_ready=None,
141
+ timeout=None,
142
+ metadata=None):
143
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.workspaces.WorkspaceService/GetWorkspace',
144
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceRequest.SerializeToString,
145
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.FromString,
146
+ options, channel_credentials,
147
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
148
+
149
+ @staticmethod
150
+ def GetCurrentWorkspace(request,
151
+ target,
152
+ options=(),
153
+ channel_credentials=None,
154
+ call_credentials=None,
155
+ insecure=False,
156
+ compression=None,
157
+ wait_for_ready=None,
158
+ timeout=None,
159
+ metadata=None):
160
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.workspaces.WorkspaceService/GetCurrentWorkspace',
161
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetCurrentWorkspaceRequest.SerializeToString,
162
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.GetWorkspaceResponse.FromString,
163
+ options, channel_credentials,
164
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
165
+
166
+ @staticmethod
167
+ def UpdateWorkspace(request,
168
+ target,
169
+ options=(),
170
+ channel_credentials=None,
171
+ call_credentials=None,
172
+ insecure=False,
173
+ compression=None,
174
+ wait_for_ready=None,
175
+ timeout=None,
176
+ metadata=None):
177
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.workspaces.WorkspaceService/UpdateWorkspace',
178
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceRequest.SerializeToString,
179
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.FromString,
180
+ options, channel_credentials,
181
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
182
+
183
+ @staticmethod
184
+ def UpdateCurrentWorkspace(request,
185
+ target,
186
+ options=(),
187
+ channel_credentials=None,
188
+ call_credentials=None,
189
+ insecure=False,
190
+ compression=None,
191
+ wait_for_ready=None,
192
+ timeout=None,
193
+ metadata=None):
194
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.workspaces.WorkspaceService/UpdateCurrentWorkspace',
195
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateCurrentWorkspaceRequest.SerializeToString,
196
+ scalekit_dot_v1_dot_workspaces_dot_workspaces__pb2.UpdateWorkspaceResponse.FromString,
197
+ options, channel_credentials,
198
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Scalekit Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.