Пример #1
0
class ImageRefSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'aspectRatio': 'aspectRatio',
			'autogen': False,
			'colorStyles': {
				'accent': {
					'blue': 0,
					'green': 0,
					'red': 0
				},
				'primary': {
					'blue': 0,
					'green': 0,
					'red': 0
				},
				'scrim': {
					'blue': 0,
					'green': 0,
					'red': 0
				}
			},
			'kind': 'sj#imageRef',
			'url': 'url'
		}
	"""

    aspectRatio = fields.Str()
    autogen = fields.Bool()
    colorStyles = fields.Nested(ImageColorStylesSchema)
    kind = fields.Str(required=True, validate=Equal('sj#imageRef'))
    url = fields.Str(required=True)
Пример #2
0
class SharedPlaylistEntrySchema(MobileClientSchema):
    """

	**Validates**::

		{
			'absolutePosition': 'absolutePosition',
			'creationTimestamp': 'creationTimestamp',
			'deleted': False,
			'id': 'id',
			'kind': 'sj#playlistEntry',
			'lastModifiedTimestamp': 'lastModifiedTimestamp',
			'source': 'source',
			'track': STORE_TRACK,
			'trackId': 'trackId'
		}
	"""

    absolutePosition = fields.Str(required=True)
    creationTimestamp = fields.Str(required=True)
    deleted = fields.Bool(required=True)
    id = fields.Str(required=True)
    kind = fields.Str(required=True, validate=Equal('sj#playlistEntry'))
    lastModifiedTimestamp = fields.Str(required=True)
    source = fields.Str()
    track = fields.Nested(StoreTrackSchema)
    trackId = fields.Str(required=True)
Пример #3
0
class AlbumSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'albumArtist': 'albumArtist',
			'albumArtRef': 'albumArtRef',
			'albumId': 'albumId',
			'artist': 'artist',
			'artistId': ['artistId'],
			'contentType': 'contentType',
			'description': 'description',
			'description_attribution': ATTRIBUTION,
			'explicitType': 'explicitType',
			'kind': 'sj#album',
			'name': 'name',
			'tracks': [STORE_TRACK],
			'year': 2000
		}
	"""

    albumArtist = fields.Str()
    albumArtRef = fields.Str()
    albumId = fields.Str(required=True)
    artist = fields.Str()
    artistId = fields.List(fields.Str)
    contentType = fields.Str()
    description = fields.Str()
    description_attribution = fields.Nested(AttributionSchema)
    explicitType = fields.Str()
    kind = fields.Str(required=True, validate=Equal('sj#album'))
    name = fields.Str(required=True)
    tracks = fields.Nested(StoreTrackSchema, many=True)
    year = fields.Int()
Пример #4
0
class ExploreTabEntitySchema(MobileClientSchema):
    """

	**Validates**::

		{
			'album': ALBUM,
			'genre': GENRE,
			'kind': 'sj#exEntity',
			'playlist': PLAYLIST,
			'track': STORE_TRACK
		}
	"""

    album = fields.Nested(AlbumSchema)
    genre = fields.Nested(GenreSchema)
    kind = fields.Str(requried=True, validate=Equal('sj#exEntity'))
    playlist = fields.Nested(
        PlaylistSchema(only=[
            'albumArtRef',
            'description',
            'kind',
            'name',
            'ownerName',
            'shareToken',
            'type',
        ]))
    track = fields.Nested(StoreTrackSchema)
Пример #5
0
class ListenNowItemSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'album': LISTEN_NOW_ALBUM,
			'compositeArtRefs': [IMAGE_REF],
			'images': [IMAGE_REF],
			'kind': 'sj#listennowitem',
			'radio_station': LISTEN_NOW_RADIO_STATION,
			'suggestion_reason': 'suggestion_reason',
			'suggestion_text': 'suggestion_text',
			'type': 'type'
		}
	"""

    album = fields.Nested(ListenNowAlbumSchema)
    compositeArtRefs = fields.Nested(ImageRefSchema, many=True)
    images = fields.Nested(ImageRefSchema, many=True)
    kind = fields.Str(required=True, validate=Equal('sj#listennowitem'))
    radio_station = fields.Nested(ListenNowRadioStationSchema)
    suggestion_reason = fields.Str(required=True)
    suggestion_text = fields.Str(required=True)
    type = fields.Str(required=True)
Пример #6
0
class ArtistSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'albums': [ALBUM],
			'artistArtRef': 'artistArtRef',
			'artistArtRefs': [IMAGE_REF],
			'artistBio': 'artistBio',
			'artistId': 'artistId',
			'artist_bio_attribution': ATTRIBUTION,
			'kind': 'sj#artist',
			'name': 'name',
			'related_artists': [],
			'topTracks': [STORE_TRACK],
			'total_albums': 1
		}
	"""

    albums = fields.Nested(AlbumSchema, many=True)
    artistArtRef = fields.Str()
    artistArtRefs = fields.Nested(ImageRefSchema, many=True)
    artistBio = fields.Str()
    artistId = fields.Str()
    artist_bio_attribution = fields.Nested(AttributionSchema)
    kind = fields.Str(required=True, validate=Equal('sj#artist'))
    name = fields.Str(required=True)
    related_artists = fields.Nested('ArtistSchema', many=True)
    topTracks = fields.Nested(StoreTrackSchema, many=True)
    total_albums = fields.Int()
Пример #7
0
class ExploreTabEntityGroupSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'continuationToken': 'continuationToken',
			'entities': [EXPLORE_TAB_ENTITY],
			'group_type': 'group_type',
			'kind': 'sj#exEntityGroup',
			'start_position': 0,
			'title': 'title'
		}
	"""

    continuation_token = fields.Str()
    description = fields.Str()
    entities = fields.Nested(ExploreTabEntitySchema, many=True)
    group_type = fields.Str(validate=OneOf([
        'KEY_ALBUMS',
        'NEW_RELEASE',
        'TOP_ALBUMS',
        'TOP_PLAYLISTS',
        'TOP_SONGS',
    ]))
    kind = fields.Str(required=True, validate=Equal('sj#exEntityGroup'))
    start_position = fields.Int()
    title = fields.Str()
Пример #8
0
class RadioSeedSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'albumId': 'albumId',
			'artistId': 'artistId',
			'curatedStationId': 'curatedStationId',
			'genreId': 'genreId',
			'kind': 'sj#radioSeed',
			'metadataSeed': RADIO_SEED_METADATA,
			'seedType': 'seedType',
			'trackId': 'trackId',
			'trackLockerId': 'trackLockerId'
		}
	"""

    albumId = fields.Str()
    artistId = fields.Str()
    curatedStationId = fields.Str()
    genreId = fields.Str()
    kind = fields.Str(required=True, validate=Equal('sj#radioSeed'))
    metadataSeed = fields.Nested(RadioSeedMetadataSchema)
    seedType = fields.Str(required=True)
    trackId = fields.Str()
    trackLockerId = fields.Str()
class AcQuantumBackendConfigurationSchema(BaseSchema):
    """Schema for AcQuantumBackendConfiguration."""

    # Required properties.
    backend_name = String(required=True)
    backend_version = String(required=True,
                             validate=Regexp("[0-9]+.[0-9]+.[0-9]+$"))
    n_qubits = Integer(required=True, validate=Range(min=1))
    basis_gates = List(String(), required=True, validate=Length(min=1))
    # gates = Nested(AcQuantumGateConfigSchema, required=True, many=True,
    #                validate=Length(min=1))
    local = Boolean(required=True)
    simulator = Boolean(required=True)
    conditional = Boolean(required=True)
    open_pulse = Boolean(required=True, validate=Equal(False))
    memory = Boolean(required=True)
    max_shots = Integer(required=True, validate=Range(min=1))

    # Optional properties.
    max_experiments = Integer(validate=Range(min=1))
    sample_name = String()
    coupling_map = List(List(Integer(), validate=Length(min=1)),
                        validate=Length(min=1))
    n_registers = Integer(validate=Range(min=1))
    register_map = List(List(Integer(validate=OneOf([0, 1])),
                             validate=Length(min=1)),
                        validate=Length(min=1))
    configurable = Boolean()
    credits_required = Boolean()
    online_date = DateTime()
    display_name = String()
    description = String()
    tags = List(String())
Пример #10
0
class WebPushCrypto06HeaderSchema(Schema):
    """Validates WebPush Message Encryption

    Uses draft-ietf-httpbis-encryption-encoding-06 rules for validation

    """

    content_encoding = fields.String(required=True,
                                     load_from="content-encoding",
                                     validate=Equal("aes128gcm"))

    encryption = fields.String(required=False)
    crypto_key = fields.String(required=False, load_from="crypto-key")

    @validates("encryption")
    def validate_encryption(self, value):
        if CryptoKey.parse_and_get_label(value, "salt"):
            raise InvalidRequest(
                "Do not include 'salt' in aes128gcm "
                "Encryption header",
                status_code=400,
                errno=110)

    @validates("crypto_key")
    def validate_crypto_key(self, value):
        if CryptoKey.parse_and_get_label(value, "dh"):
            raise InvalidRequest(
                "Do not include 'dh' in aes128gcm "
                "Crypto-Key header",
                status_code=400,
                errno=110)
Пример #11
0
class AccountAttributes(Schema):
    username = fields.Str(validate=Length(min=STRING_MIN_LENGTH, max=STRING_MAX_LENGTH))
    password = fields.Str(validate=Length(min=PWD_MIN_LENGTH, max=PWD_MAX_LENGTH))
    firstName = fields.Str(validate=Length(min=STRING_MIN_LENGTH, max=STRING_MAX_LENGTH))
    lastName = fields.Str(validate=Length(min=STRING_MIN_LENGTH, max=STRING_MAX_LENGTH))
    email = fields.Email(required=True, validate=Length(min=STRING_MIN_LENGTH, max=STRING_MAX_LENGTH))
    dateOfBirth = fields.Date(required=True, error='Not valid date. Provide ISO8601-formatted date string.')
    acceptTermsOfService = fields.Str(required=True, validate=Equal("True"))
Пример #12
0
class ListenNowDismissedItemSchema(MobileClientSchema):
    dismissalTimestamp = fields.Str(required=True)
    item_id = (
        fields.Dict()
    )  # TODO: Find all version of this. Know to have 'type' field and can have an 'album_id' dict.
    kind = fields.Str(required=True, validate=Equal('sj#dismissedItem'))
    suggestion_reason = fields.Str(required=True)
    uuid = fields.UUID(required=True)
Пример #13
0
class PulseQobjSchema(QobjSchema):
    """Schema for PulseQobj."""

    # Required properties.
    config = Nested(PulseQobjConfigSchema, required=True)
    experiments = Nested(PulseQobjExperimentSchema, required=True, many=True)

    type = String(required=True, validate=Equal(QobjType.PULSE),
                  missing=QobjType.PULSE)
Пример #14
0
class AccountSchema2(BaseSchema):
    username = fields.Str(required=True)
    password = fields.Str(required=True)
    firstName = fields.Str(required=True)
    lastName = fields.Str(required=True)
    email = fields.Email(required=True)
    dateOfBirth = fields.Date(
        required=True,
        error='Not valid date. Provide ISO8601-formatted date string.')
    acceptTermsOfService = fields.Str(required=True, validate=Equal("True"))
Пример #15
0
class WizardSchema(BaseSchema):
    xivo_uuid = fields.UUID(dump_only=True)
    admin_username = fields.Constant(constant='root', dump_only=True)
    admin_password = fields.String(validate=Regexp(ADMIN_PASSWORD_REGEX),
                                   required=True)
    license = StrictBoolean(validate=Equal(True), required=True)
    language = fields.String(validate=OneOf(['en_US', 'fr_FR']),
                             missing='en_US')
    timezone = fields.String(validate=Length(max=128), required=True)
    network = Nested(WizardNetworkSchema, required=True)
    steps = Nested(WizardStepsSchema, missing=WizardStepsSchema().load({}))
Пример #16
0
class SinkCommonConsentAttributes(Schema):
    version = fields.Str(required=True)
    cr_id = fields.Str(required=True)
    surrogate_id = fields.Str(required=True)
    rs_description = fields.Nested(nested=ResourceSetDescription, required=True)
    slr_id = fields.Str(required=True)
    iat = fields.Int(required=True)
    nbf = fields.Int(required=True)
    exp = fields.Int(required=True)
    operator = fields.Str(required=True)
    subject_id = fields.Str(required=True)
    role = fields.Str(required=True, validate=Equal("Sink"))
Пример #17
0
class ListenNowItemListSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'kind': 'sj#listenNowItemList',
			'listennow_items': [LISTEN_NOW_ITEM]
		}
	"""

    kind = fields.Str(required=True, validate=Equal('sj#listenNowItemList'))
    listennow_items = fields.Nested(ListenNowItemSchema, many=True)
Пример #18
0
class TopChartHeaderSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'header_image': IMAGE_REF,
			'kind': 'sj#topChartHeader'
		}
	"""

    header_image = fields.Nested(ImageRefSchema, required=True)
    kind = fields.Str(required=True, validate=Equal('sj#topChartHeader'))
Пример #19
0
class BrowseStationsSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'kind': 'sj#getStationsResponse',
			'stations': [RADIO_STATION]
		}
	"""

    kind = fields.Str(required=True, validate=Equal('sj#getStationsResponse'))
    stations = fields.Nested(RadioStationSchema, required=True, many=True)
Пример #20
0
class ConfigListSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'data': CONFIG_LIST_ENTRIES,
			'kind': 'sj#configList'
		}
	"""

    data = fields.Nested(ConfigListEntriesSchema)
    kind = fields.Str(required=True, validate=Equal('sj#configList'))
Пример #21
0
class ExploreTabsSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'kind': 'sj#exGetTabsResponse',
			'tabs': [EXPLORE_TAB]
		}
	"""

    kind = fields.Str(required=True, validate=Equal('sj#exGetTabsResponse'))
    tabs = fields.Nested(ExploreTabSchema, many=True)
Пример #22
0
class RadioFeedSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'data': RADIO_FEED_ITEMS,
			'kind': 'sj#radioFeed'
		}
	"""

    data = fields.Nested(RadioFeedItemsSchema)
    kind = fields.Str(required=True, validate=Equal('sj#radioFeed'))
Пример #23
0
class SearchResponseSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'clusterDetail': [SEARCH_RESULT_CLUSTER],
			'kind': 'sj#searchresponse'
		}
	"""

    clusterDetail = fields.Nested(SearchResultClusterSchema, many=True)
    kind = fields.Str(required=True, validate=Equal('sj#searchresponse'))
Пример #24
0
class UserClientIDListSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'data': USER_CLIENT_ID_LIST_ITEMS,
			'kind': 'sj#userClientIdList'
		}
	"""

    data = fields.Nested(UserClientIDListItemsSchema)
    kind = fields.Str(required=True, validate=Equal('sj#userClientIdList'))
Пример #25
0
class PulseQobjSchema(QobjSchema):
    """Schema for PulseQobj."""

    # Required properties.
    config = Nested(PulseQobjConfigSchema, required=True)
    experiments = Nested(PulseQobjExperimentSchema, required=True, many=True)

    type = String(required=True, validate=Equal(QobjType.PULSE))

    @pre_load
    def add_type(self, data, **_):
        """Add the Qobj type (PULSE) on loading."""
        data['type'] = QobjType.PULSE.value
        return data
Пример #26
0
class BrowseStationCategoriesSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'kind': 'sj#getStationCategoriesResponse',
			'root': STATION_CATEGORY
		}
	"""

    kind = fields.Str(required=True,
                      validate=Equal('sj#getStationCategoriesResponse'))
    root = fields.Nested(StationCategorySchema, required=True)
Пример #27
0
class GenreListSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'genres': [GENRE],
			'kind': 'sj#exGetMusicGenresResponse'
		}
	"""

    genres = fields.Nested(GenreSchema, many=True)
    kind = fields.Str(required=True,
                      validate=Equal('sj#exGetMusicGenresResponse'))
Пример #28
0
class ListenNowDismissedItemsSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'kind': 'sj#listenNowDismissedItemList',
			'minLastModifiedIgnored': True
		}
	"""

    kind = fields.Str(required=True,
                      validate=Equal('sj#listenNowDismissedItemList'))
    minLastModifiedIgnored = fields.Bool()
Пример #29
0
class SharedPlaylistEntryListSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'entries': [SHARED_PLAYLIST_ENTRY_ITEM],
			'kind': 'sj#listSharedPlaylistEntriesResponse'
		}
	"""

    entries = fields.Nested(SharedPlaylistEntryItemSchema, many=True)
    kind = fields.Str(required=True,
                      validate=Equal('sj#listSharedPlaylistEntriesResponse'))
Пример #30
0
class RadioStationSchema(MobileClientSchema):
    """

	**Validates**::

		{
			'byline': 'byline',
			'clientId': 'clientId',
			'compositeArtRefs': [IMAGE_REF],
			'contentTypes': ['contentType'],
			'deleted': False,
			'description': 'description',
			'enforcementResult': False,
			'id': 'id',
			'imageUrl': 'imageUrl',
			'imageUrls': [IMAGE_REF],
			'inLibrary': True,
			'kind': 'sj#radioStation',
			'lastModifiedTimestamp': 'lastModifiedTimestamp',
			'name': 'name',
			'recentTimestamp': 'recentTimestamp',
			'seed': RADIO_SEED,
			'sessionToken': 'sessionToken',
			'skipEventHistory': [],
			'stationSeeds': [RADIO_SEED],
			'tracks': [STORE_TRACK]
		}
	"""

    adTargeting = fields.Nested(AdTargetingSchema)
    byline = fields.Str()
    clientId = fields.Str()
    compositeArtRefs = fields.Nested(ImageRefSchema, many=True)
    contentTypes = fields.List(fields.Str)
    deleted = fields.Bool()
    description = fields.Str()
    enforcementResult = fields.Bool()
    id = fields.Str()
    imageUrl = fields.Str()
    imageUrls = fields.Nested(ImageRefSchema, many=True)
    inLibrary = fields.Bool()
    kind = fields.Str(required=True, validate=Equal('sj#radioStation'))
    lastModifiedTimestamp = fields.Str()
    name = fields.Str()
    recentTimestamp = fields.Str()
    seed = fields.Nested(RadioSeedSchema)
    sessionToken = fields.Str()
    skipEventHistory = fields.List(fields.Dict)  # TODO What's in this array?
    stationSeeds = fields.Nested(RadioSeedSchema, many=True)
    tracks = fields.Nested(TrackSchema, many=True)