transcodely 0.2.0__tar.gz → 0.3.1__tar.gz
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.
- {transcodely-0.2.0 → transcodely-0.3.1}/PKG-INFO +1 -1
- {transcodely-0.2.0 → transcodely-0.3.1}/pyproject.toml +1 -1
- transcodely-0.3.1/src/transcodely/resources/_helpers.py +66 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/apps.py +12 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/jobs.py +65 -30
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/memberships.py +16 -2
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/users.py +14 -2
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/types.py +0 -6
- transcodely-0.3.1/src/transcodely/v1/api_key_pb2.py +71 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/api_key_pb2.pyi +8 -4
- transcodely-0.3.1/src/transcodely/v1/app_pb2.py +97 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/app_pb2.pyi +10 -52
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/job_pb2.py +44 -40
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/job_pb2.pyi +12 -6
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/origin_pb2.py +42 -38
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/origin_pb2.pyi +12 -6
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/preset_pb2.py +36 -32
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/preset_pb2.pyi +12 -6
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/video_pb2.py +30 -28
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/video_pb2.pyi +4 -2
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/version.py +1 -1
- transcodely-0.2.0/src/transcodely/resources/_helpers.py +0 -29
- transcodely-0.2.0/src/transcodely/v1/api_key_pb2.py +0 -69
- transcodely-0.2.0/src/transcodely/v1/app_pb2.py +0 -107
- {transcodely-0.2.0 → transcodely-0.3.1}/.gitignore +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/LICENSE +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/README.md +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/buf/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/buf/validate/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/buf/validate/validate_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/buf/validate/validate_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_codec/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_codec/json_codec.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_transport/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_transport/error_mapping.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_transport/headers.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/_transport/transport.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/client.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/errors.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/pagination.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/py.typed +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/api_keys.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/events.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/health.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/organizations.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/origins.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/presets.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/videos.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/resources/webhook_endpoints.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/streaming.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_av1_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_av1_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_h264_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_h264_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_h265_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_h265_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_vp9_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/codec_vp9_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/common_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/common_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/content_aware_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/content_aware_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/drm_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/drm_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/hdr_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/hdr_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/health_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/health_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/media_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/media_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/membership_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/membership_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/organization_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/organization_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/streaming_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/streaming_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/subtitles_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/subtitles_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/thumbnails_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/thumbnails_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/user_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/user_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/webhook_pb2.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/v1/webhook_pb2.pyi +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/webhooks/__init__.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/webhooks/construct_event.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/webhooks/signature.py +0 -0
- {transcodely-0.2.0 → transcodely-0.3.1}/src/transcodely/webhooks/types.py +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Internal helpers shared by resource modules."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any, Mapping, Optional, Union
|
|
6
|
+
|
|
7
|
+
from google.protobuf import json_format
|
|
8
|
+
from google.protobuf.descriptor import EnumDescriptor
|
|
9
|
+
from google.protobuf.message import Message
|
|
10
|
+
|
|
11
|
+
from .._codec.json_codec import expand_enum_value, simplify_enum_value, transform_enums_in_dict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def fill_from_dict(msg: Message, data: Mapping[str, Any]) -> Message:
|
|
15
|
+
"""Populate ``msg`` from a plain dict, accepting simplified-enum strings.
|
|
16
|
+
|
|
17
|
+
The codec's enum-expand pass lets callers pass ``{"codec": "h264"}`` while
|
|
18
|
+
the proto stores ``VIDEO_CODEC_H264`` (an int after parse).
|
|
19
|
+
"""
|
|
20
|
+
payload = dict(data)
|
|
21
|
+
transform_enums_in_dict(payload, msg.DESCRIPTOR, mode="expand")
|
|
22
|
+
json_format.ParseDict(payload, msg, ignore_unknown_fields=True)
|
|
23
|
+
return msg
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def resolve_enum(value: Union[int, str], enum_desc: EnumDescriptor) -> int:
|
|
27
|
+
"""Resolve an enum value from either the raw proto int or a string.
|
|
28
|
+
|
|
29
|
+
Strings may be the simplified lowercase wire form (``"standard"``,
|
|
30
|
+
``"processing"``) or the canonical proto name (``"JOB_PRIORITY_STANDARD"``) —
|
|
31
|
+
both resolve to the same int via the codec's inbound ``expand`` rule. Ints
|
|
32
|
+
pass through unchanged (proto3 enums are open, so an unknown int is the
|
|
33
|
+
caller's responsibility). Used for scalar enum kwargs that are set on a
|
|
34
|
+
request directly rather than through :func:`fill_from_dict`.
|
|
35
|
+
"""
|
|
36
|
+
if isinstance(value, bool): # bool is an int subclass — reject it explicitly.
|
|
37
|
+
raise TypeError(f"{enum_desc.name} value must be an int or str, got bool: {value!r}")
|
|
38
|
+
if isinstance(value, int):
|
|
39
|
+
return value
|
|
40
|
+
if isinstance(value, str):
|
|
41
|
+
name = expand_enum_value(value, enum_desc)
|
|
42
|
+
entry = enum_desc.values_by_name.get(name)
|
|
43
|
+
if entry is None:
|
|
44
|
+
allowed = ", ".join(
|
|
45
|
+
simplify_enum_value(v.name, enum_desc) for v in enum_desc.values if v.number != 0
|
|
46
|
+
)
|
|
47
|
+
raise ValueError(
|
|
48
|
+
f"unknown {enum_desc.name} value {value!r}; expected one of: {allowed}"
|
|
49
|
+
)
|
|
50
|
+
return int(entry.number)
|
|
51
|
+
raise TypeError(f"{enum_desc.name} value must be an int or str, got {type(value).__name__}")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def assign_pagination(
|
|
55
|
+
req_pagination: Any,
|
|
56
|
+
*,
|
|
57
|
+
limit: Optional[int] = None,
|
|
58
|
+
cursor: Optional[str] = None,
|
|
59
|
+
offset: Optional[int] = None,
|
|
60
|
+
) -> None:
|
|
61
|
+
if limit is not None:
|
|
62
|
+
req_pagination.limit = limit
|
|
63
|
+
if cursor is not None:
|
|
64
|
+
req_pagination.cursor = cursor
|
|
65
|
+
if offset is not None:
|
|
66
|
+
req_pagination.offset = offset
|
|
@@ -31,11 +31,23 @@ class Apps:
|
|
|
31
31
|
def list(
|
|
32
32
|
self,
|
|
33
33
|
*,
|
|
34
|
+
org_id: Optional[str] = None,
|
|
34
35
|
limit: Optional[int] = None,
|
|
36
|
+
include_archived: Optional[bool] = None,
|
|
35
37
|
opts: Optional[CallOptions] = None,
|
|
36
38
|
) -> Page[app_pb2.App]:
|
|
39
|
+
"""List apps in an organization.
|
|
40
|
+
|
|
41
|
+
``org_id`` (the parent organization, e.g. ``"org_a1b2c3d4e5"``) is required
|
|
42
|
+
by the API. Pass ``include_archived=True`` to include archived apps.
|
|
43
|
+
"""
|
|
44
|
+
|
|
37
45
|
def fetch(cursor: Optional[str]) -> PageContents[app_pb2.App]:
|
|
38
46
|
req = app_pb2.ListAppsRequest()
|
|
47
|
+
if org_id is not None:
|
|
48
|
+
req.org_id = org_id
|
|
49
|
+
if include_archived is not None:
|
|
50
|
+
req.include_archived = include_archived
|
|
39
51
|
assign_pagination(req.pagination, limit=limit, cursor=cursor)
|
|
40
52
|
res = self._t.unary(_SERVICE, "List", req, app_pb2.ListAppsResponse(), opts)
|
|
41
53
|
return PageContents(
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Any, Generator, Mapping, Optional
|
|
5
|
+
from typing import Any, Generator, Mapping, Optional, Union
|
|
6
6
|
|
|
7
7
|
from .._transport.transport import CallOptions, Transport
|
|
8
8
|
from ..pagination import Page, PageContents
|
|
9
9
|
from ..streaming import watch
|
|
10
10
|
from ..v1 import job_pb2
|
|
11
|
+
from ._helpers import assign_pagination, fill_from_dict, resolve_enum
|
|
11
12
|
|
|
12
13
|
_SERVICE = "transcodely.v1.JobService"
|
|
13
14
|
|
|
@@ -21,35 +22,54 @@ class Jobs:
|
|
|
21
22
|
input_url: Optional[str] = None,
|
|
22
23
|
outputs: Optional[list[Mapping[str, Any]]] = None,
|
|
23
24
|
*,
|
|
24
|
-
|
|
25
|
+
output_origin_id: Optional[str] = None,
|
|
26
|
+
output_path_template: Optional[str] = None,
|
|
27
|
+
input_origin_id: Optional[str] = None,
|
|
28
|
+
input_path: Optional[str] = None,
|
|
29
|
+
priority: Optional[Union[int, str]] = None,
|
|
30
|
+
delayed_start: Optional[bool] = None,
|
|
25
31
|
webhook_url: Optional[str] = None,
|
|
26
|
-
priority: Optional[int] = None,
|
|
27
32
|
metadata: Optional[Mapping[str, str]] = None,
|
|
33
|
+
idempotency_key: Optional[str] = None,
|
|
28
34
|
request: Optional[job_pb2.CreateJobRequest] = None,
|
|
29
35
|
opts: Optional[CallOptions] = None,
|
|
30
36
|
) -> job_pb2.Job:
|
|
31
|
-
"""Create a new transcoding job.
|
|
37
|
+
"""Create a new transcoding job.
|
|
38
|
+
|
|
39
|
+
Keyword arguments mirror the API's snake_case fields. Enum-valued fields —
|
|
40
|
+
``priority`` here, plus any enum inside ``outputs`` dicts — accept either the
|
|
41
|
+
simplified lowercase string (``"standard"``, ``"h264"``) or the raw proto int.
|
|
42
|
+
Provide inputs via ``input_url`` (direct URL) OR ``input_origin_id`` +
|
|
43
|
+
``input_path`` (origin mode); the server rejects both. Pass a fully-built
|
|
44
|
+
``request=`` to bypass the convenience kwargs entirely. ``idempotency_key`` is
|
|
45
|
+
auto-filled with a uuid4 when omitted. ``output_path_template`` overrides where
|
|
46
|
+
rendered outputs are written within the output origin (e.g.
|
|
47
|
+
``"videos/{job_id}/{output}"``).
|
|
48
|
+
"""
|
|
32
49
|
if request is None:
|
|
33
|
-
|
|
50
|
+
payload: dict[str, Any] = {}
|
|
34
51
|
if input_url is not None:
|
|
35
|
-
|
|
52
|
+
payload["input_url"] = input_url
|
|
53
|
+
if input_origin_id is not None:
|
|
54
|
+
payload["input_origin_id"] = input_origin_id
|
|
55
|
+
if input_path is not None:
|
|
56
|
+
payload["input_path"] = input_path
|
|
57
|
+
if output_origin_id is not None:
|
|
58
|
+
payload["output_origin_id"] = output_origin_id
|
|
59
|
+
if output_path_template is not None:
|
|
60
|
+
payload["output_path_template"] = output_path_template
|
|
36
61
|
if outputs:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
from .._codec.json_codec import transform_enums_in_dict
|
|
40
|
-
|
|
41
|
-
# Outputs are nested messages — round-trip through JSON so callers can
|
|
42
|
-
# pass plain dicts with simplified-enum strings.
|
|
43
|
-
payload = {"outputs": list(outputs)}
|
|
44
|
-
transform_enums_in_dict(payload, req.DESCRIPTOR, mode="expand")
|
|
45
|
-
json_format.ParseDict(payload, req, ignore_unknown_fields=True)
|
|
46
|
-
if webhook_url is not None:
|
|
47
|
-
req.webhook_url = webhook_url
|
|
62
|
+
payload["outputs"] = list(outputs)
|
|
48
63
|
if priority is not None:
|
|
49
|
-
|
|
64
|
+
payload["priority"] = priority
|
|
65
|
+
if delayed_start is not None:
|
|
66
|
+
payload["delayed_start"] = delayed_start
|
|
67
|
+
if webhook_url is not None:
|
|
68
|
+
payload["webhook_url"] = webhook_url
|
|
50
69
|
if metadata:
|
|
51
|
-
|
|
52
|
-
|
|
70
|
+
payload["metadata"] = dict(metadata)
|
|
71
|
+
req = job_pb2.CreateJobRequest()
|
|
72
|
+
fill_from_dict(req, payload)
|
|
53
73
|
else:
|
|
54
74
|
req = request
|
|
55
75
|
if not req.idempotency_key:
|
|
@@ -66,22 +86,37 @@ class Jobs:
|
|
|
66
86
|
def list(
|
|
67
87
|
self,
|
|
68
88
|
*,
|
|
69
|
-
status: Optional[int] = None,
|
|
89
|
+
status: Optional[Union[int, str]] = None,
|
|
70
90
|
limit: Optional[int] = None,
|
|
91
|
+
offset: Optional[int] = None,
|
|
92
|
+
pagination: Optional[Mapping[str, Any]] = None,
|
|
71
93
|
opts: Optional[CallOptions] = None,
|
|
72
94
|
) -> Page[job_pb2.Job]:
|
|
73
|
-
|
|
95
|
+
"""List jobs, optionally filtered by ``status``.
|
|
96
|
+
|
|
97
|
+
``status`` accepts the simplified lowercase string (``"processing"``) or the
|
|
98
|
+
raw ``JobStatus`` int. Pagination may be given as ``limit`` / ``offset``
|
|
99
|
+
keyword args or as a ``pagination={"limit": ..., "offset": ..., "cursor": ...}``
|
|
100
|
+
mapping; explicit keyword args take precedence over the mapping.
|
|
101
|
+
"""
|
|
102
|
+
status_value = (
|
|
103
|
+
resolve_enum(status, job_pb2.JobStatus.DESCRIPTOR) if status is not None else None
|
|
104
|
+
)
|
|
105
|
+
pag = dict(pagination) if pagination else {}
|
|
106
|
+
eff_limit = limit if limit is not None else pag.get("limit")
|
|
107
|
+
eff_offset = offset if offset is not None else pag.get("offset")
|
|
108
|
+
start_cursor = pag.get("cursor")
|
|
74
109
|
|
|
75
110
|
def fetch(cursor: Optional[str]) -> PageContents[job_pb2.Job]:
|
|
76
111
|
req = job_pb2.ListJobsRequest()
|
|
77
|
-
if
|
|
78
|
-
req.status =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
112
|
+
if status_value is not None:
|
|
113
|
+
req.status = status_value
|
|
114
|
+
assign_pagination(
|
|
115
|
+
req.pagination,
|
|
116
|
+
limit=eff_limit,
|
|
117
|
+
cursor=cursor if cursor is not None else start_cursor,
|
|
118
|
+
offset=eff_offset,
|
|
119
|
+
)
|
|
85
120
|
res = self._t.unary(_SERVICE, "List", req, job_pb2.ListJobsResponse(), opts)
|
|
86
121
|
return PageContents(
|
|
87
122
|
items=list(res.jobs),
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Any, Optional
|
|
5
|
+
from typing import Any, Optional, Union
|
|
6
6
|
|
|
7
7
|
from .._transport.transport import CallOptions, Transport
|
|
8
8
|
from ..pagination import Page, PageContents
|
|
9
9
|
from ..v1 import membership_pb2
|
|
10
|
-
from ._helpers import assign_pagination, fill_from_dict
|
|
10
|
+
from ._helpers import assign_pagination, fill_from_dict, resolve_enum
|
|
11
11
|
|
|
12
12
|
_SERVICE = "transcodely.v1.MembershipService"
|
|
13
13
|
|
|
@@ -19,11 +19,25 @@ class Memberships:
|
|
|
19
19
|
def list(
|
|
20
20
|
self,
|
|
21
21
|
*,
|
|
22
|
+
status: Optional[Union[int, str]] = None,
|
|
22
23
|
limit: Optional[int] = None,
|
|
23
24
|
opts: Optional[CallOptions] = None,
|
|
24
25
|
) -> Page[membership_pb2.MembershipWithUser]:
|
|
26
|
+
"""List memberships, optionally filtered by ``status``.
|
|
27
|
+
|
|
28
|
+
``status`` accepts the simplified lowercase string (``"active"``,
|
|
29
|
+
``"invited"``, ``"suspended"``) or the raw ``MembershipStatus`` int.
|
|
30
|
+
"""
|
|
31
|
+
status_value = (
|
|
32
|
+
resolve_enum(status, membership_pb2.MembershipStatus.DESCRIPTOR)
|
|
33
|
+
if status is not None
|
|
34
|
+
else None
|
|
35
|
+
)
|
|
36
|
+
|
|
25
37
|
def fetch(cursor: Optional[str]) -> PageContents[membership_pb2.MembershipWithUser]:
|
|
26
38
|
req = membership_pb2.ListMembershipsRequest()
|
|
39
|
+
if status_value is not None:
|
|
40
|
+
req.status = status_value
|
|
27
41
|
assign_pagination(req.pagination, limit=limit, cursor=cursor)
|
|
28
42
|
res = self._t.unary(
|
|
29
43
|
_SERVICE, "List", req, membership_pb2.ListMembershipsResponse(), opts
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Any, Optional
|
|
5
|
+
from typing import Any, Optional, Union
|
|
6
6
|
|
|
7
7
|
from .._transport.transport import CallOptions, Transport
|
|
8
8
|
from ..pagination import Page, PageContents
|
|
9
9
|
from ..v1 import user_pb2
|
|
10
|
-
from ._helpers import assign_pagination, fill_from_dict
|
|
10
|
+
from ._helpers import assign_pagination, fill_from_dict, resolve_enum
|
|
11
11
|
|
|
12
12
|
_SERVICE = "transcodely.v1.UserService"
|
|
13
13
|
|
|
@@ -32,11 +32,23 @@ class Users:
|
|
|
32
32
|
def list(
|
|
33
33
|
self,
|
|
34
34
|
*,
|
|
35
|
+
status: Optional[Union[int, str]] = None,
|
|
35
36
|
limit: Optional[int] = None,
|
|
36
37
|
opts: Optional[CallOptions] = None,
|
|
37
38
|
) -> Page[user_pb2.User]:
|
|
39
|
+
"""List users, optionally filtered by ``status``.
|
|
40
|
+
|
|
41
|
+
``status`` accepts the simplified lowercase string (``"active"``,
|
|
42
|
+
``"suspended"``, ``"deleted"``) or the raw ``UserStatus`` int.
|
|
43
|
+
"""
|
|
44
|
+
status_value = (
|
|
45
|
+
resolve_enum(status, user_pb2.UserStatus.DESCRIPTOR) if status is not None else None
|
|
46
|
+
)
|
|
47
|
+
|
|
38
48
|
def fetch(cursor: Optional[str]) -> PageContents[user_pb2.User]:
|
|
39
49
|
req = user_pb2.ListUsersRequest()
|
|
50
|
+
if status_value is not None:
|
|
51
|
+
req.status = status_value
|
|
40
52
|
assign_pagination(req.pagination, limit=limit, cursor=cursor)
|
|
41
53
|
res = self._t.unary(_SERVICE, "List", req, user_pb2.ListUsersResponse(), opts)
|
|
42
54
|
return PageContents(
|
|
@@ -157,7 +157,6 @@ from transcodely.v1.app_pb2 import (
|
|
|
157
157
|
AutoProfileDefaults,
|
|
158
158
|
CreateAppRequest,
|
|
159
159
|
CreateAppResponse,
|
|
160
|
-
CreateWebhookConfig,
|
|
161
160
|
EnableHostingRequest,
|
|
162
161
|
EnableHostingResponse,
|
|
163
162
|
GetAppRequest,
|
|
@@ -169,8 +168,6 @@ from transcodely.v1.app_pb2 import (
|
|
|
169
168
|
UpdateAppResponse,
|
|
170
169
|
UpdateHostingConfigRequest,
|
|
171
170
|
UpdateHostingConfigResponse,
|
|
172
|
-
UpdateWebhookConfig,
|
|
173
|
-
WebhookConfig,
|
|
174
171
|
)
|
|
175
172
|
|
|
176
173
|
# API keys.
|
|
@@ -379,7 +376,6 @@ __all__ = [
|
|
|
379
376
|
"CreatePresetResponse",
|
|
380
377
|
"CreateUploadRequest",
|
|
381
378
|
"CreateUploadResponse",
|
|
382
|
-
"CreateWebhookConfig",
|
|
383
379
|
"CreateWebhookEndpointRequest",
|
|
384
380
|
"CreateWebhookEndpointResponse",
|
|
385
381
|
"DASHConfig",
|
|
@@ -537,7 +533,6 @@ __all__ = [
|
|
|
537
533
|
"UpdatePresetResponse",
|
|
538
534
|
"UpdateVideoRequest",
|
|
539
535
|
"UpdateVideoResponse",
|
|
540
|
-
"UpdateWebhookConfig",
|
|
541
536
|
"UpdateWebhookEndpointRequest",
|
|
542
537
|
"UpdateWebhookEndpointResponse",
|
|
543
538
|
"UploadPart",
|
|
@@ -563,7 +558,6 @@ __all__ = [
|
|
|
563
558
|
"WatchJobResponse",
|
|
564
559
|
"WatchVideoRequest",
|
|
565
560
|
"WatchVideoResponse",
|
|
566
|
-
"WebhookConfig",
|
|
567
561
|
"WebhookDelivery",
|
|
568
562
|
"WebhookEndpoint",
|
|
569
563
|
"WebhookEvent",
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: transcodely/v1/api_key.proto
|
|
5
|
+
# Protobuf Python Version: 5.28.3
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
28,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'transcodely/v1/api_key.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
26
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
27
|
+
from transcodely.v1 import common_pb2 as transcodely_dot_v1_dot_common__pb2
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctranscodely/v1/api_key.proto\x12\x0etranscodely.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1btranscodely/v1/common.proto\"\x96\x04\n\x06\x41PIKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06\x61pp_id\x18\r \x01(\tR\x05\x61ppId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1d\n\nkey_prefix\x18\x04 \x01(\tR\tkeyPrefix\x12\x19\n\x08key_hint\x18\x05 \x01(\tR\x07keyHint\x12\x16\n\x06scopes\x18\x07 \x03(\tR\x06scopes\x12\x41\n\x0clast_used_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\nlastUsedAt\x88\x01\x01\x12>\n\nexpires_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\texpiresAt\x88\x01\x01\x12\x39\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x1d\n\nis_revoked\x18\x0b \x01(\x08R\tisRevoked\x12>\n\nrevoked_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\trevokedAt\x88\x01\x01\x42\x0f\n\r_last_used_atB\r\n\x0b_expires_atB\r\n\x0b_revoked_atJ\x04\x08\x06\x10\x07R\x0b\x65nvironment\"\xfa\x01\n\x13\x43reateAPIKeyRequest\x12!\n\x04name\x18\x01 \x01(\tB\r\xbaH\nr\x05\x10\x01\x18\xff\x01\xc8\x01\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0b\x64\x65scription\x12>\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\texpiresAt\x88\x01\x01\x12\x32\n\x06\x61pp_id\x18\x05 \x01(\tB\x1b\xbaH\x18r\x16\x32\x14^app_[a-zA-Z0-9_-]+$R\x05\x61ppIdB\r\n\x0b_expires_atJ\x04\x08\x03\x10\x04R\x0b\x65nvironment\"_\n\x14\x43reateAPIKeyResponse\x12/\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x16.transcodely.v1.APIKeyR\x06\x61piKey\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"A\n\x10GetAPIKeyRequest\x12-\n\x02id\x18\x01 \x01(\tB\x1d\xbaH\x1ar\x15\x32\x13^ak_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\"D\n\x11GetAPIKeyResponse\x12/\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x16.transcodely.v1.APIKeyR\x06\x61piKey\"\xd7\x01\n\x12ListAPIKeysRequest\x12\'\n\x0finclude_revoked\x18\x02 \x01(\x08R\x0eincludeRevoked\x12\x41\n\npagination\x18\x03 \x01(\x0b\x32!.transcodely.v1.PaginationRequestR\npagination\x12\x37\n\x06\x61pp_id\x18\x04 \x01(\tB\x1b\xbaH\x18r\x16\x32\x14^app_[a-zA-Z0-9_-]+$H\x00R\x05\x61ppId\x88\x01\x01\x42\t\n\x07_app_idJ\x04\x08\x01\x10\x02R\x0b\x65nvironment\"\x8c\x01\n\x13ListAPIKeysResponse\x12\x31\n\x08\x61pi_keys\x18\x01 \x03(\x0b\x32\x16.transcodely.v1.APIKeyR\x07\x61piKeys\x12\x42\n\npagination\x18\x02 \x01(\x0b\x32\".transcodely.v1.PaginationResponseR\npagination\"f\n\x13RevokeAPIKeyRequest\x12-\n\x02id\x18\x01 \x01(\tB\x1d\xbaH\x1ar\x15\x32\x13^ak_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\x12 \n\x06reason\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xf4\x03R\x06reason\"G\n\x14RevokeAPIKeyResponse\x12/\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x16.transcodely.v1.APIKeyR\x06\x61piKey2\xd6\x02\n\rAPIKeyService\x12S\n\x06\x43reate\x12#.transcodely.v1.CreateAPIKeyRequest\x1a$.transcodely.v1.CreateAPIKeyResponse\x12J\n\x03Get\x12 .transcodely.v1.GetAPIKeyRequest\x1a!.transcodely.v1.GetAPIKeyResponse\x12O\n\x04List\x12\".transcodely.v1.ListAPIKeysRequest\x1a#.transcodely.v1.ListAPIKeysResponse\x12S\n\x06Revoke\x12#.transcodely.v1.RevokeAPIKeyRequest\x1a$.transcodely.v1.RevokeAPIKeyResponseb\x06proto3')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'transcodely.v1.api_key_pb2', _globals)
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
DESCRIPTOR._loaded_options = None
|
|
37
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._loaded_options = None
|
|
38
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._serialized_options = b'\272H\nr\005\020\001\030\377\001\310\001\001'
|
|
39
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['description']._loaded_options = None
|
|
40
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\350\007'
|
|
41
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['app_id']._loaded_options = None
|
|
42
|
+
_globals['_CREATEAPIKEYREQUEST'].fields_by_name['app_id']._serialized_options = b'\272H\030r\0262\024^app_[a-zA-Z0-9_-]+$'
|
|
43
|
+
_globals['_GETAPIKEYREQUEST'].fields_by_name['id']._loaded_options = None
|
|
44
|
+
_globals['_GETAPIKEYREQUEST'].fields_by_name['id']._serialized_options = b'\272H\032r\0252\023^ak_[a-zA-Z0-9_-]+$\310\001\001'
|
|
45
|
+
_globals['_LISTAPIKEYSREQUEST'].fields_by_name['app_id']._loaded_options = None
|
|
46
|
+
_globals['_LISTAPIKEYSREQUEST'].fields_by_name['app_id']._serialized_options = b'\272H\030r\0262\024^app_[a-zA-Z0-9_-]+$'
|
|
47
|
+
_globals['_REVOKEAPIKEYREQUEST'].fields_by_name['id']._loaded_options = None
|
|
48
|
+
_globals['_REVOKEAPIKEYREQUEST'].fields_by_name['id']._serialized_options = b'\272H\032r\0252\023^ak_[a-zA-Z0-9_-]+$\310\001\001'
|
|
49
|
+
_globals['_REVOKEAPIKEYREQUEST'].fields_by_name['reason']._loaded_options = None
|
|
50
|
+
_globals['_REVOKEAPIKEYREQUEST'].fields_by_name['reason']._serialized_options = b'\272H\005r\003\030\364\003'
|
|
51
|
+
_globals['_APIKEY']._serialized_start=140
|
|
52
|
+
_globals['_APIKEY']._serialized_end=674
|
|
53
|
+
_globals['_CREATEAPIKEYREQUEST']._serialized_start=677
|
|
54
|
+
_globals['_CREATEAPIKEYREQUEST']._serialized_end=927
|
|
55
|
+
_globals['_CREATEAPIKEYRESPONSE']._serialized_start=929
|
|
56
|
+
_globals['_CREATEAPIKEYRESPONSE']._serialized_end=1024
|
|
57
|
+
_globals['_GETAPIKEYREQUEST']._serialized_start=1026
|
|
58
|
+
_globals['_GETAPIKEYREQUEST']._serialized_end=1091
|
|
59
|
+
_globals['_GETAPIKEYRESPONSE']._serialized_start=1093
|
|
60
|
+
_globals['_GETAPIKEYRESPONSE']._serialized_end=1161
|
|
61
|
+
_globals['_LISTAPIKEYSREQUEST']._serialized_start=1164
|
|
62
|
+
_globals['_LISTAPIKEYSREQUEST']._serialized_end=1379
|
|
63
|
+
_globals['_LISTAPIKEYSRESPONSE']._serialized_start=1382
|
|
64
|
+
_globals['_LISTAPIKEYSRESPONSE']._serialized_end=1522
|
|
65
|
+
_globals['_REVOKEAPIKEYREQUEST']._serialized_start=1524
|
|
66
|
+
_globals['_REVOKEAPIKEYREQUEST']._serialized_end=1626
|
|
67
|
+
_globals['_REVOKEAPIKEYRESPONSE']._serialized_start=1628
|
|
68
|
+
_globals['_REVOKEAPIKEYRESPONSE']._serialized_end=1699
|
|
69
|
+
_globals['_APIKEYSERVICE']._serialized_start=1702
|
|
70
|
+
_globals['_APIKEYSERVICE']._serialized_end=2044
|
|
71
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -9,8 +9,9 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
|
|
9
9
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
10
|
|
|
11
11
|
class APIKey(_message.Message):
|
|
12
|
-
__slots__ = ("id", "name", "description", "key_prefix", "key_hint", "scopes", "last_used_at", "expires_at", "created_at", "is_revoked", "revoked_at")
|
|
12
|
+
__slots__ = ("id", "app_id", "name", "description", "key_prefix", "key_hint", "scopes", "last_used_at", "expires_at", "created_at", "is_revoked", "revoked_at")
|
|
13
13
|
ID_FIELD_NUMBER: _ClassVar[int]
|
|
14
|
+
APP_ID_FIELD_NUMBER: _ClassVar[int]
|
|
14
15
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
15
16
|
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
|
16
17
|
KEY_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -22,6 +23,7 @@ class APIKey(_message.Message):
|
|
|
22
23
|
IS_REVOKED_FIELD_NUMBER: _ClassVar[int]
|
|
23
24
|
REVOKED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
24
25
|
id: str
|
|
26
|
+
app_id: str
|
|
25
27
|
name: str
|
|
26
28
|
description: str
|
|
27
29
|
key_prefix: str
|
|
@@ -32,7 +34,7 @@ class APIKey(_message.Message):
|
|
|
32
34
|
created_at: _timestamp_pb2.Timestamp
|
|
33
35
|
is_revoked: bool
|
|
34
36
|
revoked_at: _timestamp_pb2.Timestamp
|
|
35
|
-
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., key_prefix: _Optional[str] = ..., key_hint: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., last_used_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., is_revoked: bool = ..., revoked_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
37
|
+
def __init__(self, id: _Optional[str] = ..., app_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., key_prefix: _Optional[str] = ..., key_hint: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., last_used_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., is_revoked: bool = ..., revoked_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
36
38
|
|
|
37
39
|
class CreateAPIKeyRequest(_message.Message):
|
|
38
40
|
__slots__ = ("name", "description", "expires_at", "app_id")
|
|
@@ -67,12 +69,14 @@ class GetAPIKeyResponse(_message.Message):
|
|
|
67
69
|
def __init__(self, api_key: _Optional[_Union[APIKey, _Mapping]] = ...) -> None: ...
|
|
68
70
|
|
|
69
71
|
class ListAPIKeysRequest(_message.Message):
|
|
70
|
-
__slots__ = ("include_revoked", "pagination")
|
|
72
|
+
__slots__ = ("include_revoked", "pagination", "app_id")
|
|
71
73
|
INCLUDE_REVOKED_FIELD_NUMBER: _ClassVar[int]
|
|
72
74
|
PAGINATION_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
+
APP_ID_FIELD_NUMBER: _ClassVar[int]
|
|
73
76
|
include_revoked: bool
|
|
74
77
|
pagination: _common_pb2.PaginationRequest
|
|
75
|
-
|
|
78
|
+
app_id: str
|
|
79
|
+
def __init__(self, include_revoked: bool = ..., pagination: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ..., app_id: _Optional[str] = ...) -> None: ...
|
|
76
80
|
|
|
77
81
|
class ListAPIKeysResponse(_message.Message):
|
|
78
82
|
__slots__ = ("api_keys", "pagination")
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: transcodely/v1/app.proto
|
|
5
|
+
# Protobuf Python Version: 5.28.3
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
28,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'transcodely/v1/app.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
26
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
27
|
+
from transcodely.v1 import common_pb2 as transcodely_dot_v1_dot_common__pb2
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18transcodely/v1/app.proto\x12\x0etranscodely.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1btranscodely/v1/common.proto\"\xb1\x05\n\x03\x41pp\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x31\n\x06status\x18\x06 \x01(\x0e\x32\x19.transcodely.v1.AppStatusR\x06status\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12@\n\x0b\x61rchived_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\narchivedAt\x88\x01\x01\x12,\n\x0fhosting_enabled\x18\n \x01(\x08H\x02R\x0ehostingEnabled\x88\x01\x01\x12*\n\x0ehosting_status\x18\x0b \x01(\tH\x03R\rhostingStatus\x88\x01\x01\x12&\n\x0c\x63\x64n_hostname\x18\x0c \x01(\tH\x04R\x0b\x63\x64nHostname\x88\x01\x01\x12I\n\x0ehosting_config\x18\r \x01(\x0b\x32\x1d.transcodely.v1.HostingConfigH\x05R\rhostingConfig\x88\x01\x01\x12\x16\n\x06object\x18\x0e \x01(\tR\x06objectB\x0e\n\x0c_descriptionB\x0e\n\x0c_archived_atB\x12\n\x10_hosting_enabledB\x11\n\x0f_hosting_statusB\x0f\n\r_cdn_hostnameB\x11\n\x0f_hosting_configJ\x04\x08\x05\x10\x06R\x07webhook\"\xfa\x01\n\x10\x43reateAppRequest\x12\x35\n\x06org_id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^org_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x05orgId\x12 \n\x04name\x18\x02 \x01(\tB\x0c\xbaH\tr\x04\x10\x01\x18<\xc8\x01\x01R\x04name\x12/\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\xf4\x03H\x00R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0e\x65nable_hosting\x18\x05 \x01(\x08H\x01R\renableHosting\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_enable_hostingJ\x04\x08\x04\x10\x05R\x07webhook\"P\n\x11\x43reateAppResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61ppJ\x04\x08\x02\x10\x03R\x0ewebhook_secret\"?\n\rGetAppRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^app_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\"7\n\x0eGetAppResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61pp\"\xbf\x01\n\x10UpdateAppRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^app_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\x12\"\n\x04name\x18\x02 \x01(\tB\t\xbaH\x06r\x04\x10\x01\x18<H\x00R\x04name\x88\x01\x01\x12/\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\xf4\x03H\x01R\x0b\x64\x65scription\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionJ\x04\x08\x04\x10\x05R\x07webhook\"P\n\x11UpdateAppResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61ppJ\x04\x08\x02\x10\x03R\x0ewebhook_secret\"\xb6\x01\n\x0fListAppsRequest\x12\x35\n\x06org_id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^org_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x05orgId\x12\x41\n\npagination\x18\x02 \x01(\x0b\x32!.transcodely.v1.PaginationRequestR\npagination\x12)\n\x10include_archived\x18\x03 \x01(\x08R\x0fincludeArchived\"\x7f\n\x10ListAppsResponse\x12\'\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x13.transcodely.v1.AppR\x04\x61pps\x12\x42\n\npagination\x18\x02 \x01(\x0b\x32\".transcodely.v1.PaginationResponseR\npagination\"C\n\x11\x41rchiveAppRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^app_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\";\n\x12\x41rchiveAppResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61pp\"F\n\x14\x45nableHostingRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^app_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\">\n\x15\x45nableHostingResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61pp\"\xd6\x02\n\rHostingConfig\x12\x32\n\x12\x64\x65\x66\x61ult_visibility\x18\x01 \x01(\tH\x00R\x11\x64\x65\x66\x61ultVisibility\x88\x01\x01\x12\x36\n\x15max_upload_size_bytes\x18\x02 \x01(\x03H\x01R\x12maxUploadSizeBytes\x88\x01\x01\x12\x30\n\x14\x63ors_allowed_origins\x18\x03 \x03(\tR\x12\x63orsAllowedOrigins\x12\\\n\x15\x61uto_profile_defaults\x18\x04 \x01(\x0b\x32#.transcodely.v1.AutoProfileDefaultsH\x02R\x13\x61utoProfileDefaults\x88\x01\x01\x42\x15\n\x13_default_visibilityB\x18\n\x16_max_upload_size_bytesB\x18\n\x16_auto_profile_defaults\"\x96\x02\n\x13\x41utoProfileDefaults\x12\x1b\n\x06\x66ormat\x18\x01 \x01(\tH\x00R\x06\x66ormat\x88\x01\x01\x12\x19\n\x05\x63odec\x18\x02 \x01(\tH\x01R\x05\x63odec\x88\x01\x01\x12*\n\x0emax_resolution\x18\x03 \x01(\tH\x02R\rmaxResolution\x88\x01\x01\x12&\n\x0cquality_tier\x18\x04 \x01(\tH\x03R\x0bqualityTier\x88\x01\x01\x12(\n\rencoding_mode\x18\x05 \x01(\tH\x04R\x0c\x65ncodingMode\x88\x01\x01\x42\t\n\x07_formatB\x08\n\x06_codecB\x11\n\x0f_max_resolutionB\x0f\n\r_quality_tierB\x10\n\x0e_encoding_mode\"\x92\x01\n\x1aUpdateHostingConfigRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^app_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\x12\x44\n\x0ehosting_config\x18\x02 \x01(\x0b\x32\x1d.transcodely.v1.HostingConfigR\rhostingConfig\"D\n\x1bUpdateHostingConfigResponse\x12%\n\x03\x61pp\x18\x01 \x01(\x0b\x32\x13.transcodely.v1.AppR\x03\x61pp*W\n\tAppStatus\x12\x1a\n\x16\x41PP_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41PP_STATUS_ACTIVE\x10\x01\x12\x17\n\x13\x41PP_STATUS_ARCHIVED\x10\x02\x32\xdb\x04\n\nAppService\x12M\n\x06\x43reate\x12 .transcodely.v1.CreateAppRequest\x1a!.transcodely.v1.CreateAppResponse\x12\x44\n\x03Get\x12\x1d.transcodely.v1.GetAppRequest\x1a\x1e.transcodely.v1.GetAppResponse\x12M\n\x06Update\x12 .transcodely.v1.UpdateAppRequest\x1a!.transcodely.v1.UpdateAppResponse\x12I\n\x04List\x12\x1f.transcodely.v1.ListAppsRequest\x1a .transcodely.v1.ListAppsResponse\x12P\n\x07\x41rchive\x12!.transcodely.v1.ArchiveAppRequest\x1a\".transcodely.v1.ArchiveAppResponse\x12\\\n\rEnableHosting\x12$.transcodely.v1.EnableHostingRequest\x1a%.transcodely.v1.EnableHostingResponse\x12n\n\x13UpdateHostingConfig\x12*.transcodely.v1.UpdateHostingConfigRequest\x1a+.transcodely.v1.UpdateHostingConfigResponseb\x06proto3')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'transcodely.v1.app_pb2', _globals)
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
DESCRIPTOR._loaded_options = None
|
|
37
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['org_id']._loaded_options = None
|
|
38
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['org_id']._serialized_options = b'\272H\033r\0262\024^org_[a-zA-Z0-9_-]+$\310\001\001'
|
|
39
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['name']._loaded_options = None
|
|
40
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['name']._serialized_options = b'\272H\tr\004\020\001\030<\310\001\001'
|
|
41
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['description']._loaded_options = None
|
|
42
|
+
_globals['_CREATEAPPREQUEST'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\364\003'
|
|
43
|
+
_globals['_GETAPPREQUEST'].fields_by_name['id']._loaded_options = None
|
|
44
|
+
_globals['_GETAPPREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^app_[a-zA-Z0-9_-]+$\310\001\001'
|
|
45
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['id']._loaded_options = None
|
|
46
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^app_[a-zA-Z0-9_-]+$\310\001\001'
|
|
47
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['name']._loaded_options = None
|
|
48
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['name']._serialized_options = b'\272H\006r\004\020\001\030<'
|
|
49
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['description']._loaded_options = None
|
|
50
|
+
_globals['_UPDATEAPPREQUEST'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\364\003'
|
|
51
|
+
_globals['_LISTAPPSREQUEST'].fields_by_name['org_id']._loaded_options = None
|
|
52
|
+
_globals['_LISTAPPSREQUEST'].fields_by_name['org_id']._serialized_options = b'\272H\033r\0262\024^org_[a-zA-Z0-9_-]+$\310\001\001'
|
|
53
|
+
_globals['_ARCHIVEAPPREQUEST'].fields_by_name['id']._loaded_options = None
|
|
54
|
+
_globals['_ARCHIVEAPPREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^app_[a-zA-Z0-9_-]+$\310\001\001'
|
|
55
|
+
_globals['_ENABLEHOSTINGREQUEST'].fields_by_name['id']._loaded_options = None
|
|
56
|
+
_globals['_ENABLEHOSTINGREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^app_[a-zA-Z0-9_-]+$\310\001\001'
|
|
57
|
+
_globals['_UPDATEHOSTINGCONFIGREQUEST'].fields_by_name['id']._loaded_options = None
|
|
58
|
+
_globals['_UPDATEHOSTINGCONFIGREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^app_[a-zA-Z0-9_-]+$\310\001\001'
|
|
59
|
+
_globals['_APPSTATUS']._serialized_start=2985
|
|
60
|
+
_globals['_APPSTATUS']._serialized_end=3072
|
|
61
|
+
_globals['_APP']._serialized_start=136
|
|
62
|
+
_globals['_APP']._serialized_end=825
|
|
63
|
+
_globals['_CREATEAPPREQUEST']._serialized_start=828
|
|
64
|
+
_globals['_CREATEAPPREQUEST']._serialized_end=1078
|
|
65
|
+
_globals['_CREATEAPPRESPONSE']._serialized_start=1080
|
|
66
|
+
_globals['_CREATEAPPRESPONSE']._serialized_end=1160
|
|
67
|
+
_globals['_GETAPPREQUEST']._serialized_start=1162
|
|
68
|
+
_globals['_GETAPPREQUEST']._serialized_end=1225
|
|
69
|
+
_globals['_GETAPPRESPONSE']._serialized_start=1227
|
|
70
|
+
_globals['_GETAPPRESPONSE']._serialized_end=1282
|
|
71
|
+
_globals['_UPDATEAPPREQUEST']._serialized_start=1285
|
|
72
|
+
_globals['_UPDATEAPPREQUEST']._serialized_end=1476
|
|
73
|
+
_globals['_UPDATEAPPRESPONSE']._serialized_start=1478
|
|
74
|
+
_globals['_UPDATEAPPRESPONSE']._serialized_end=1558
|
|
75
|
+
_globals['_LISTAPPSREQUEST']._serialized_start=1561
|
|
76
|
+
_globals['_LISTAPPSREQUEST']._serialized_end=1743
|
|
77
|
+
_globals['_LISTAPPSRESPONSE']._serialized_start=1745
|
|
78
|
+
_globals['_LISTAPPSRESPONSE']._serialized_end=1872
|
|
79
|
+
_globals['_ARCHIVEAPPREQUEST']._serialized_start=1874
|
|
80
|
+
_globals['_ARCHIVEAPPREQUEST']._serialized_end=1941
|
|
81
|
+
_globals['_ARCHIVEAPPRESPONSE']._serialized_start=1943
|
|
82
|
+
_globals['_ARCHIVEAPPRESPONSE']._serialized_end=2002
|
|
83
|
+
_globals['_ENABLEHOSTINGREQUEST']._serialized_start=2004
|
|
84
|
+
_globals['_ENABLEHOSTINGREQUEST']._serialized_end=2074
|
|
85
|
+
_globals['_ENABLEHOSTINGRESPONSE']._serialized_start=2076
|
|
86
|
+
_globals['_ENABLEHOSTINGRESPONSE']._serialized_end=2138
|
|
87
|
+
_globals['_HOSTINGCONFIG']._serialized_start=2141
|
|
88
|
+
_globals['_HOSTINGCONFIG']._serialized_end=2483
|
|
89
|
+
_globals['_AUTOPROFILEDEFAULTS']._serialized_start=2486
|
|
90
|
+
_globals['_AUTOPROFILEDEFAULTS']._serialized_end=2764
|
|
91
|
+
_globals['_UPDATEHOSTINGCONFIGREQUEST']._serialized_start=2767
|
|
92
|
+
_globals['_UPDATEHOSTINGCONFIGREQUEST']._serialized_end=2913
|
|
93
|
+
_globals['_UPDATEHOSTINGCONFIGRESPONSE']._serialized_start=2915
|
|
94
|
+
_globals['_UPDATEHOSTINGCONFIGRESPONSE']._serialized_end=2983
|
|
95
|
+
_globals['_APPSERVICE']._serialized_start=3075
|
|
96
|
+
_globals['_APPSERVICE']._serialized_end=3678
|
|
97
|
+
# @@protoc_insertion_point(module_scope)
|