class Pull2Schema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None NewRecords = ForEach(ciocvalidators.NumValidator()) NewFields = ForEach(ciocvalidators.IDValidator())
class BillingInfoSchema(ciocvalidators.RootSchema): StartRange = ciocvalidators.ISODateConverter() EndRange = ciocvalidators.ISODateConverter() IncludeCIC = validators.Bool() IncludeVOL = validators.Bool() OnlyAgencyCodes = ForEach(ciocvalidators.AgencyCodeValidator()) ExcludeAgencyCodes = ForEach(ciocvalidators.AgencyCodeValidator())
class ReminderSchema(validators.RootSchema): if_key_missing = None reminder = ReminderBaseSchema() reminder_agency_ID = ForEach(validators.AgencyCodeValidator) reminder_user_ID = ForEach(validators.IDValidator()) NUM = ForEach(validators.NumValidator(), convert_to_list=True) VNUM = ForEach(validators.VNumValidator(), convert_to_list=True)
class ProfileSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None profile = ProfileBaseSchema() descriptions = ciocvalidators.CultureDictSchema(ProfileDescriptionSchema()) Views = All(validators.Set(use_set=True), ForEach(ciocvalidators.IDValidator())) Fields = ForEach(FieldOrderSchema())
class DirectoryValidator(Schema): id = validators.String() service_ids = ForEach(validators.String()) sdk_keys = ForEach(validators.String()) premium = validators.Bool() name = validators.String() android_key = validators.String() ios_certificate_fingerprint = validators.String() active = validators.Bool() allow_extra_fields = True
class JWEAuthorizationResponsePackageValidator(Schema): """Authorization Response JWE payload entity validator""" service_pins = ForEach() auth_request = validators.String() # UUID type = validators.String() reason = validators.String() denial_reason = validators.String(if_missing=None, if_empty=None) device_id = validators.String() auth_policy = AuthPolicyValidator(if_missing=None) auth_methods = ForEach(AuthMethodsValidator()) allow_extra_fields = True
class ConfigDriver(Schema): """Configuration validator for a driver.""" if_key_missing = None blacklist = String() comment = String() key_binary = ByteString() modaliases = ForEach(String) module = String() package = String() repository = String() series = ForEach(String)
class DirectoryValidator(Schema): """Directory entity validator""" id = validators.String() service_ids = ForEach(validators.String()) sdk_keys = ForEach(validators.String()) premium = validators.Bool() name = validators.String() android_key = validators.String() ios_certificate_fingerprint = validators.String() active = validators.Bool() denial_context_inquiry_enabled = validators.Bool(if_empty=False, if_missing=False) webhook_url = validators.String() allow_extra_fields = True
class NestedDummySchema(Schema): allow_extra_fields = False pre_validators = [NestedVariables] items = ForEach(DummySchema) subfields = DummySchema name = validators.String(not_empty=True) qty = validators.Int(min=4, max=100)
class MotionSchema(Schema): """Motion validate schema Motion validate schema to assure title is not null options is a motion options list containing all options description. participants is user id list of all users allowed to vote on this motion. """ filter_extra_fields = True allow_extra_fields = True title = validators.MinLength(2, not_empty=True) desc = validators.String() options = ForEach(validators.String()) participants = ForEach(validators.Int())
class OfflineToolSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None machine = ForEach(MachineSchema())
class SearchValidators(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None Step = validators.Int(min=1, max=6, if_invalid=None) AgeGroup = ciocvalidators.IDValidator(if_invalid=None) LNID = ciocvalidators.IDValidator(if_invalid=None) CMID = ForEach(ciocvalidators.IDValidator(if_invalid=None)) CMType = ciocvalidators.String(if_invalid=None) GHID = ForEach(ciocvalidators.IDValidator(), if_invalid=None) GHType = validators.String(if_invalid=None) GHID_GRP = ForEach(ciocvalidators.IDValidator(), if_invalid=None) GHID_2 = ForEach(ciocvalidators.IDValidator(), if_invalid=None) GHType_2 = validators.String(if_invalid=None) GHID_GRP_2 = ForEach(ciocvalidators.IDValidator(), if_invalid=None)
class CeilingSchema(BaseSchema): parent = CeilingValidator() name = validators.String(not_empty=True) max_sold = validators.Int(min=0, max=2000000) available_from = validators.DateConverter(month_style='dd/mm/yyyy') available_until = validators.DateConverter(month_style='dd/mm/yyyy') products = ForEach(ProductValidator())
class PostSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None HideField = ForEach(ciocvalidators.IDValidator())
class AuthorizationResponsePackageValidator(Schema): """Authorization Response Package entity validator""" service_pins = ForEach() auth_request = validators.String() # UUID response = validators.Bool() device_id = validators.String() allow_extra_fields = True
class ProductSchema(BaseSchema): category = ProductCategoryValidator() active = validators.Bool() description = validators.String(not_empty=True) cost = validators.Int(min=0, max=20000000) auth = validators.String(if_empty=None) validate = validators.String(if_empty=None) ceilings = ForEach(CeilingValidator())
class PublicationSchema(validators.RootSchema): if_key_missing = None publication = PublicationBaseSchema() descriptions = validators.CultureDictSchema( PublicationDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()]) group = ForEach(HeadingGroupBaseSchema())
class BootSource(Schema): """Configuration validator for boot source configuration.""" if_key_missing = None url = UnicodeString(if_missing=DEFAULT_IMAGES_URL) keyring = UnicodeString(if_missing=DEFAULT_KEYRINGS_PATH) keyring_data = UnicodeString(if_missing="") selections = ForEach(BootSourceSelection, if_missing=[BootSourceSelection.to_python({})])
class ProductSchema(BaseSchema): category = ProductCategoryValidator(not_empty=True) fulfilment_type = FulfilmentTypeValidator(not_empty=False) display_order = validators.Int(not_empty=True) active = validators.Bool() description = validators.String(not_empty=True) badge_text = validators.String(not_empty=False, if_empty=None) cost = validators.Int(min=0, max=20000000) auth = validators.String(if_empty=None) validate = validators.String(if_empty=None) ceilings = ForEach(CeilingValidator())
class ThesaurusFullSchema(validators.RootSchema): if_key_missing = None # subject added at runtime # subject = ThesaurusBaseSchema() descriptions = validators.CultureDictSchema( ThesaurusDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()], chained_validators=[ validators.FlagRequiredIfNoCulture(ThesaurusDescriptionSchema) ], ) UseSubj_ID = All(validators.Set(use_set=True), ForEach(validators.IDValidator())) BroaderSubj_ID = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) ) RelatedSubj_ID = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) ) MakeShared = validators.Bool()
class GeneralHeadingSchema(validators.RootSchema): if_key_missing = None generalheading = GeneralHeadingBaseSchema() descriptions = validators.CultureDictSchema( GeneralHeadingDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()], ) RelatedHeadings = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) )
class ClusterConfiguration(Configuration, metaclass=ClusterConfigurationMeta): """Local configuration for the MAAS cluster.""" maas_url = ConfigurationOption( "maas_url", "The HTTP URL(s) for the MAAS region.", ForEach( ExtendedURL(require_tld=False), convert_to_list=True, if_missing=["http://localhost:5240/MAAS"], ), ) # TFTP options. tftp_port = ConfigurationOption( "tftp_port", "The UDP port on which to listen for TFTP requests.", Number(min=0, max=(2 ** 16) - 1, if_missing=69), ) tftp_root = ConfigurationOption( "tftp_root", "The root directory for TFTP resources.", DirectoryString( # Don't validate values that are already stored. accept_python=True, if_missing=get_tentative_data_path( "/var/lib/maas/boot-resources/current" ), ), ) # GRUB options. @property def grub_root(self): "The root directory for GRUB resources." return os.path.join(self.tftp_root, "grub") # NodeGroup UUID Option, used for migrating to rack controller cluster_uuid = ConfigurationOption( "cluster_uuid", "The UUID for this cluster controller", UUIDString(if_missing=UUID_NOT_SET), ) # Debug options. debug = ConfigurationOption( "debug", "Enable debug mode for detailed error and log reporting.", OneWayStringBool(if_missing=False), )
class EnhancementSchema(Schema): if_key_missing = None allow_extra_fields = True filter_extra_fields = True Title = validators.String(max=255, not_empty=True) SYS_PRIORITY = validators.IntID(not_empty=True) SYS_ESTIMATE = validators.Int(min=0, max=15, not_empty=True) SYS_STATUS = validators.IntID(max=7, not_empty=True) SYS_FUNDER = validators.IntID() BasicDescription = validators.String(max=8000) AdditionalNotes = validators.String(max=2000) SYS_SOURCETYPE = validators.IntID() SourceDetail = validators.String(max=255) Modules = ForEach(validators.String(min=1, max=1)) Keywords = ForEach(validators.IntID()) Releases = ForEach(validators.IntID()) SeeAlso = ForEach(validators.IntID()) chained_validators = [validators.ForceRequire('Modules', 'Keywords')]
class ConditionalGeoFenceValidator(Schema): """Validates conditional geofence policies""" allow_extra_fields = True inside = validators.NotEmpty(accept_iterator=True) outside = validators.NotEmpty(accept_iterator=True) fences = ForEach(not_empty=True) @staticmethod def _validate_python(value, state): if 'inside' in value and 'outside' in value: value['inside'] = PolicyBaseValidator().to_python( value['inside'], state) value['outside'] = PolicyBaseValidator().to_python( value['outside'], state) return value
class SetAnswersSchema(CSRFSchema): """The :class:`~wte.views.quiz.SetAnswersSchema` validates requests to store a new answer for a :class:`~wte.text_formatter.docutils_ext.Quiz`. """ quiz = validators.UnicodeString(not_empty=True) """The :class:`~wte.models.Quiz` name.""" question = validators.UnicodeString(not_empty=True) """The :class:`~wte.models.Quiz` question.""" answer = ForEach(validators.UnicodeString(if_empty='', if_missing='')) """The answer (can be given multiple times for multiple answers).""" correct = validators.StringBool(not_empty=True, if_missing=False, if_empty=False) """Whether the answer is correct or not."""
class ActionSchema(CSRFSchema): """The :class:`~wte.views.user.ActionSchema` handles the validation of user action requests. """ action = All(validators.UnicodeString(not_empty=True), validators.OneOf(['validate', 'password', 'delete'])) """The action to apply""" confirm = validators.StringBool(if_empty=False, if_missing=False) """Whether the user has confirmed the action""" user_id = ForEach(validators.Int(), if_missing=None) """User ids to apply the action to""" q = validators.UnicodeString(if_empty=None, if_missing=None) """Optional query parameter for the redirect""" status = validators.UnicodeString(if_empty=None, if_missing=None) """Optional status parameter for the redirect""" start = validators.UnicodeString(if_empty=None, if_missing=None) """Optional start parameter for the redirect"""
class UpdatePubsSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None descriptions = ciocvalidators.CultureDictSchema( UpdatePubsDescriptionSchema(), pre_validators=[ciocvalidators.DeleteKeyIfEmpty()], ) GHID = All(validators.Set(use_set=True), ForEach(ciocvalidators.IDValidator())) DeleteFeedback = validators.DictConverter({ "Y": True, "N": False }, if_empty=False, if_missing=False)
class CommunitySchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None pre_validators = [viewbase.cull_extra_cultures("descriptions")] community = CommunityBaseSchema() descriptions = ciocvalidators.CultureDictSchema( CommunityDescriptionSchema(), record_cultures=True, delete_empty=False, chained_validators=[ ciocvalidators.FlagRequiredIfNoCulture(CommunityDescriptionSchema) ], ) alt_names = ForEach(AltNameSchema())
class PolicyBaseValidator(Schema): """Base policy validator for legacy and new policies""" allow_extra_fields = True type = validators.String(if_missing="LEGACY") fences = ForEach(PolicyFenceValidator()) @staticmethod def _validate_python(value, state): if value["type"] == "COND_GEO": value.update(ConditionalGeoFenceValidator().to_python( value, state)) elif value["type"] == "METHOD_AMOUNT": value.update(MethodAmountPolicyValidator().to_python(value, state)) elif value["type"] == "FACTORS": value.update(FactorsPolicyValidator().to_python(value, state)) elif value["type"] == "LEGACY": if "deny_rooted_jailbroken" in value: del value["deny_rooted_jailbroken"] if "deny_emulator_simulator" in value: del value["deny_emulator_simulator"] del value["fences"] return value
class AuthPolicyValidator(Schema): """Auth policy validate for auth method insights""" requirement = validators.String(if_missing=None, if_empty=None) amount = validators.Number(if_missing=None) types = ForEach(validators.String(), if_missing=None) geofences = ForEach(GeoFenceValidator(), if_missing=[], if_empty=[])