mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-03 02:26:43 +09:00
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
"""Request contracts for event-subscription management."""
|
|
|
|
from marshmallow import fields, validate
|
|
|
|
from app.api.contracts import ApiSchema
|
|
|
|
|
|
class CreateEventSubscriptionSchema(ApiSchema):
|
|
name = fields.String(required=True, validate=validate.Length(min=1, max=100))
|
|
url = fields.String(required=True, validate=validate.Length(min=1, max=2048))
|
|
events = fields.List(
|
|
fields.String(validate=validate.Length(min=1, max=100)),
|
|
required=True,
|
|
validate=validate.Length(min=1),
|
|
)
|
|
retry_count = fields.Integer(load_default=3, validate=validate.Range(min=0, max=20))
|
|
timeout_seconds = fields.Integer(
|
|
load_default=10,
|
|
validate=validate.Range(min=1, max=300),
|
|
)
|
|
generate_secret = fields.Boolean(load_default=True)
|
|
headers = fields.Dict(load_default=None, allow_none=True)
|
|
|
|
|
|
class UpdateEventSubscriptionSchema(ApiSchema):
|
|
name = fields.String(validate=validate.Length(min=1, max=100))
|
|
url = fields.String(validate=validate.Length(min=1, max=2048))
|
|
events = fields.List(
|
|
fields.String(validate=validate.Length(min=1, max=100)),
|
|
validate=validate.Length(min=1),
|
|
)
|
|
is_active = fields.Boolean()
|
|
retry_count = fields.Integer(validate=validate.Range(min=0, max=20))
|
|
timeout_seconds = fields.Integer(validate=validate.Range(min=1, max=300))
|
|
headers = fields.Dict(allow_none=True)
|
|
|
|
|
|
class DeliveryListQuerySchema(ApiSchema):
|
|
page = fields.Integer(load_default=1, validate=validate.Range(min=1))
|
|
per_page = fields.Integer(
|
|
load_default=50,
|
|
validate=validate.Range(min=1, max=200),
|
|
)
|