class KDSResponse(CloudServiceResponse): resource = PolyModelType(StreamResource)
class Container(Model): item = PolyModelType([IntType(), StringType()])
class HostedZoneResponse(CloudServiceResponse): resource = PolyModelType(HostedZoneResource)
class LaunchConfigurationResponse(CloudServiceResponse): resource = PolyModelType(LaunchConfigurationResource)
class TestModel(XMLModel): items = ListType(PolyModelType([Item, Package]))
class DictDyField(BaseDynamicField): type = StringType(default="dict") options = PolyModelType(FieldViewOption, serialize_when_none=False)
class EnumDyField(BaseDynamicField): type = StringType(default="enum") options = DictType(PolyModelType([ StateItemDyField, BadgeItemDyField, ImageItemDyField, DatetimeItemDyField ]), serialize_when_none=False, default={}) @classmethod def data_source(cls, name, key, **kwargs): _data_source = {'key': key, 'name': name} _default_badge = kwargs.get('default_badge', {}) _default_state = kwargs.get('default_state', {}) _default_outline_badge = kwargs.get('default_outline_badge', []) _options_dic = {} for _key in _default_outline_badge: _round_index = len(TYPE_BADGE) _index = _default_outline_badge.index(_key) _num = math.floor(_index / len(TYPE_BADGE)) if _num > 0: _round_index = len(TYPE_BADGE) * _num if _round_index - 1 < _index: _index = _index - _round_index _options_dic[_key] = BadgeItemDyField.set( {'outline_color': TYPE_BADGE[_index]}) for _key in _default_badge: for _badge in _default_badge[_key]: _options_dic[_badge] = BadgeItemDyField.set( {'background_color': _key}) for _key in _default_state: for _state in _default_state[_key]: _state_options = {'icon': {'color': 'gray.400'}} if _key == 'safe': _state_options = {'icon': {'color': 'green.500'}} elif _key == 'disable': _state_options.update({'text_color': 'gray.400'}) elif _key == 'warning': _state_options = {'icon': {'color': 'yellow.500'}} elif _key == 'available': _state_options = {'icon': {'color': 'blue.400'}} elif _key == 'alert': _state_options = { 'text_color': 'red.500', 'icon': { 'color': 'red.500' } } _options_dic[_state] = StateItemDyField.set(_state_options) _data_source.update({'options': _options_dic}) if 'options' in kwargs: _data_source.update({'options': kwargs.get('options')}) if 'reference' in kwargs: _data_source.update({'reference': kwargs.get('reference')}) return cls(_data_source)
class MetaDataViewTable(Model): layout = PolyModelType(BaseLayoutField)
class CloudServiceTypeResponse(BaseResponse): resource_type = StringType(default='inventory.CloudServiceType') match_rules = DictType(ListType(StringType), default={'1': ['name', 'group', 'provider']}) resource = PolyModelType(CloudServiceTypeResource)
class DatabaseSoftwareImagesResponse(CloudServiceResponse): resource = PolyModelType(DatabaseSoftwareImagesResource)
class BackupResponse(CloudServiceResponse): resource = PolyModelType(BackupResource)
class DatabaseResponse(CloudServiceResponse): resource = PolyModelType(DatabaseResource)
class DBSystemResponse(CloudServiceResponse): resource = PolyModelType(DBSystemsResource)
class EnumDyField(BaseDynamicField): type = StringType(default="enum") options = DictType( PolyModelType([ StateItemDyField, BadgeItemDyField, ImageItemDyField, DatetimeItemDyField ]), serialize_when_none=False, default={}, ) @classmethod def data_source(cls, name, key, **kwargs): _data_source = {"key": key, "name": name} _default_badge = kwargs.get("default_badge", {}) _default_state = kwargs.get("default_state", {}) _default_outline_badge = kwargs.get("default_outline_badge", []) _options_dic = {} for _key in _default_outline_badge: _round_index = len(TYPE_BADGE) _index = _default_outline_badge.index(_key) _num = math.floor(_index / len(TYPE_BADGE)) if _num > 0: _round_index = len(TYPE_BADGE) * _num if _round_index - 1 < _index: _index = _index - _round_index _options_dic[_key] = BadgeItemDyField.set( {"outline_color": TYPE_BADGE[_index]}) for _key in _default_badge: for _badge in _default_badge[_key]: _options_dic[_badge] = BadgeItemDyField.set( {"background_color": _key}) for _key in _default_state: for _state in _default_state[_key]: _state_options = {"icon": {"color": "gray.400"}} if _key == "safe": _state_options = {"icon": {"color": "green.500"}} elif _key == "disable": _state_options.update({"text_color": "gray.400"}) elif _key == "warning": _state_options = {"icon": {"color": "yellow.500"}} elif _key == "available": _state_options = {"icon": {"color": "blue.400"}} elif _key == "alert": _state_options = { "text_color": "red.500", "icon": { "color": "red.500" }, } _options_dic[_state] = StateItemDyField.set(_state_options) _data_source.update({"options": _options_dic}) if "options" in kwargs: _data_source.update({"options": kwargs.get("options")}) if "reference" in kwargs: _data_source.update({"reference": kwargs.get("reference")}) return cls(_data_source)
class QuerySearchTableLayoutOption(LayoutOptions): fields = ListType(PolyModelType(BaseDynamicField))
class MetaDataView(Model): table = PolyModelType(MetaDataViewTable, serialize_when_none=False) sub_data = PolyModelType(MetaDataViewSubData, serialize_when_none=False) search = ListType(PolyModelType(BaseDynamicSearch), serialize_when_none=False)
class ListLayoutOption(LayoutOptions): layouts = ListType(PolyModelType(BaseLayoutField))
class RegionResponse(BaseResponse): resource_type = StringType(default='inventory.Region') match_rules = DictType(ListType(StringType), default={'1': ['provider', 'region_code']}) resource = PolyModelType(RegionResource)
class ListDyFieldOptions(FieldViewOption): item = PolyModelType( [BadgeItemDyField, StateDyField, DateTimeDyField, DictDyField], serialize_when_none=False) sub_key = StringType(serialize_when_none=False) delimiter = StringType(serialize_when_none=False)
class BaseResponse(Model): state = StringType(default='SUCCESS', choices=('SUCCESS', 'FAILURE', 'TIMEOUT')) resource_type = StringType(required=True) match_rules = DictType(ListType(StringType), default={}) resource = PolyModelType(Model, default={})
class AutoScalingGroupResponse(CloudServiceResponse): resource = PolyModelType(AutoScalingGroupResource)
class MetaDataViewSubData(Model): layouts = ListType(PolyModelType(BaseLayoutField))
class LaunchTemplateResponse(CloudServiceResponse): resource = PolyModelType(LaunchTemplateResource)
class AssociatedEntity(Model): associate_id = UUIDType(required=True) entity_type = EntityType(required=True) immediate_data = PolyModelType(EntityData, required=True) relationships = ListType(PolyModelType(Relationship), default=list)
class RecipeItem(XMLModel): item = PolyModelType([self.Eggs, self.Sausage])
class ItemLayoutOption(LayoutOptions): fields = ListType(PolyModelType(BaseDynamicField))
class Container(Model): # pylint: disable=function-redefined item = PolyModelType([ModelType(self.TestModel), DecimalType()])
class SimpleTableLayoutOption(LayoutOptions): fields = ListType(PolyModelType(BaseDynamicField))
class DiskResponse(CloudServiceResponse): resource = PolyModelType(DiskResource)
class ECRResponse(CloudServiceResponse): resource = PolyModelType(ECRRepositoryResource)