transcodely 0.3.6__tar.gz → 0.3.7__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.
Files changed (94) hide show
  1. {transcodely-0.3.6 → transcodely-0.3.7}/PKG-INFO +2 -2
  2. {transcodely-0.3.6 → transcodely-0.3.7}/pyproject.toml +1 -1
  3. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/__init__.py +10 -0
  4. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/billing.py +48 -0
  5. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/types.py +30 -0
  6. transcodely-0.3.7/src/transcodely/v1/billing_pb2.py +81 -0
  7. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/billing_pb2.pyi +79 -0
  8. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/common_pb2.py +3 -1
  9. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/common_pb2.pyi +13 -0
  10. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/job_pb2.py +56 -52
  11. transcodely-0.3.7/src/transcodely/v1/organization_pb2.py +81 -0
  12. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/organization_pb2.pyi +20 -2
  13. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/version.py +1 -1
  14. transcodely-0.3.6/src/transcodely/v1/billing_pb2.py +0 -65
  15. transcodely-0.3.6/src/transcodely/v1/organization_pb2.py +0 -81
  16. {transcodely-0.3.6 → transcodely-0.3.7}/.gitignore +0 -0
  17. {transcodely-0.3.6 → transcodely-0.3.7}/LICENSE +0 -0
  18. {transcodely-0.3.6 → transcodely-0.3.7}/README.md +0 -0
  19. {transcodely-0.3.6 → transcodely-0.3.7}/src/buf/__init__.py +0 -0
  20. {transcodely-0.3.6 → transcodely-0.3.7}/src/buf/validate/__init__.py +0 -0
  21. {transcodely-0.3.6 → transcodely-0.3.7}/src/buf/validate/validate_pb2.py +0 -0
  22. {transcodely-0.3.6 → transcodely-0.3.7}/src/buf/validate/validate_pb2.pyi +0 -0
  23. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_codec/__init__.py +0 -0
  24. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_codec/json_codec.py +0 -0
  25. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_transport/__init__.py +0 -0
  26. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_transport/error_mapping.py +0 -0
  27. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_transport/headers.py +0 -0
  28. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/_transport/transport.py +0 -0
  29. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/client.py +0 -0
  30. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/errors.py +0 -0
  31. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/pagination.py +0 -0
  32. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/py.typed +0 -0
  33. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/__init__.py +0 -0
  34. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/_helpers.py +0 -0
  35. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/api_keys.py +0 -0
  36. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/apps.py +0 -0
  37. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/events.py +0 -0
  38. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/health.py +0 -0
  39. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/jobs.py +0 -0
  40. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/memberships.py +0 -0
  41. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/organizations.py +0 -0
  42. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/origins.py +0 -0
  43. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/presets.py +0 -0
  44. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/users.py +0 -0
  45. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/videos.py +0 -0
  46. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/resources/webhook_endpoints.py +0 -0
  47. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/streaming.py +0 -0
  48. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/api_key_pb2.py +0 -0
  49. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/api_key_pb2.pyi +0 -0
  50. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/app_pb2.py +0 -0
  51. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/app_pb2.pyi +0 -0
  52. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_av1_pb2.py +0 -0
  53. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_av1_pb2.pyi +0 -0
  54. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_h264_pb2.py +0 -0
  55. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_h264_pb2.pyi +0 -0
  56. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_h265_pb2.py +0 -0
  57. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_h265_pb2.pyi +0 -0
  58. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_vp9_pb2.py +0 -0
  59. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/codec_vp9_pb2.pyi +0 -0
  60. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/content_aware_pb2.py +0 -0
  61. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/content_aware_pb2.pyi +0 -0
  62. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/drm_pb2.py +0 -0
  63. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/drm_pb2.pyi +0 -0
  64. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/hdr_pb2.py +0 -0
  65. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/hdr_pb2.pyi +0 -0
  66. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/health_pb2.py +0 -0
  67. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/health_pb2.pyi +0 -0
  68. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/job_pb2.pyi +0 -0
  69. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/media_pb2.py +0 -0
  70. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/media_pb2.pyi +0 -0
  71. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/membership_pb2.py +0 -0
  72. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/membership_pb2.pyi +0 -0
  73. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/origin_pb2.py +0 -0
  74. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/origin_pb2.pyi +0 -0
  75. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/preset_pb2.py +0 -0
  76. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/preset_pb2.pyi +0 -0
  77. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/streaming_pb2.py +0 -0
  78. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/streaming_pb2.pyi +0 -0
  79. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/subtitles_pb2.py +0 -0
  80. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/subtitles_pb2.pyi +0 -0
  81. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/thumbnails_pb2.py +0 -0
  82. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/thumbnails_pb2.pyi +0 -0
  83. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/user_pb2.py +0 -0
  84. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/user_pb2.pyi +0 -0
  85. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/video_pb2.py +0 -0
  86. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/video_pb2.pyi +0 -0
  87. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/watermark_pb2.py +0 -0
  88. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/watermark_pb2.pyi +0 -0
  89. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/webhook_pb2.py +0 -0
  90. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/v1/webhook_pb2.pyi +0 -0
  91. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/webhooks/__init__.py +0 -0
  92. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/webhooks/construct_event.py +0 -0
  93. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/webhooks/signature.py +0 -0
  94. {transcodely-0.3.6 → transcodely-0.3.7}/src/transcodely/webhooks/types.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: transcodely
3
- Version: 0.3.6
3
+ Version: 0.3.7
4
4
  Summary: Official Python SDK for the Transcodely video transcoding API
5
5
  Project-URL: Homepage, https://transcodely.com
6
6
  Project-URL: Documentation, https://transcodely.com/docs
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "transcodely"
7
- version = "0.3.6"
7
+ version = "0.3.7"
8
8
  description = "Official Python SDK for the Transcodely video transcoding API"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -55,6 +55,10 @@ from .types import (
55
55
  App,
56
56
  AudioTrackConfig,
57
57
  AutoABRConfig,
58
+ BillingPaymentMethod,
59
+ BillingPortalSession,
60
+ BillingProfile,
61
+ BillingStanding,
58
62
  ChapterPoint,
59
63
  ChapterResult,
60
64
  ClipConfig,
@@ -77,6 +81,7 @@ from .types import (
77
81
  OutputFormat,
78
82
  OutputSpec,
79
83
  OutputStatus,
84
+ PaymentMethodState,
80
85
  Preset,
81
86
  PresetVariant,
82
87
  Resolution,
@@ -127,6 +132,10 @@ __all__ = [
127
132
  "AudioTrackConfig",
128
133
  "AuthenticationError",
129
134
  "AutoABRConfig",
135
+ "BillingPaymentMethod",
136
+ "BillingPortalSession",
137
+ "BillingProfile",
138
+ "BillingStanding",
130
139
  "ChapterPoint",
131
140
  "ChapterResult",
132
141
  "ClipConfig",
@@ -158,6 +167,7 @@ __all__ = [
158
167
  "OutputStatus",
159
168
  "Page",
160
169
  "PageContents",
170
+ "PaymentMethodState",
161
171
  "PermissionError",
162
172
  "PreconditionError",
163
173
  "Preset",
@@ -88,3 +88,51 @@ class Billing:
88
88
  billing_pb2.GetUpcomingInvoiceResponse(),
89
89
  opts,
90
90
  ).invoice
91
+
92
+ def retrieve_profile(self, opts: CallOptions | None = None) -> billing_pb2.BillingProfile:
93
+ """Retrieve the organization's payment standing.
94
+
95
+ Reports whether the payment provider holds a chargeable method, and
96
+ whatever it will say about that method for display. Read-only and
97
+ side-effect free — it never creates provider resources. An organization
98
+ that has never touched billing reports ``PAYMENT_METHOD_STATE_NONE``
99
+ and no payment methods.
100
+
101
+ ``payment_method_state`` is the only reliable signal. A method's
102
+ ``brand`` and ``last4`` are frequently absent even for a working card,
103
+ because the provider does not always expose card metadata; render such
104
+ a method as "Card on file" rather than treating the missing digits as
105
+ an error.
106
+ """
107
+ req = billing_pb2.GetBillingProfileRequest()
108
+ return self._t.unary(
109
+ _SERVICE,
110
+ "GetBillingProfile",
111
+ req,
112
+ billing_pb2.GetBillingProfileResponse(),
113
+ opts,
114
+ ).profile
115
+
116
+ def create_portal_session(
117
+ self, opts: CallOptions | None = None
118
+ ) -> billing_pb2.BillingPortalSession:
119
+ """Create a session for the payment provider's hosted billing portal.
120
+
121
+ The portal is where a payment method is added or replaced and where
122
+ receipts live — card details never touch this SDK.
123
+
124
+ The first call for an organization also links it to the payment
125
+ provider, so the returned portal is already attached to this
126
+ organization's billing account. Safe to call repeatedly.
127
+
128
+ The session is single-use and expires; request a fresh one per visit
129
+ rather than storing the URL.
130
+ """
131
+ req = billing_pb2.CreateBillingPortalSessionRequest()
132
+ return self._t.unary(
133
+ _SERVICE,
134
+ "CreateBillingPortalSession",
135
+ req,
136
+ billing_pb2.CreateBillingPortalSessionResponse(),
137
+ opts,
138
+ ).session
@@ -61,7 +61,20 @@ from transcodely.v1.app_pb2 import (
61
61
  # token for an organization owner plus ``organization_id`` — an API key is
62
62
  # scoped to one app, while an invoice settles a whole organization, so API keys
63
63
  # are rejected.
64
+ #
65
+ # ``BillingProfile`` reports whether the payment provider holds a chargeable
66
+ # method; a portal session is the only place a card is added or replaced, so
67
+ # card details never reach this SDK. Branch on ``PaymentMethodState``, not on
68
+ # the card fields — ``brand`` and ``last4`` are frequently absent even for a
69
+ # working card.
64
70
  from transcodely.v1.billing_pb2 import (
71
+ BillingPaymentMethod,
72
+ BillingPortalSession,
73
+ BillingProfile,
74
+ CreateBillingPortalSessionRequest,
75
+ CreateBillingPortalSessionResponse,
76
+ GetBillingProfileRequest,
77
+ GetBillingProfileResponse,
65
78
  GetInvoiceRequest,
66
79
  GetInvoiceResponse,
67
80
  GetUpcomingInvoiceRequest,
@@ -72,13 +85,21 @@ from transcodely.v1.billing_pb2 import (
72
85
  InvoiceStatus,
73
86
  ListInvoicesRequest,
74
87
  ListInvoicesResponse,
88
+ PaymentMethodState,
75
89
  )
76
90
  from transcodely.v1.codec_av1_pb2 import AV1Options
77
91
  from transcodely.v1.codec_h264_pb2 import H264Options
78
92
  from transcodely.v1.codec_h265_pb2 import H265Options
79
93
  from transcodely.v1.codec_vp9_pb2 import VP9Options
94
+
95
+ # ``BillingStanding`` is ``BillingProfile.standing`` — derived from the
96
+ # organization's billing facts rather than assigned, so there is nothing to set.
97
+ # ``FREE`` and ``DELINQUENT`` both resolve usage limits to the free tier's, but
98
+ # ``DELINQUENT`` still bills; neither is a suspension. An organization exempt
99
+ # from the payment-method requirement always reports ``ACTIVE``.
80
100
  from transcodely.v1.common_pb2 import (
81
101
  AudioCodec,
102
+ BillingStanding,
82
103
  BitrateMode,
83
104
  Container,
84
105
  ContentType,
@@ -388,6 +409,10 @@ __all__ = [
388
409
  "AutoABRConfig",
389
410
  "AutoProfileDefaults",
390
411
  "BYOKConfig",
412
+ "BillingPaymentMethod",
413
+ "BillingPortalSession",
414
+ "BillingProfile",
415
+ "BillingStanding",
391
416
  "BitrateMode",
392
417
  "BurnInStyle",
393
418
  "CancelJobRequest",
@@ -414,6 +439,8 @@ __all__ = [
414
439
  "CreateAPIKeyResponse",
415
440
  "CreateAppRequest",
416
441
  "CreateAppResponse",
442
+ "CreateBillingPortalSessionRequest",
443
+ "CreateBillingPortalSessionResponse",
417
444
  "CreateFromUrlRequest",
418
445
  "CreateFromUrlResponse",
419
446
  "CreateJobRequest",
@@ -457,6 +484,8 @@ __all__ = [
457
484
  "GetAPIKeyResponse",
458
485
  "GetAppRequest",
459
486
  "GetAppResponse",
487
+ "GetBillingProfileRequest",
488
+ "GetBillingProfileResponse",
460
489
  "GetEndpointHealthRequest",
461
490
  "GetEndpointHealthResponse",
462
491
  "GetInvoiceRequest",
@@ -559,6 +588,7 @@ __all__ = [
559
588
  "OutputVariantResult",
560
589
  "PaginationRequest",
561
590
  "PaginationResponse",
591
+ "PaymentMethodState",
562
592
  "Preset",
563
593
  "PresetVariant",
564
594
  "PricingSnapshot",
@@ -0,0 +1,81 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: transcodely/v1/billing.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/billing.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/billing.proto\x12\x0etranscodely.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1btranscodely/v1/common.proto\"\xa5\x05\n\x07Invoice\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n\x06object\x18\x02 \x01(\tR\x06object\x12\x15\n\x06org_id\x18\x03 \x01(\tR\x05orgId\x12\x35\n\x06status\x18\x04 \x01(\x0e\x32\x1d.transcodely.v1.InvoiceStatusR\x06status\x12=\n\x0cperiod_start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bperiodStart\x12\x39\n\nperiod_end\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tperiodEnd\x12\x1a\n\x08\x63urrency\x18\x07 \x01(\tR\x08\x63urrency\x12%\n\x0esubtotal_cents\x18\x08 \x01(\x03R\rsubtotalCents\x12\x1f\n\x0btotal_cents\x18\t \x01(\x03R\ntotalCents\x12;\n\x17provider_invoice_number\x18\n \x01(\tH\x00R\x15providerInvoiceNumber\x88\x01\x01\x12=\n\x0c\x66inalized_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0b\x66inalizedAt\x12\x33\n\x07paid_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x06paidAt\x12>\n\nline_items\x18\r \x03(\x0b\x32\x1f.transcodely.v1.InvoiceLineItemR\tlineItems\x12\x39\n\ncreated_at\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAtB\x1a\n\x18_provider_invoice_number\"\xf6\x02\n\x0fInvoiceLineItem\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12<\n\tline_type\x18\x02 \x01(\x0e\x32\x1f.transcodely.v1.InvoiceLineTypeR\x08lineType\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x08quantity\x18\x04 \x01(\x01H\x00R\x08quantity\x88\x01\x01\x12\x12\n\x04unit\x18\x05 \x01(\tR\x04unit\x12!\n\x0c\x61mount_cents\x18\x06 \x01(\x03R\x0b\x61mountCents\x12O\n\ndimensions\x18\x07 \x03(\x0b\x32/.transcodely.v1.InvoiceLineItem.DimensionsEntryR\ndimensions\x1a=\n\x0f\x44imensionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0b\n\t_quantity\"\x90\x04\n\x0e\x42illingProfile\x12\x16\n\x06object\x18\x01 \x01(\tR\x06object\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12T\n\x14payment_method_state\x18\x03 \x01(\x0e\x32\".transcodely.v1.PaymentMethodStateR\x12paymentMethodState\x12M\n\x0fpayment_methods\x18\x04 \x03(\x0b\x32$.transcodely.v1.BillingPaymentMethodR\x0epaymentMethods\x12(\n\rbilling_email\x18\x05 \x01(\tH\x00R\x0c\x62illingEmail\x88\x01\x01\x12;\n\x08standing\x18\x06 \x01(\x0e\x32\x1f.transcodely.v1.BillingStandingR\x08standing\x12@\n\x0bgrace_until\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\ngraceUntil\x88\x01\x01\x12\'\n\x0fstanding_reason\x18\x08 \x01(\tR\x0estandingReason\x12\x36\n\x17payment_method_required\x18\t \x01(\x08R\x15paymentMethodRequiredB\x10\n\x0e_billing_emailB\x0e\n\x0c_grace_until\"\x80\x02\n\x14\x42illingPaymentMethod\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x19\n\x05\x62rand\x18\x03 \x01(\tH\x00R\x05\x62rand\x88\x01\x01\x12\x19\n\x05last4\x18\x04 \x01(\tH\x01R\x05last4\x88\x01\x01\x12 \n\texp_month\x18\x05 \x01(\x05H\x02R\x08\x65xpMonth\x88\x01\x01\x12\x1e\n\x08\x65xp_year\x18\x06 \x01(\x05H\x03R\x07\x65xpYear\x88\x01\x01\x12\x1d\n\nis_default\x18\x07 \x01(\x08R\tisDefaultB\x08\n\x06_brandB\x08\n\x06_last4B\x0c\n\n_exp_monthB\x0b\n\t_exp_year\"{\n\x14\x42illingPortalSession\x12\x16\n\x06object\x18\x01 \x01(\tR\x06object\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"X\n\x13ListInvoicesRequest\x12\x41\n\npagination\x18\x01 \x01(\x0b\x32!.transcodely.v1.PaginationRequestR\npagination\"\x8f\x01\n\x14ListInvoicesResponse\x12\x33\n\x08invoices\x18\x01 \x03(\x0b\x32\x17.transcodely.v1.InvoiceR\x08invoices\x12\x42\n\npagination\x18\x02 \x01(\x0b\x32\".transcodely.v1.PaginationResponseR\npagination\"C\n\x11GetInvoiceRequest\x12.\n\x02id\x18\x01 \x01(\tB\x1e\xbaH\x1br\x16\x32\x14^inv_[a-zA-Z0-9_-]+$\xc8\x01\x01R\x02id\"G\n\x12GetInvoiceResponse\x12\x31\n\x07invoice\x18\x01 \x01(\x0b\x32\x17.transcodely.v1.InvoiceR\x07invoice\"\x1b\n\x19GetUpcomingInvoiceRequest\"O\n\x1aGetUpcomingInvoiceResponse\x12\x31\n\x07invoice\x18\x01 \x01(\x0b\x32\x17.transcodely.v1.InvoiceR\x07invoice\"\x1a\n\x18GetBillingProfileRequest\"U\n\x19GetBillingProfileResponse\x12\x38\n\x07profile\x18\x01 \x01(\x0b\x32\x1e.transcodely.v1.BillingProfileR\x07profile\"#\n!CreateBillingPortalSessionRequest\"d\n\"CreateBillingPortalSessionResponse\x12>\n\x07session\x18\x01 \x01(\x0b\x32$.transcodely.v1.BillingPortalSessionR\x07session*\xb6\x01\n\rInvoiceStatus\x12\x1e\n\x1aINVOICE_STATUS_UNSPECIFIED\x10\x00\x12\x18\n\x14INVOICE_STATUS_DRAFT\x10\x01\x12\x17\n\x13INVOICE_STATUS_OPEN\x10\x02\x12\x17\n\x13INVOICE_STATUS_PAID\x10\x03\x12\x17\n\x13INVOICE_STATUS_VOID\x10\x04\x12 \n\x1cINVOICE_STATUS_UNCOLLECTIBLE\x10\x05*\xb0\x01\n\x0fInvoiceLineType\x12!\n\x1dINVOICE_LINE_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17INVOICE_LINE_TYPE_USAGE\x10\x01\x12\x19\n\x15INVOICE_LINE_TYPE_FEE\x10\x02\x12 \n\x1cINVOICE_LINE_TYPE_MIN_CHARGE\x10\x03\x12 \n\x1cINVOICE_LINE_TYPE_ADJUSTMENT\x10\x04*{\n\x12PaymentMethodState\x12$\n PAYMENT_METHOD_STATE_UNSPECIFIED\x10\x00\x12\x1d\n\x19PAYMENT_METHOD_STATE_NONE\x10\x01\x12 \n\x1cPAYMENT_METHOD_STATE_ON_FILE\x10\x02\x32\x9d\x04\n\x0e\x42illingService\x12Y\n\x0cListInvoices\x12#.transcodely.v1.ListInvoicesRequest\x1a$.transcodely.v1.ListInvoicesResponse\x12S\n\nGetInvoice\x12!.transcodely.v1.GetInvoiceRequest\x1a\".transcodely.v1.GetInvoiceResponse\x12k\n\x12GetUpcomingInvoice\x12).transcodely.v1.GetUpcomingInvoiceRequest\x1a*.transcodely.v1.GetUpcomingInvoiceResponse\x12h\n\x11GetBillingProfile\x12(.transcodely.v1.GetBillingProfileRequest\x1a).transcodely.v1.GetBillingProfileResponse\x12\x83\x01\n\x1a\x43reateBillingPortalSession\x12\x31.transcodely.v1.CreateBillingPortalSessionRequest\x1a\x32.transcodely.v1.CreateBillingPortalSessionResponseb\x06proto3')
31
+
32
+ _globals = globals()
33
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
34
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'transcodely.v1.billing_pb2', _globals)
35
+ if not _descriptor._USE_C_DESCRIPTORS:
36
+ DESCRIPTOR._loaded_options = None
37
+ _globals['_INVOICELINEITEM_DIMENSIONSENTRY']._loaded_options = None
38
+ _globals['_INVOICELINEITEM_DIMENSIONSENTRY']._serialized_options = b'8\001'
39
+ _globals['_GETINVOICEREQUEST'].fields_by_name['id']._loaded_options = None
40
+ _globals['_GETINVOICEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\033r\0262\024^inv_[a-zA-Z0-9_-]+$\310\001\001'
41
+ _globals['_INVOICESTATUS']._serialized_start=2854
42
+ _globals['_INVOICESTATUS']._serialized_end=3036
43
+ _globals['_INVOICELINETYPE']._serialized_start=3039
44
+ _globals['_INVOICELINETYPE']._serialized_end=3215
45
+ _globals['_PAYMENTMETHODSTATE']._serialized_start=3217
46
+ _globals['_PAYMENTMETHODSTATE']._serialized_end=3340
47
+ _globals['_INVOICE']._serialized_start=140
48
+ _globals['_INVOICE']._serialized_end=817
49
+ _globals['_INVOICELINEITEM']._serialized_start=820
50
+ _globals['_INVOICELINEITEM']._serialized_end=1194
51
+ _globals['_INVOICELINEITEM_DIMENSIONSENTRY']._serialized_start=1120
52
+ _globals['_INVOICELINEITEM_DIMENSIONSENTRY']._serialized_end=1181
53
+ _globals['_BILLINGPROFILE']._serialized_start=1197
54
+ _globals['_BILLINGPROFILE']._serialized_end=1725
55
+ _globals['_BILLINGPAYMENTMETHOD']._serialized_start=1728
56
+ _globals['_BILLINGPAYMENTMETHOD']._serialized_end=1984
57
+ _globals['_BILLINGPORTALSESSION']._serialized_start=1986
58
+ _globals['_BILLINGPORTALSESSION']._serialized_end=2109
59
+ _globals['_LISTINVOICESREQUEST']._serialized_start=2111
60
+ _globals['_LISTINVOICESREQUEST']._serialized_end=2199
61
+ _globals['_LISTINVOICESRESPONSE']._serialized_start=2202
62
+ _globals['_LISTINVOICESRESPONSE']._serialized_end=2345
63
+ _globals['_GETINVOICEREQUEST']._serialized_start=2347
64
+ _globals['_GETINVOICEREQUEST']._serialized_end=2414
65
+ _globals['_GETINVOICERESPONSE']._serialized_start=2416
66
+ _globals['_GETINVOICERESPONSE']._serialized_end=2487
67
+ _globals['_GETUPCOMINGINVOICEREQUEST']._serialized_start=2489
68
+ _globals['_GETUPCOMINGINVOICEREQUEST']._serialized_end=2516
69
+ _globals['_GETUPCOMINGINVOICERESPONSE']._serialized_start=2518
70
+ _globals['_GETUPCOMINGINVOICERESPONSE']._serialized_end=2597
71
+ _globals['_GETBILLINGPROFILEREQUEST']._serialized_start=2599
72
+ _globals['_GETBILLINGPROFILEREQUEST']._serialized_end=2625
73
+ _globals['_GETBILLINGPROFILERESPONSE']._serialized_start=2627
74
+ _globals['_GETBILLINGPROFILERESPONSE']._serialized_end=2712
75
+ _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_start=2714
76
+ _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_end=2749
77
+ _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_start=2751
78
+ _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_end=2851
79
+ _globals['_BILLINGSERVICE']._serialized_start=3343
80
+ _globals['_BILLINGSERVICE']._serialized_end=3884
81
+ # @@protoc_insertion_point(module_scope)
@@ -25,6 +25,12 @@ class InvoiceLineType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
25
25
  INVOICE_LINE_TYPE_FEE: _ClassVar[InvoiceLineType]
26
26
  INVOICE_LINE_TYPE_MIN_CHARGE: _ClassVar[InvoiceLineType]
27
27
  INVOICE_LINE_TYPE_ADJUSTMENT: _ClassVar[InvoiceLineType]
28
+
29
+ class PaymentMethodState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
30
+ __slots__ = ()
31
+ PAYMENT_METHOD_STATE_UNSPECIFIED: _ClassVar[PaymentMethodState]
32
+ PAYMENT_METHOD_STATE_NONE: _ClassVar[PaymentMethodState]
33
+ PAYMENT_METHOD_STATE_ON_FILE: _ClassVar[PaymentMethodState]
28
34
  INVOICE_STATUS_UNSPECIFIED: InvoiceStatus
29
35
  INVOICE_STATUS_DRAFT: InvoiceStatus
30
36
  INVOICE_STATUS_OPEN: InvoiceStatus
@@ -36,6 +42,9 @@ INVOICE_LINE_TYPE_USAGE: InvoiceLineType
36
42
  INVOICE_LINE_TYPE_FEE: InvoiceLineType
37
43
  INVOICE_LINE_TYPE_MIN_CHARGE: InvoiceLineType
38
44
  INVOICE_LINE_TYPE_ADJUSTMENT: InvoiceLineType
45
+ PAYMENT_METHOD_STATE_UNSPECIFIED: PaymentMethodState
46
+ PAYMENT_METHOD_STATE_NONE: PaymentMethodState
47
+ PAYMENT_METHOD_STATE_ON_FILE: PaymentMethodState
39
48
 
40
49
  class Invoice(_message.Message):
41
50
  __slots__ = ("id", "object", "org_id", "status", "period_start", "period_end", "currency", "subtotal_cents", "total_cents", "provider_invoice_number", "finalized_at", "paid_at", "line_items", "created_at")
@@ -94,6 +103,56 @@ class InvoiceLineItem(_message.Message):
94
103
  dimensions: _containers.ScalarMap[str, str]
95
104
  def __init__(self, id: _Optional[str] = ..., line_type: _Optional[_Union[InvoiceLineType, str]] = ..., description: _Optional[str] = ..., quantity: _Optional[float] = ..., unit: _Optional[str] = ..., amount_cents: _Optional[int] = ..., dimensions: _Optional[_Mapping[str, str]] = ...) -> None: ...
96
105
 
106
+ class BillingProfile(_message.Message):
107
+ __slots__ = ("object", "org_id", "payment_method_state", "payment_methods", "billing_email", "standing", "grace_until", "standing_reason", "payment_method_required")
108
+ OBJECT_FIELD_NUMBER: _ClassVar[int]
109
+ ORG_ID_FIELD_NUMBER: _ClassVar[int]
110
+ PAYMENT_METHOD_STATE_FIELD_NUMBER: _ClassVar[int]
111
+ PAYMENT_METHODS_FIELD_NUMBER: _ClassVar[int]
112
+ BILLING_EMAIL_FIELD_NUMBER: _ClassVar[int]
113
+ STANDING_FIELD_NUMBER: _ClassVar[int]
114
+ GRACE_UNTIL_FIELD_NUMBER: _ClassVar[int]
115
+ STANDING_REASON_FIELD_NUMBER: _ClassVar[int]
116
+ PAYMENT_METHOD_REQUIRED_FIELD_NUMBER: _ClassVar[int]
117
+ object: str
118
+ org_id: str
119
+ payment_method_state: PaymentMethodState
120
+ payment_methods: _containers.RepeatedCompositeFieldContainer[BillingPaymentMethod]
121
+ billing_email: str
122
+ standing: _common_pb2.BillingStanding
123
+ grace_until: _timestamp_pb2.Timestamp
124
+ standing_reason: str
125
+ payment_method_required: bool
126
+ def __init__(self, object: _Optional[str] = ..., org_id: _Optional[str] = ..., payment_method_state: _Optional[_Union[PaymentMethodState, str]] = ..., payment_methods: _Optional[_Iterable[_Union[BillingPaymentMethod, _Mapping]]] = ..., billing_email: _Optional[str] = ..., standing: _Optional[_Union[_common_pb2.BillingStanding, str]] = ..., grace_until: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., standing_reason: _Optional[str] = ..., payment_method_required: bool = ...) -> None: ...
127
+
128
+ class BillingPaymentMethod(_message.Message):
129
+ __slots__ = ("id", "type", "brand", "last4", "exp_month", "exp_year", "is_default")
130
+ ID_FIELD_NUMBER: _ClassVar[int]
131
+ TYPE_FIELD_NUMBER: _ClassVar[int]
132
+ BRAND_FIELD_NUMBER: _ClassVar[int]
133
+ LAST4_FIELD_NUMBER: _ClassVar[int]
134
+ EXP_MONTH_FIELD_NUMBER: _ClassVar[int]
135
+ EXP_YEAR_FIELD_NUMBER: _ClassVar[int]
136
+ IS_DEFAULT_FIELD_NUMBER: _ClassVar[int]
137
+ id: str
138
+ type: str
139
+ brand: str
140
+ last4: str
141
+ exp_month: int
142
+ exp_year: int
143
+ is_default: bool
144
+ def __init__(self, id: _Optional[str] = ..., type: _Optional[str] = ..., brand: _Optional[str] = ..., last4: _Optional[str] = ..., exp_month: _Optional[int] = ..., exp_year: _Optional[int] = ..., is_default: bool = ...) -> None: ...
145
+
146
+ class BillingPortalSession(_message.Message):
147
+ __slots__ = ("object", "url", "expires_at")
148
+ OBJECT_FIELD_NUMBER: _ClassVar[int]
149
+ URL_FIELD_NUMBER: _ClassVar[int]
150
+ EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
151
+ object: str
152
+ url: str
153
+ expires_at: _timestamp_pb2.Timestamp
154
+ def __init__(self, object: _Optional[str] = ..., url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
155
+
97
156
  class ListInvoicesRequest(_message.Message):
98
157
  __slots__ = ("pagination",)
99
158
  PAGINATION_FIELD_NUMBER: _ClassVar[int]
@@ -129,3 +188,23 @@ class GetUpcomingInvoiceResponse(_message.Message):
129
188
  INVOICE_FIELD_NUMBER: _ClassVar[int]
130
189
  invoice: Invoice
131
190
  def __init__(self, invoice: _Optional[_Union[Invoice, _Mapping]] = ...) -> None: ...
191
+
192
+ class GetBillingProfileRequest(_message.Message):
193
+ __slots__ = ()
194
+ def __init__(self) -> None: ...
195
+
196
+ class GetBillingProfileResponse(_message.Message):
197
+ __slots__ = ("profile",)
198
+ PROFILE_FIELD_NUMBER: _ClassVar[int]
199
+ profile: BillingProfile
200
+ def __init__(self, profile: _Optional[_Union[BillingProfile, _Mapping]] = ...) -> None: ...
201
+
202
+ class CreateBillingPortalSessionRequest(_message.Message):
203
+ __slots__ = ()
204
+ def __init__(self) -> None: ...
205
+
206
+ class CreateBillingPortalSessionResponse(_message.Message):
207
+ __slots__ = ("session",)
208
+ SESSION_FIELD_NUMBER: _ClassVar[int]
209
+ session: BillingPortalSession
210
+ def __init__(self, session: _Optional[_Union[BillingPortalSession, _Mapping]] = ...) -> None: ...
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
25
25
  from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
26
 
27
27
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btranscodely/v1/common.proto\x12\x0etranscodely.v1\x1a\x1b\x62uf/validate/validate.proto\"m\n\x11PaginationRequest\x12\x1f\n\x05limit\x18\x01 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x64(\x00R\x05limit\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x1f\n\x06offset\x18\x03 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x06offset\"t\n\x12PaginationResponse\x12\x1f\n\x0bnext_cursor\x18\x01 \x01(\tR\nnextCursor\x12-\n\x0btotal_count\x18\x02 \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00H\x00R\ntotalCount\x88\x01\x01\x42\x0e\n\x0c_total_count\"\x87\x01\n\x0c\x45rrorDetails\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12I\n\x10\x66ield_violations\x18\x03 \x03(\x0b\x32\x1e.transcodely.v1.FieldViolationR\x0f\x66ieldViolations\"H\n\x0e\x46ieldViolation\x12\x14\n\x05\x66ield\x18\x01 \x01(\tR\x05\x66ield\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription*\x7f\n\nVideoCodec\x12\x1b\n\x17VIDEO_CODEC_UNSPECIFIED\x10\x00\x12\x14\n\x10VIDEO_CODEC_H264\x10\x01\x12\x14\n\x10VIDEO_CODEC_H265\x10\x02\x12\x13\n\x0fVIDEO_CODEC_VP9\x10\x03\x12\x13\n\x0fVIDEO_CODEC_AV1\x10\x04*i\n\nAudioCodec\x12\x1b\n\x17\x41UDIO_CODEC_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x41UDIO_CODEC_AAC\x10\x01\x12\x14\n\x10\x41UDIO_CODEC_OPUS\x10\x02\x12\x13\n\x0f\x41UDIO_CODEC_MP3\x10\x03*\x85\x01\n\tContainer\x12\x19\n\x15\x43ONTAINER_UNSPECIFIED\x10\x00\x12\x11\n\rCONTAINER_MP4\x10\x01\x12\x12\n\x0e\x43ONTAINER_WEBM\x10\x02\x12\x11\n\rCONTAINER_MKV\x10\x03\x12\x10\n\x0c\x43ONTAINER_TS\x10\x04\x12\x11\n\rCONTAINER_MOV\x10\x05*\xaa\x01\n\nResolution\x12\x1a\n\x16RESOLUTION_UNSPECIFIED\x10\x00\x12\x13\n\x0fRESOLUTION_480P\x10\x01\x12\x13\n\x0fRESOLUTION_720P\x10\x02\x12\x14\n\x10RESOLUTION_1080P\x10\x03\x12\x14\n\x10RESOLUTION_1440P\x10\x04\x12\x14\n\x10RESOLUTION_2160P\x10\x05\x12\x14\n\x10RESOLUTION_4320P\x10\x06*z\n\x0bQualityTier\x12\x1c\n\x18QUALITY_TIER_UNSPECIFIED\x10\x00\x12\x18\n\x14QUALITY_TIER_ECONOMY\x10\x01\x12\x19\n\x15QUALITY_TIER_STANDARD\x10\x02\x12\x18\n\x14QUALITY_TIER_PREMIUM\x10\x03*\xd5\x01\n\x0cOutputFormat\x12\x1d\n\x19OUTPUT_FORMAT_UNSPECIFIED\x10\x00\x12\x15\n\x11OUTPUT_FORMAT_MP4\x10\x01\x12\x16\n\x12OUTPUT_FORMAT_WEBM\x10\x02\x12\x15\n\x11OUTPUT_FORMAT_MKV\x10\x03\x12\x15\n\x11OUTPUT_FORMAT_MOV\x10\x04\x12\x15\n\x11OUTPUT_FORMAT_HLS\x10\x05\x12\x16\n\x12OUTPUT_FORMAT_DASH\x10\x06\x12\x1a\n\x16OUTPUT_FORMAT_ADAPTIVE\x10\x07*\xc5\x01\n\x0b\x43ontentType\x12\x1c\n\x18\x43ONTENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x43ONTENT_TYPE_FILM\x10\x01\x12\x1a\n\x16\x43ONTENT_TYPE_ANIMATION\x10\x02\x12\x16\n\x12\x43ONTENT_TYPE_GRAIN\x10\x03\x12\x17\n\x13\x43ONTENT_TYPE_GAMING\x10\x04\x12\x17\n\x13\x43ONTENT_TYPE_SPORTS\x10\x05\x12\x1b\n\x17\x43ONTENT_TYPE_STILLIMAGE\x10\x06*\x9f\x01\n\x0e\x44\x65liveryFormat\x12\x1f\n\x1b\x44\x45LIVERY_FORMAT_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x44\x45LIVERY_FORMAT_PROGRESSIVE\x10\x01\x12\x17\n\x13\x44\x45LIVERY_FORMAT_HLS\x10\x02\x12\x18\n\x14\x44\x45LIVERY_FORMAT_DASH\x10\x03\x12\x18\n\x14\x44\x45LIVERY_FORMAT_CMAF\x10\x04*m\n\x0b\x42itrateMode\x12\x1c\n\x18\x42ITRATE_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42ITRATE_MODE_CRF\x10\x01\x12\x14\n\x10\x42ITRATE_MODE_CBR\x10\x02\x12\x14\n\x10\x42ITRATE_MODE_VBR\x10\x03\x62\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btranscodely/v1/common.proto\x12\x0etranscodely.v1\x1a\x1b\x62uf/validate/validate.proto\"m\n\x11PaginationRequest\x12\x1f\n\x05limit\x18\x01 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x64(\x00R\x05limit\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x1f\n\x06offset\x18\x03 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x06offset\"t\n\x12PaginationResponse\x12\x1f\n\x0bnext_cursor\x18\x01 \x01(\tR\nnextCursor\x12-\n\x0btotal_count\x18\x02 \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00H\x00R\ntotalCount\x88\x01\x01\x42\x0e\n\x0c_total_count\"\x87\x01\n\x0c\x45rrorDetails\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12I\n\x10\x66ield_violations\x18\x03 \x03(\x0b\x32\x1e.transcodely.v1.FieldViolationR\x0f\x66ieldViolations\"H\n\x0e\x46ieldViolation\x12\x14\n\x05\x66ield\x18\x01 \x01(\tR\x05\x66ield\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription*\x7f\n\nVideoCodec\x12\x1b\n\x17VIDEO_CODEC_UNSPECIFIED\x10\x00\x12\x14\n\x10VIDEO_CODEC_H264\x10\x01\x12\x14\n\x10VIDEO_CODEC_H265\x10\x02\x12\x13\n\x0fVIDEO_CODEC_VP9\x10\x03\x12\x13\n\x0fVIDEO_CODEC_AV1\x10\x04*i\n\nAudioCodec\x12\x1b\n\x17\x41UDIO_CODEC_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x41UDIO_CODEC_AAC\x10\x01\x12\x14\n\x10\x41UDIO_CODEC_OPUS\x10\x02\x12\x13\n\x0f\x41UDIO_CODEC_MP3\x10\x03*\x85\x01\n\tContainer\x12\x19\n\x15\x43ONTAINER_UNSPECIFIED\x10\x00\x12\x11\n\rCONTAINER_MP4\x10\x01\x12\x12\n\x0e\x43ONTAINER_WEBM\x10\x02\x12\x11\n\rCONTAINER_MKV\x10\x03\x12\x10\n\x0c\x43ONTAINER_TS\x10\x04\x12\x11\n\rCONTAINER_MOV\x10\x05*\xaa\x01\n\nResolution\x12\x1a\n\x16RESOLUTION_UNSPECIFIED\x10\x00\x12\x13\n\x0fRESOLUTION_480P\x10\x01\x12\x13\n\x0fRESOLUTION_720P\x10\x02\x12\x14\n\x10RESOLUTION_1080P\x10\x03\x12\x14\n\x10RESOLUTION_1440P\x10\x04\x12\x14\n\x10RESOLUTION_2160P\x10\x05\x12\x14\n\x10RESOLUTION_4320P\x10\x06*z\n\x0bQualityTier\x12\x1c\n\x18QUALITY_TIER_UNSPECIFIED\x10\x00\x12\x18\n\x14QUALITY_TIER_ECONOMY\x10\x01\x12\x19\n\x15QUALITY_TIER_STANDARD\x10\x02\x12\x18\n\x14QUALITY_TIER_PREMIUM\x10\x03*\xd5\x01\n\x0cOutputFormat\x12\x1d\n\x19OUTPUT_FORMAT_UNSPECIFIED\x10\x00\x12\x15\n\x11OUTPUT_FORMAT_MP4\x10\x01\x12\x16\n\x12OUTPUT_FORMAT_WEBM\x10\x02\x12\x15\n\x11OUTPUT_FORMAT_MKV\x10\x03\x12\x15\n\x11OUTPUT_FORMAT_MOV\x10\x04\x12\x15\n\x11OUTPUT_FORMAT_HLS\x10\x05\x12\x16\n\x12OUTPUT_FORMAT_DASH\x10\x06\x12\x1a\n\x16OUTPUT_FORMAT_ADAPTIVE\x10\x07*\xc5\x01\n\x0b\x43ontentType\x12\x1c\n\x18\x43ONTENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x43ONTENT_TYPE_FILM\x10\x01\x12\x1a\n\x16\x43ONTENT_TYPE_ANIMATION\x10\x02\x12\x16\n\x12\x43ONTENT_TYPE_GRAIN\x10\x03\x12\x17\n\x13\x43ONTENT_TYPE_GAMING\x10\x04\x12\x17\n\x13\x43ONTENT_TYPE_SPORTS\x10\x05\x12\x1b\n\x17\x43ONTENT_TYPE_STILLIMAGE\x10\x06*\x9f\x01\n\x0e\x44\x65liveryFormat\x12\x1f\n\x1b\x44\x45LIVERY_FORMAT_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x44\x45LIVERY_FORMAT_PROGRESSIVE\x10\x01\x12\x17\n\x13\x44\x45LIVERY_FORMAT_HLS\x10\x02\x12\x18\n\x14\x44\x45LIVERY_FORMAT_DASH\x10\x03\x12\x18\n\x14\x44\x45LIVERY_FORMAT_CMAF\x10\x04*m\n\x0b\x42itrateMode\x12\x1c\n\x18\x42ITRATE_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42ITRATE_MODE_CRF\x10\x01\x12\x14\n\x10\x42ITRATE_MODE_CBR\x10\x02\x12\x14\n\x10\x42ITRATE_MODE_VBR\x10\x03*\xa8\x01\n\x0f\x42illingStanding\x12 \n\x1c\x42ILLING_STANDING_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42ILLING_STANDING_FREE\x10\x01\x12\x1b\n\x17\x42ILLING_STANDING_ACTIVE\x10\x02\x12\x1a\n\x16\x42ILLING_STANDING_GRACE\x10\x03\x12\x1f\n\x1b\x42ILLING_STANDING_DELINQUENT\x10\x04\x62\x06proto3')
29
29
 
30
30
  _globals = globals()
31
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -56,6 +56,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
56
56
  _globals['_DELIVERYFORMAT']._serialized_end=1762
57
57
  _globals['_BITRATEMODE']._serialized_start=1764
58
58
  _globals['_BITRATEMODE']._serialized_end=1873
59
+ _globals['_BILLINGSTANDING']._serialized_start=1876
60
+ _globals['_BILLINGSTANDING']._serialized_end=2044
59
61
  _globals['_PAGINATIONREQUEST']._serialized_start=76
60
62
  _globals['_PAGINATIONREQUEST']._serialized_end=185
61
63
  _globals['_PAGINATIONRESPONSE']._serialized_start=187
@@ -83,6 +83,14 @@ class BitrateMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
83
83
  BITRATE_MODE_CRF: _ClassVar[BitrateMode]
84
84
  BITRATE_MODE_CBR: _ClassVar[BitrateMode]
85
85
  BITRATE_MODE_VBR: _ClassVar[BitrateMode]
86
+
87
+ class BillingStanding(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
88
+ __slots__ = ()
89
+ BILLING_STANDING_UNSPECIFIED: _ClassVar[BillingStanding]
90
+ BILLING_STANDING_FREE: _ClassVar[BillingStanding]
91
+ BILLING_STANDING_ACTIVE: _ClassVar[BillingStanding]
92
+ BILLING_STANDING_GRACE: _ClassVar[BillingStanding]
93
+ BILLING_STANDING_DELINQUENT: _ClassVar[BillingStanding]
86
94
  VIDEO_CODEC_UNSPECIFIED: VideoCodec
87
95
  VIDEO_CODEC_H264: VideoCodec
88
96
  VIDEO_CODEC_H265: VideoCodec
@@ -133,6 +141,11 @@ BITRATE_MODE_UNSPECIFIED: BitrateMode
133
141
  BITRATE_MODE_CRF: BitrateMode
134
142
  BITRATE_MODE_CBR: BitrateMode
135
143
  BITRATE_MODE_VBR: BitrateMode
144
+ BILLING_STANDING_UNSPECIFIED: BillingStanding
145
+ BILLING_STANDING_FREE: BillingStanding
146
+ BILLING_STANDING_ACTIVE: BillingStanding
147
+ BILLING_STANDING_GRACE: BillingStanding
148
+ BILLING_STANDING_DELINQUENT: BillingStanding
136
149
 
137
150
  class PaginationRequest(_message.Message):
138
151
  __slots__ = ("limit", "cursor", "offset")