Source code for snow.config

from marshmallow import Schema, ValidationError, fields, post_load


[docs]class ConfigSchema(Schema): """Snow config schema Attributes: address (str): Instance address, e.g. https://my_instance.service-now.com basic_auth (tuple): (<username>, <password>), mutually exclusive with other authentication methods """ class InternalConfig: """Internal Application config""" def __init__(self, **config): for k, v in config.items(): setattr(self, k, v) address = fields.Url(required=True) basic_auth = fields.Tuple(tuple_fields=(fields.String(), fields.String()), required=False) def __init__(self, *args, **kwargs): super(ConfigSchema, self).__init__(*args, **kwargs) @post_load def make_object(self, data, **_): if {"basic_auth", "oauth"} <= set(data): raise ValidationError("Cannot use multiple authentication methods") elif "basic_auth" in data: pass else: raise ValidationError("No supported authentication method provided") return ConfigSchema.InternalConfig(**data)