mcsmapi 0.1.6__py3-none-any.whl → 0.1.8b1__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.
@@ -1,112 +1,203 @@
1
- from typing import Dict, List, Optional
1
+ from enum import Enum
2
+ from typing import Literal
2
3
  from pydantic import BaseModel
4
+ from mcsmapi.models.common import CpuMemChart, ProcessInfo
3
5
  from mcsmapi.models.daemon import DaemonModel
4
6
 
5
7
 
6
8
  class SystemUser(BaseModel):
7
9
  """系统用户信息"""
8
10
 
11
+ uid: int
9
12
  """用户 ID (UID)"""
10
- uid: int = 0
13
+ gid: int
11
14
  """用户组 ID (GID)"""
12
- gid: int = 0
15
+ username: str
13
16
  """用户名"""
14
- username: str = ""
17
+ homedir: str
15
18
  """用户主目录"""
16
- homedir: str = ""
17
- """默认 Shell 解释器 (可选)"""
18
- shell: Optional[str] = None
19
+ shell: str | None
20
+ """默认 Shell 解释器"""
19
21
 
20
22
 
21
23
  class SystemInfo(BaseModel):
22
24
  """系统信息"""
23
25
 
26
+ user: SystemUser
24
27
  """当前登录用户信息"""
25
- user: SystemUser = SystemUser()
28
+ time: int
26
29
  """系统当前时间 (Unix 时间戳)"""
27
- time: int = 0
30
+ totalmem: int
28
31
  """系统总内存大小 (单位: 字节)"""
29
- totalmem: int = 0
32
+ freemem: int
30
33
  """系统空闲内存大小 (单位: 字节)"""
31
- freemem: int = 0
34
+ type: str
32
35
  """操作系统类型"""
33
- type: str = ""
36
+ version: str
34
37
  """操作系统版本"""
35
- version: str = ""
36
- """系统节点名称"""
37
- node: str = ""
38
+ node: str
39
+ """系统NodeJS版本"""
40
+ hostname: str
38
41
  """主机名"""
39
- hostname: str = ""
42
+ loadavg: tuple[float, float, float]
40
43
  """系统负载平均值 (过去 1、5、15 分钟)"""
41
- loadavg: List[float] = []
44
+ platform: str
42
45
  """操作系统平台"""
43
- platform: str = ""
46
+ release: str
44
47
  """系统发行版本信息"""
45
- release: str = ""
48
+ uptime: float
46
49
  """系统运行时间 (单位: 秒)"""
47
- uptime: float = 0
50
+ cpu: float
48
51
  """CPU 当前使用率 (单位: %)"""
49
- cpu: float = 0
50
52
 
51
53
 
52
54
  class RecordInfo(BaseModel):
53
55
  """安全记录信息"""
54
56
 
55
- """成功登录次数"""
56
- logined: int = 0
57
+ logined: int
58
+ """登录成功次数"""
59
+ illegalAccess: int
57
60
  """非法访问次数"""
58
- illegalAccess: int = 0
61
+ banips: int
59
62
  """被封禁的 IP 数量"""
60
- banips: int = 0
63
+ loginFailed: int
61
64
  """登录失败次数"""
62
- loginFailed: int = 0
63
65
 
64
66
 
65
- class ChartInfo(BaseModel):
66
- """图表数据信息"""
67
+ class RequestChart(BaseModel):
68
+ """应用实例运行和接口请求量趋势"""
67
69
 
68
- """系统性能数据 (CPU/内存等)"""
69
- system: List[Dict[str, float]] = []
70
- """请求统计信息 (HTTP 请求数等)"""
71
- request: List[Dict[str, int]] = []
70
+ value: int
71
+ """接口请求量"""
72
+ totalInstance: int
73
+ """总实例数量"""
74
+ runningInstance: int
75
+ """运行中实例数量"""
72
76
 
73
77
 
74
- class ProcessInfo(BaseModel):
75
- """进程信息"""
78
+ class ChartInfo(BaseModel):
79
+ """图表数据信息"""
76
80
 
77
- """CPU 使用率 (单位: %)"""
78
- cpu: int = 0
79
- """进程占用内存 (单位: KB)"""
80
- memory: int = 0
81
- """进程当前工作目录"""
82
- cwd: str = ""
81
+ system: list[CpuMemChart]
82
+ """系统资源使用趋势"""
83
+ request: list[RequestChart]
84
+ """应用实例运行和接口请求量趋势"""
83
85
 
84
86
 
85
87
  class RemoteCountInfo(BaseModel):
86
- """远程守护进程统计信息"""
88
+ """远程节点统计信息"""
87
89
 
88
- """远程守护进程总数"""
89
- total: int = 0
90
- """可用的远程守护进程数量"""
91
- available: int = 0
90
+ total: int
91
+ """远程节点总数"""
92
+ available: int
93
+ """可用的远程节点数量"""
92
94
 
93
95
 
94
96
  class OverviewModel(BaseModel):
95
97
  """系统概览信息"""
96
98
 
97
- """系统当前版本"""
98
- version: str = ""
99
- """指定的守护进程 (Daemon) 版本"""
100
- specifiedDaemonVersion: str = ""
99
+ version: str
100
+ """面板当前版本"""
101
+ specifiedDaemonVersion: str
102
+ """指定的远程节点版本"""
103
+ system: SystemInfo
101
104
  """系统信息"""
102
- system: SystemInfo = SystemInfo()
105
+ record: RecordInfo
103
106
  """安全访问记录"""
104
- record: RecordInfo = RecordInfo()
107
+ process: ProcessInfo
105
108
  """进程状态信息"""
106
- process: ProcessInfo = ProcessInfo()
109
+ chart: ChartInfo
107
110
  """系统与请求统计图表数据"""
108
- chart: ChartInfo = ChartInfo()
109
- """远程守护进程统计信息"""
110
- remoteCount: RemoteCountInfo = RemoteCountInfo()
111
- """远程守护进程详细信息"""
112
- remote: List["DaemonModel"] = []
111
+ remoteCount: RemoteCountInfo
112
+ """远程节点统计信息"""
113
+ remote: list[DaemonModel]
114
+ """远程节点详细信息"""
115
+
116
+
117
+ class LogType(Enum):
118
+ """操作类型"""
119
+
120
+ # 系统相关
121
+ SYSTEM_CONFIG_CHANGE = "system_config_change"
122
+ """系统配置修改"""
123
+
124
+ # 用户相关
125
+ USER_LOGIN = "user_login"
126
+ """用户登录"""
127
+ USER_CONFIG_CHANGE = "user_config_change"
128
+ """修改用户配置"""
129
+ USER_DELETE = "user_delete"
130
+ """删除用户"""
131
+ USER_CREATE = "user_create"
132
+ """创建用户"""
133
+
134
+ # 节点相关
135
+ DAEMON_CONFIG_CHANGE = "daemon_config_change"
136
+ """修改节点配置"""
137
+ DAEMON_REMOVE = "daemon_remove"
138
+ """删除节点"""
139
+ DAEMON_CREATE = "daemon_create"
140
+ """创建节点"""
141
+
142
+ # 实例任务相关
143
+ INSTANCE_TASK_DELETE = "instance_task_delete"
144
+ """删除实例计划任务"""
145
+ INSTANCE_TASK_CREATE = "instance_task_create"
146
+ """创建实例计划任务"""
147
+
148
+ # 实例文件相关
149
+ INSTANCE_FILE_DELETE = "instance_file_delete"
150
+ """删除实例文件"""
151
+ INSTANCE_FILE_DOWNLOAD = "instance_file_download"
152
+ """下载实例文件"""
153
+ INSTANCE_FILE_UPDATE = "instance_file_update"
154
+ """更新实例文件"""
155
+ INSTANCE_FILE_UPLOAD = "instance_file_upload"
156
+ """上传实例文件"""
157
+
158
+ # 实例操作相关
159
+ INSTANCE_DELETE = "instance_delete"
160
+ """删除实例"""
161
+ INSTANCE_CREATE = "instance_create"
162
+ """创建实例"""
163
+ INSTANCE_CONFIG_CHANGE = "instance_config_change"
164
+ """修改实例配置"""
165
+ INSTANCE_KILL = "instance_kill"
166
+ """强制停止实例"""
167
+ INSTANCE_UPDATE = "instance_update"
168
+ """更新实例"""
169
+ INSTANCE_RESTART = "instance_restart"
170
+ """重启实例"""
171
+ INSTANCE_STOP = "instance_stop"
172
+ """停止实例"""
173
+ INSTANCE_START = "instance_start"
174
+ """启动实例"""
175
+
176
+
177
+ class LogDetail(BaseModel):
178
+ """操作日志详情"""
179
+
180
+ operation_id: str
181
+ """操作者uuid"""
182
+ operator_name: str | None = None
183
+ """操作者用户名"""
184
+ operation_time: str
185
+ """操作时间戳"""
186
+ operator_ip: str
187
+ """操作者ip"""
188
+ operation_level: Literal["info", "warning", "error", "unknown"]
189
+ """日志等级"""
190
+ type: LogType
191
+ """操作类型"""
192
+ instance_name: str | None = None
193
+ """实例名称(仅实例事件存在)"""
194
+ instance_id: str | None = None
195
+ """实例ID(仅实例事件存在)"""
196
+ daemon_id: str | None = None
197
+ """节点ID(仅实例事件和节点事件存在)"""
198
+ login_result: bool | None = None
199
+ """登录结果(仅登录事件存在)"""
200
+ file: list[str] | str | None = None
201
+ """被操作的文件(仅文件操作事件存在)"""
202
+ task_name: str | None = None
203
+ """任务名称(仅任务操作事件存在)"""
mcsmapi/models/user.py CHANGED
@@ -1,71 +1,88 @@
1
- from typing import Any, List
1
+ from enum import IntEnum
2
+ from typing import Any
2
3
  from pydantic import BaseModel
3
4
  from mcsmapi.models.instance import InstanceDetail, UserInstancesList
4
5
 
5
6
 
7
+ class UserPermission(IntEnum):
8
+ """用户权限级别"""
9
+
10
+ BANNED = -1
11
+ USER = 1
12
+ ADMIN = 10
13
+
14
+
15
+ class UserCreateResult(BaseModel):
16
+ """用户创建结果"""
17
+
18
+ uuid: str
19
+ """用户UUID"""
20
+ userName: str
21
+ """用户名"""
22
+ permission: UserPermission
23
+ """用户权限级别"""
24
+
25
+
6
26
  class UserModel(BaseModel):
7
27
  """用户信息模型"""
8
28
 
9
- """用户唯一标识符 (UUID)"""
10
- uuid: str = ""
29
+ uuid: str
30
+ """用户UUID"""
31
+ userName: str
11
32
  """用户名"""
12
- userName: str = ""
13
- """用户密码 (存储加密后的字符串)"""
14
- passWord: str = ""
15
- """密码类型 (0=默认类型)"""
16
- passWordType: int = 0
17
- """密码盐值 (用于加密)"""
18
- salt: str = ""
19
- """用户权限级别 (1=用户, 10=管理员, -1=被封禁的用户)"""
20
- permission: int = 1
21
- """用户注册时间 (时间字符串格式)"""
22
- registerTime: str = ""
23
- """用户最后登录时间 (时间字符串格式)"""
24
- loginTime: str = ""
33
+ permission: UserPermission
34
+ """用户权限级别"""
35
+ registerTime: str
36
+ """用户注册时间 (YYYY/M/D hh:mm:ss)"""
37
+ loginTime: str
38
+ """用户最后登录时间 (YYYY/M/D hh:mm:ss)"""
39
+ apiKey: str
25
40
  """用户 API 密钥"""
26
- apiKey: str = ""
27
- """是否为初始化用户 (系统内置用户)"""
28
- isInit: bool = False
29
- """用户安全密钥 (可能用于额外的身份验证)"""
30
- secret: str = ""
41
+ open2FA: bool
31
42
  """是否启用双因素认证 (2FA)"""
32
- open2FA: bool = False
43
+ instances: list[UserInstancesList]
33
44
  """用户关联的实例列表"""
34
- instances: List["UserInstancesList"] = []
35
-
36
- def delete(self) -> bool:
45
+ isInit: bool
46
+ """是否为初始化用户 (已弃用)"""
47
+ secret: str
48
+ """用户安全密钥 (已弃用)"""
49
+ passWord: str
50
+ """用户密码 (已弃用)"""
51
+ passWordType: int
52
+ """密码类型 (已弃用)"""
53
+ salt: str
54
+ """密码盐值 (已弃用)"""
55
+
56
+ def delete(self):
37
57
  """
38
- 删除该用户。
58
+ 删除该用户
39
59
 
40
- **返回:**
41
- - bool: 删除成功后返回True。
60
+ :returns: 删除成功后返回True
42
61
  """
43
62
  from mcsmapi.apis.user import User
44
63
 
45
64
  return User().delete([self.uuid])
46
65
 
47
- def update(self, config: dict[str, Any]) -> bool:
66
+ def update(self, config: dict[str, Any]):
48
67
  """
49
- 更新该用户的信息。
68
+ 更新该用户的信息
50
69
 
51
- 参数:
52
- - config (dict[str, Any]): 用户的新信息,以字典形式提供,缺失内容使用原用户信息填充。
70
+ :params config: 用户的新信息,以字典形式提供,缺失内容使用原用户信息填充
53
71
 
54
- 返回:
55
- - bool: 更新成功后返回True。
72
+ :returns: 更新成功后返回True
56
73
  """
57
74
  from mcsmapi.apis.user import User
58
75
 
59
- updated_config = self.dict()
76
+ updated_config = self.model_dump()
60
77
  updated_config.update(config)
61
78
  # 过滤用户信息中不需要的字段
62
79
  user_config_dict = {
63
80
  key: updated_config[key]
64
- for key in UserConfig.__fields__.keys()
81
+ for key in UserConfig.model_fields.keys()
65
82
  if key in updated_config
66
83
  }
67
84
 
68
- user_config = UserConfig(**user_config_dict).dict()
85
+ user_config = UserConfig(**user_config_dict).model_dump()
69
86
 
70
87
  return User().update(self.uuid, user_config)
71
88
 
@@ -73,38 +90,44 @@ class UserModel(BaseModel):
73
90
  class SearchUserModel(BaseModel):
74
91
  """用户搜索结果"""
75
92
 
93
+ total: int
76
94
  """匹配的用户总数"""
77
- total: int = 0
95
+ page: int
78
96
  """当前页码"""
79
- page: int = 0
97
+ page_size: int
80
98
  """每页返回的用户数量"""
81
- page_size: int = 0
99
+ max_page: int
82
100
  """最大可用页数"""
83
- max_page: int = 0
101
+ data: list[UserModel]
84
102
  """用户信息列表"""
85
- data: List[UserModel] = []
86
103
 
87
104
 
88
105
  class UserConfig(BaseModel):
89
106
  """用户配置信息"""
90
107
 
91
- """用户唯一标识符 (UUID)"""
92
- uuid: str
108
+ uuid: str = ""
109
+ """用户UUID"""
110
+ userName: str = ""
93
111
  """用户名"""
94
- userName: str
112
+ loginTime: str = ""
95
113
  """最后登录时间"""
96
- loginTime: str
114
+ registerTime: str = ""
97
115
  """注册时间"""
98
- registerTime: str
116
+ instances: list[InstanceDetail] = []
99
117
  """用户拥有的实例列表"""
100
- instances: List[InstanceDetail]
101
- """用户权限级别 (1=用户, 10=管理员, -1=被封禁的用户)"""
102
- permission: int
103
- """用户 API 密钥"""
104
- apiKey: str
105
- """是否为初始化用户 (系统内置用户)"""
106
- isInit: bool
107
- """用户安全密钥 (可能用于额外的身份验证)"""
108
- secret: str
118
+ permission: UserPermission = UserPermission.USER
119
+ """用户权限级别"""
120
+ passWord: str = ""
121
+ """用户密码"""
122
+ open2FA: bool = False
109
123
  """是否启用双因素认证 (2FA)"""
110
- open2FA: bool
124
+ apiKey: str = ""
125
+ """用户 API 密钥"""
126
+ passWordType: int = 1
127
+ """密码类型 (已弃用)"""
128
+ isInit: bool = False
129
+ """是否为初始化用户 (已弃用)"""
130
+ secret: str = ""
131
+ """用户安全密钥 (已弃用)"""
132
+ salt: str = ""
133
+ """用户密码盐值 (已弃用)"""
mcsmapi/pool.py CHANGED
@@ -12,3 +12,4 @@ class ApiPool(Enum):
12
12
  SERVICE = "api/service"
13
13
  FILE = "api/files"
14
14
  IMAGE = "api/environment"
15
+ LOG = "api/overview/operation_logs"
mcsmapi/request.py CHANGED
@@ -1,59 +1,65 @@
1
1
  from typing import Any
2
2
  import requests
3
3
  import urllib.parse
4
+
5
+ from mcsmapi.pool import ApiPool
4
6
  from .exceptions import MCSMError
5
7
 
6
8
 
7
9
  class Request:
8
- mcsm_url = ""
9
- timeout = 5
10
+ mcsm_url: str = ""
11
+ timeout: int = 5
10
12
  session = requests.Session()
11
- apikey = None
12
- token = None
13
+ apikey: str | None = None
14
+ token: str | None = None
13
15
 
14
16
  @classmethod
15
- def set_mcsm_url(cls, url):
17
+ def set_mcsm_url(cls, url: str):
16
18
  """设置类级别的 mcsm_url"""
17
19
  cls.mcsm_url = url
18
20
 
19
21
  @classmethod
20
- def set_timeout(cls, timeout):
22
+ def set_timeout(cls, timeout: int):
21
23
  """设置类级别的 timeout"""
22
24
  cls.timeout = timeout
23
25
 
24
26
  @classmethod
25
- def set_apikey(cls, apikey):
27
+ def set_apikey(cls, apikey: str):
26
28
  """设置类级别的 apikey"""
27
29
  cls.apikey = apikey
28
30
 
29
31
  @classmethod
30
- def set_token(cls, token):
32
+ def set_token(cls, token: str):
31
33
  """设置类级别的 token"""
32
34
  cls.token = token
33
35
 
34
36
  @classmethod
35
- def __init__(cls, mcsm_url=None, timeout=None):
37
+ def __init__(cls, mcsm_url: str | None = None, timeout: int | None = None):
36
38
  """初始化时使用类变量,或者使用传入的参数覆盖默认值"""
37
39
  cls.mcsm_url = mcsm_url or cls.mcsm_url
38
40
  cls.timeout = timeout or cls.timeout
39
41
 
40
42
  @classmethod
41
- def send(cls, method: str, endpoint: Any, params=None, data=None) -> Any:
43
+ def send(
44
+ cls,
45
+ method: str,
46
+ endpoint: str | ApiPool,
47
+ params: dict | None = None,
48
+ data: Any | None = None,
49
+ ) -> Any:
42
50
  """发送 HTTP 请求"""
43
51
  if params is None:
44
52
  params = {}
45
53
  if data is None:
46
54
  data = {}
47
- if not isinstance(endpoint, str):
48
- endpoint = str(endpoint)
55
+ if isinstance(endpoint, ApiPool):
56
+ endpoint = endpoint.value
49
57
 
50
58
  url = urllib.parse.urljoin(cls.mcsm_url, endpoint)
51
59
  if cls.apikey is not None:
52
60
  params["apikey"] = cls.apikey
53
- data["apikey"] = cls.apikey
54
61
  if cls.token is not None:
55
62
  params["token"] = cls.token
56
- data["token"] = cls.token
57
63
 
58
64
  response = cls.session.request(
59
65
  method.upper(),
@@ -1,15 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcsmapi
3
- Version: 0.1.6
3
+ Version: 0.1.8b1
4
4
  Summary: Shortcut the pypi package of MCSM./快捷操作MCSM的pypi包
5
5
  Author-email: molanp <molanpp@outlook.com>
6
6
  License-Expression: MIT
7
7
  Project-URL: Source, https://github.com/molanp/mcsmapi
8
8
  Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Requires-Python: >=3.10
9
11
  Description-Content-Type: text/markdown
10
12
  License-File: LICENSE
11
13
  Requires-Dist: requests
12
- Requires-Dist: pydantic
14
+ Requires-Dist: pydantic<3.0.0,>=2.0.0
13
15
  Dynamic: license-file
14
16
 
15
17
  # MCSM API
@@ -82,9 +84,10 @@ mcsm.login_with_apikey("apikey")
82
84
 
83
85
  # Get dashboard data
84
86
  overview = mcsm.overview()
87
+ overview_data = overview.overview()
85
88
 
86
89
  # Get MCSM version
87
- mcsm_version = mcsm.overview().version
90
+ mcsm_version = overview_data.version
88
91
  ```
89
92
 
90
93
  ## Contributing
@@ -0,0 +1,24 @@
1
+ mcsmapi/__init__.py,sha256=TxBjQPMtwR_Eh0N7nZAoKinONAgnDsSbt47-cLvbeLk,1418
2
+ mcsmapi/exceptions.py,sha256=mHsAHyoX9SiFDGBMEhesA_ao9hhZZ38EGTp97K7VDp8,184
3
+ mcsmapi/pool.py,sha256=Xa1DvBdfn5zTZ-eB50BFbYxhKX8j-4vfus9QOGO_FQE,348
4
+ mcsmapi/request.py,sha256=G6O4Q3oXidmauyraUgoMTkms5XFlY-iHPhZ3s0k9TmM,2743
5
+ mcsmapi/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ mcsmapi/apis/daemon.py,sha256=0ng7Twv04gs4y09AYFIH2o5YPoxGV3c3TwsUkqxpgTI,2555
7
+ mcsmapi/apis/file.py,sha256=1SYNw-6Qaiq5knS0Pu1_7-y82WtcB6EOHPGakYvvqjQ,9630
8
+ mcsmapi/apis/image.py,sha256=ajTiZXSj0o5aMEDcPe6JkFI5JJcYZhQXszmNqnbSJxA,2656
9
+ mcsmapi/apis/instance.py,sha256=h2y3gTLINvDZq7vOzBhQ3X02f3mmg5ZlPunMDkTahgo,8318
10
+ mcsmapi/apis/overview.py,sha256=7wRAdhFzbtLq6Oknj4_ncO5fETZuZCGtliErA0NNju0,514
11
+ mcsmapi/apis/user.py,sha256=KXd8OPjyQBprPTlJD-wLGE-BtaOsM_0WF1yqRlGgTfg,2414
12
+ mcsmapi/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ mcsmapi/models/common.py,sha256=HNvYJnbxrtkJ7-H2zCXSuB-J-YXBXCcfyK0TzQprsKI,531
14
+ mcsmapi/models/daemon.py,sha256=It7kPyxogqY6oBdyXYNi4EmyqlGwizu7j-N37snko8k,4093
15
+ mcsmapi/models/file.py,sha256=vk9rQp3Yw_aK7F8ghi5eiBYuwcjK1m-2IQ0YbUWoj3A,5933
16
+ mcsmapi/models/image.py,sha256=mpyS7KTVoOwH2opB-fQC2GD3An_bXcERLmLPDBuoYUA,5643
17
+ mcsmapi/models/instance.py,sha256=FTFLkwi3r9OUQnusIQ1JI1f7dX4QIbH1Q5BxfUWIqxM,8362
18
+ mcsmapi/models/overview.py,sha256=Q_MG04iCkQ7KdBZnji3xA9XzwM3JZ6fZe3NWap8lMdU,5284
19
+ mcsmapi/models/user.py,sha256=f2fZS1EQFwqOJM7fKu91dcvHHAdRjhAhwY8XfwXhRvk,3318
20
+ mcsmapi-0.1.8b1.dist-info/licenses/LICENSE,sha256=bMKDPsvaybvY-4TTlSZtCXPPtxb7KPpDVqXgDA8Ogo0,1068
21
+ mcsmapi-0.1.8b1.dist-info/METADATA,sha256=FyYvDSMJwqwYImKbLTXSSNx4f7mI_LFb9EqxOITuWVs,3032
22
+ mcsmapi-0.1.8b1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
+ mcsmapi-0.1.8b1.dist-info/top_level.txt,sha256=8MUYHd1Or4cbSCd93IaqLA72w0weEuKieopVwIfVlWo,8
24
+ mcsmapi-0.1.8b1.dist-info/RECORD,,
@@ -1,23 +0,0 @@
1
- mcsmapi/__init__.py,sha256=Xm0gsQMecMZwD1of9UGOkTan25l_jqrWkG-7mg0YgF4,1514
2
- mcsmapi/exceptions.py,sha256=mHsAHyoX9SiFDGBMEhesA_ao9hhZZ38EGTp97K7VDp8,184
3
- mcsmapi/pool.py,sha256=CoOYbyECp4FoXkzwFN7WgtS3vgZtvWO8e93i18vhOEI,308
4
- mcsmapi/request.py,sha256=5mCzKgrh4OPFKvBo22kIDpX_D1zqCza1nglYUeGWveg,2618
5
- mcsmapi/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- mcsmapi/apis/daemon.py,sha256=9jWoygFuACVJVn6fdt42tMWB3Nca2mZuoKcMs-p4_ic,2768
7
- mcsmapi/apis/file.py,sha256=Qh3kOtU2mj9PS2nN4s6WufZ149pM0sbkM37aG-LlY5A,10778
8
- mcsmapi/apis/image.py,sha256=UwVH2LPfPBEADZuoSyyiMrlEc9LL858Z3oidRPaKrvs,2908
9
- mcsmapi/apis/instance.py,sha256=tucZTLuad8EF4I7GQHUjuLXWyW56ab8EGNh0_ntnwio,10987
10
- mcsmapi/apis/overview.py,sha256=4bS3RGSykdQ1JyBTM-I9na6v0SCijEG1CN-WxqabfUo,625
11
- mcsmapi/apis/user.py,sha256=CBLNWxxNfvnmzoMa1YV3Q33POitYDGyN-hRORoe2JEc,2968
12
- mcsmapi/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- mcsmapi/models/daemon.py,sha256=EV0nlUe6pUETbLIoUGn2HPWoNYClIyS2ABrRA70IjQk,5079
14
- mcsmapi/models/file.py,sha256=m75zhMkBA7KQm-870Ph3DfE9unSlOLWgMmwdl8H-vSc,6097
15
- mcsmapi/models/image.py,sha256=pjwSJ79rYMuDTLlazevpjqdnnc0Mqvea9bp-BepUhio,5484
16
- mcsmapi/models/instance.py,sha256=oNXw0q3FDTu2bG_crWPgUtLXxM2yL7eRwo9H2RFzmDA,8850
17
- mcsmapi/models/overview.py,sha256=yRERCPRA3vBceKjISBClngvmKaQlo0HowC859nm15Nc,2859
18
- mcsmapi/models/user.py,sha256=sduOS8MWoxUfvTseK7nShuBOYzei3dEM8eP45PuIZ3g,3130
19
- mcsmapi-0.1.6.dist-info/licenses/LICENSE,sha256=bMKDPsvaybvY-4TTlSZtCXPPtxb7KPpDVqXgDA8Ogo0,1068
20
- mcsmapi-0.1.6.dist-info/METADATA,sha256=38r0EmlPzaYNExFWAyCkr4f_NIE-wjANeVwjBUT1vNY,2907
21
- mcsmapi-0.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- mcsmapi-0.1.6.dist-info/top_level.txt,sha256=8MUYHd1Or4cbSCd93IaqLA72w0weEuKieopVwIfVlWo,8
23
- mcsmapi-0.1.6.dist-info/RECORD,,