"""Feed Ingestion SWF Workflows.""" import importlib from feed_ingestion.flows.amazon_datapulse.snowflake_executor \ import AmazonDataPulseExecutor from feed_ingestion.flows.amazon_digital_services.snowflake_executor \ import AmazonDSSme from feed_ingestion.flows.amazon_digital_services.snowflake_executor \ import AmazonDSTheOrchard from feed_ingestion.flows.amazon_music.snowflake_executor \ import AmazonAltafonteAdSupportedSFExecutor, \ AmazonAltafontePrimeSFExecutor, AmazonAltafonteUnlimitedSFExecutor, \ AmazonAwalAdSupportedSFExecutor, AmazonAwalPrimeSFExecutor, \ AmazonAwalUnlimitedSFExecutor, AmazonOrchardAdSupportedSFExecutor, \ AmazonOrchardPrimeSFExecutor, AmazonOrchardUnlimitedSFExecutor, \ AmazonSmeAdSupportedSFExecutor, AmazonSmePrimeSFExecutor, \ AmazonSmeUnlimitedSFExecutor from feed_ingestion.flows.amazon_prime_marketshare.snowflake_executor import \ AmazonPrimeMKTSFExecutor from feed_ingestion.flows.amazon_unlimited_marketshare.snowflake_executor \ import AmazonUnlimitedMarketshareSF from feed_ingestion.flows.apple_financial.snowflake_executor \ import AppleFinancialSF from feed_ingestion.flows.apple_id_mapping_sme.snowflake_executor \ import AppleIDMapping from feed_ingestion.flows.apple_music_streams.snowflake_executor \ import AppleMusicStreams from feed_ingestion.flows.apple_podcasts_content_performance.\ snowflake_executor import ApplePodcastsContentPerformanceSF from feed_ingestion.flows.apple_podcasts_sales_summary.snowflake_executor \ import ApplePodcastsSalesSummarySF from feed_ingestion.flows.apple_podcasts_sales_summary_monthly.\ snowflake_executor import ApplePodcastsSalesSummaryMonthlySF as \ ApplePodcastsSSMonthlySF from feed_ingestion.flows.apple_podcasts_sales_summary_weekly.\ snowflake_executor import ApplePodcastsSalesSummaryWeeklySF as \ ApplePodcastsSSWeeklySF from feed_ingestion.flows.apple_podcasts_subscription_events\ .snowflake_executor import ApplePodcastsSubscriptionEventsSF from feed_ingestion.flows.apple_podcasts_subscription_events_monthly\ .snowflake_executor import ApplePodcastsSubscriptionEventsMonthlySF as \ ApplePodcastsSubsEventsMonthSF from feed_ingestion.flows.apple_podcasts_subscription_events_weekly\ .snowflake_executor import ApplePodcastsSubscriptionEventsWeeklySF as \ ApplePodcastsSubsEventsWeeklySF from feed_ingestion.flows.apple_podcasts_subscription_snapshot \ .snowflake_executor import ApplePodcastsSubscriptionSnapshotSF from feed_ingestion.flows.apple_podcasts_subscription_snapshot_monthly\ .snowflake_executor import ApplePodcastsSubsSnapshotMonthlySF as \ APSubsSnapshotMonthlySF from feed_ingestion.flows.apple_podcasts_subscription_snapshot_weekly\ .snowflake_executor import ApplePodcastsSubscriptionSnapshotWeeklySF as \ APSubsSnapshotWeeklySF from feed_ingestion.flows.awa.snowflake_executor import AwaSmej, \ AwaTheOrchard from feed_ingestion.flows.bandsintown.snowflake_executor import \ BandsInTownSF from feed_ingestion.flows.beatport.snowflake_executor import Beatport from feed_ingestion.flows.deezer import snowflake_executor as deezer_executor from feed_ingestion.flows.deezer_marketshare.snowflake_executor import \ DeezerMarketshareSF from feed_ingestion.flows.feature_fm_facebook.snowflake_executor \ import FeatureFmFacebook from feed_ingestion.flows.gfk.snowflake_executor import GFK from feed_ingestion.flows.gfk_physical.snowflake_executor \ import GfKPhysicalSFExecutor from feed_ingestion.flows.gfk_streaming.snowflake_executor \ import GfKStreamingSFExecutor from feed_ingestion.flows.itunes.snowflake_executor import ITunes from feed_ingestion.flows.itunes_hides.snowflake_executor import ITunesHidesSF from feed_ingestion.flows.itunes_marketshare.snowflake_executor import \ ITunesMarketshareSF from feed_ingestion.flows.itunes_tickets.snowflake_executor import \ ITunesTicketsSF from feed_ingestion.flows.kugou.snowflake_executor import KugouSMEFA from feed_ingestion.flows.kugou.snowflake_executor import KugouTheOrchardFA from feed_ingestion.flows.kuwo.snowflake_executor import KuwoSMEFA from feed_ingestion.flows.kuwo.snowflake_executor import KuwoTheOrchardFA from feed_ingestion.flows.line.snowflake_executor import (LineSMEJ, LineTheOrchard) from feed_ingestion.flows.mrc.snowflake_executor import MRCSFExecutor from feed_ingestion.flows.music_analytics_reports.snowflake_executor import \ MusicAnalyticsReportsSE from feed_ingestion.flows.netease.snowflake_executor import NetEaseSF from feed_ingestion.flows.pandora.snowflake_executor import PandoraSMEFA from feed_ingestion.flows.pandora.snowflake_executor import PandoraTheOrchardFA from feed_ingestion.flows.physical_warehouse_reports.snowflake_executor \ import PhysicalWarehouseReportsSF from feed_ingestion.flows.qq.snowflake_executor import QQSMEFA from feed_ingestion.flows.qq.snowflake_executor import QQTheOrchardFA from feed_ingestion.flows.ritmogestion.snowflake_executor import Ritmogestion from feed_ingestion.flows.seated.snowflake_executor \ import SeatedSnowflakeExecutor from feed_ingestion.flows.setlive.snowflake_executor import \ SetliveSnowflakeExecutor from feed_ingestion.flows.soundcloud.snowflake_executor import ( SoundCloudSMEFA, SoundCloudTheOrchardFA ) from feed_ingestion.flows.spotify.snowflake_executor import \ Spotify, SpotifyAltafonteFA, SpotifySMECharityFA, SpotifySMEJPFA, \ SpotifySMEJPIntLFA from feed_ingestion.flows.spotify.snowflake_executor import SpotifySMEFA from feed_ingestion.flows.spotify.snowflake_executor import SpotifyTheOrchardFA from feed_ingestion.flows.spotify_artificial_streams.snowflake_executor \ import SpotifyArtificialStreamsSnowflakeSQLExecutor from feed_ingestion.flows.spotify_charts.snowflake_executor import \ SpotifyCharts from feed_ingestion.flows.spotify_marketshare.snowflake_executor import \ SpotifyMarketshareSF from feed_ingestion.flows.spotify_marketshare_week_ending.snowflake_executor \ import SpotifyMarketshareWeekEndingSF from feed_ingestion.flows.spotify_marquee.snowflake_executor import \ SpotifyMarqueeSF from feed_ingestion.flows.ticketek.snowflake_executor import \ TicketekSnowflakeExecutor from feed_ingestion.flows.tiktok.snowflake_executor import ( TikTokAltafonte, TikTokSME, TikTokSMEJP, TikTokSMEJPIntl, TikTokTheOrchard ) from feed_ingestion.flows.tiktok_fraudulent_streams_report.snowflake_executor \ import TiktokFraudulentStreamsReport from feed_ingestion.flows.tiktok_weekly.snowflake_executor import TikTokWeekly from feed_ingestion.flows.vevo.snowflake_executor \ import VevoSME, VevoTheOrchard from feed_ingestion.flows.wynk.snowflake_executor import WYNK from feed_ingestion.flows.youtube_channel_names.snowflake_executor import \ YouTubeChannelNames, YouTubeChannelNamesSME, \ YouTubeChannelNamesTheOrchard from feed_ingestion.flows.youtube_claim.snowflake_executor import \ YoutubeClaimExecutor, YoutubeClaimSME, YoutubeClaimTheOrchard from feed_ingestion.flows.youtube_facts.snowflake_executor import \ YouTubeFactsAssetSme, YouTubeFactsAssetTheOrchard, \ YouTubeFactsVideoSme, YouTubeFactsVideoTheOrchard from feed_ingestion.flows.youtube_neo4j.snowflake_executor import YouTubeNeo4J from feed_ingestion.flows.youtube_red_marketshare.snowflake_executor import \ YouTubeRedMarketshareSF from feed_ingestion.flows.youtube_video.snowflake_executor import \ YoutubeVideo from feed_ingestion.flows.youtube_weekly.snowflake_executor \ import YoutubeWeekly # DEPRECATED FLOWS # from feed_ingestion.flows.elasticsearch_analytics.snowflake_executor \ # import ElasticsearchAnalytics # from feed_ingestion.flows.fandango_now.snowflake_executor import FandangoNOW # from feed_ingestion.flows.google_music.snowflake_executor import GoogleMusic # from feed_ingestion.flows.shazam_daily_events.snowflake_executor import \ # ShazamDailyEventsSF # from feed_ingestion.flows.xbox import \ # snowflake_executor as xbox_executor # from feed_ingestion.flows.youtube_vod import \ # snowflake_executor as youtube_vod_executor # from feed_ingestion.flows.google_play_marketshare.snowflake_executor import \ # GooglePlayMarketshareSF # from feed_ingestion.flows.uma.snowflake_executor import UMA # from feed_ingestion.flows.uma_marketshare.snowflake_executor import \ # UMA_Marketshare __all__ = ( 'amazon_digital_services', 'amazon_datapulse', 'amazon_prime_marketshare', 'amazon_music', 'amazon_unlimited_marketshare', 'itunes_marketshare', 'apple_music_streams', 'apple_id_mapping_sme', 'itunes', 'deezer', 'deezer_marketshare', 'youtube_monthly', 'proper_incoming', 'pandora', 'spotify', 'spotify_marketshare', 'youtube_asset', 'youtube_asset_conflict', 'youtube_bulk_reports', 'youtube_weekly', 'youtube_claim', 'gfk', 'youtube_video_and_claim_summary', 'youtube_red_marketshare', 'itunes', 'itunes_tickets', 'itunes_hides', 'feature_fm_facebook', 'youtube_facts', 'youtube_bulk_reports_facts_video', 'youtube_bulk_reports_facts_asset', 'mrc', 'chartmetric_charts', 'chartmetric_playlists_share', 'chartmetric_socials', 'chartmetric_socials_backfill', 'chartmetric_participants', 'chartmetric_tracks', 'tiktok', 'ticketek', 'tiktok_weekly', 'tiktok_fraudulent_streams_report', 'itunes_priority', 'spotify_strikes', 'spotify_charts', 'youtube_adjustment', 'youtube_video', 'youtube_channel_names', 'youtube_neo4j', 'line', 'soundcloud', 'awa', 'vevo', 'spotify_marketshare_week_ending', 'ritmogestion', 'seated', 'wynk', 'apple_podcasts_sales_summary', 'apple_podcasts_subscription_snapshot', 'beatport', 'apple_podcasts_content_performance', 'apple_podcasts_subscription_events', 'apple_podcasts_subscription_events_weekly', 'apple_podcasts_subscription_snapshot_monthly', 'apple_podcasts_subscription_events_monthly', 'apple_podcasts_subscription_snapshot_weekly', 'apple_podcasts_sales_summary_monthly', 'apple_podcasts_sales_summary_weekly', 'music_analytics_reports', 'qq', 'kuwo', 'kugou', 'sme_latam', 'insta_reels', 'spotify_artificial_streams', 'meta_daily', 'physical_reporting', 'physical_warehouse_reports', 'delphi_crm', 'snapchat', 'apple_financial', 'spotify_marquee', 'netease', 'bandsintown', 'spotify_track_metrics', 'gfk_physical', 'gfk_streaming', 'setlive', 'tiktok_openescrow', 'peloton', ) def get_flow(flow_name): """Get flow by flow name. Args: flow_name (str): Name of the workflow. Returns: Flow: Flow object for the particular flow name. """ flow = importlib.import_module('.{}.flow'.format(flow_name), __name__) # look for the flow class, if it exists, otherwise fall back # on the flow module itself. flow_class = getattr(flow, 'Flow', None) if flow_class: flow = flow_class() return flow # This dict must get manually updated when there is a new executor registered_executors = dict( amazon_digital_services_sme=AmazonDSSme, amazon_digital_services_theorchard=AmazonDSTheOrchard, amazon_datapulse=AmazonDataPulseExecutor, amazon_music_theorchard_prime=AmazonOrchardPrimeSFExecutor, amazon_music_theorchard_adsupported=AmazonOrchardAdSupportedSFExecutor, amazon_music_theorchard_unlimited=AmazonOrchardUnlimitedSFExecutor, amazon_music_sme_prime=AmazonSmePrimeSFExecutor, amazon_music_sme_adsupported=AmazonSmeAdSupportedSFExecutor, amazon_music_sme_unlimited=AmazonSmeUnlimitedSFExecutor, amazon_music_awal_prime=AmazonAwalPrimeSFExecutor, amazon_music_awal_adsupported=AmazonAwalAdSupportedSFExecutor, amazon_music_awal_unlimited=AmazonAwalUnlimitedSFExecutor, amazon_music_altafonte_prime=AmazonAltafontePrimeSFExecutor, amazon_music_altafonte_adsupported=AmazonAltafonteAdSupportedSFExecutor, amazon_music_altafonte_unlimited=AmazonAltafonteUnlimitedSFExecutor, amazon_prime_marketshare=AmazonPrimeMKTSFExecutor, amazon_unlimited_marketshare=AmazonUnlimitedMarketshareSF, apple_music_theorchard_amStreams=AppleMusicStreams, apple_music_theorchard_amStreamsSummary=AppleMusicStreams, apple_music_theorchard_amContent=AppleMusicStreams, apple_music_theorchard_amContainer=AppleMusicStreams, apple_music_theorchard_amSubscriptionReference=AppleMusicStreams, apple_music_theorchard_amContentDemographics=AppleMusicStreams, apple_music_theorchard_amShazam=AppleMusicStreams, apple_music_theorchard_amNonRoyaltyStreams=AppleMusicStreams, apple_music_theorchard_amNonRoyaltySummaryStreams=AppleMusicStreams, apple_music_theorchard_amLibraryEvents=AppleMusicStreams, apple_music_theorchard_amTotalLibraryAdds=AppleMusicStreams, apple_music_theorchard_amArtists=AppleMusicStreams, apple_music_theorchard_amPlaylists=AppleMusicStreams, apple_music_theorchard_amSongs=AppleMusicStreams, apple_music_sme_amStreams=AppleMusicStreams, apple_music_sme_amStreamsSummary=AppleMusicStreams, apple_music_sme_amContent=AppleMusicStreams, apple_music_sme_amContainer=AppleMusicStreams, apple_music_sme_amSubscriptionReference=AppleMusicStreams, apple_music_sme_amContentDemographics=AppleMusicStreams, apple_music_sme_amShazam=AppleMusicStreams, apple_music_sme_amNonRoyaltyStreams=AppleMusicStreams, apple_music_sme_amNonRoyaltySummaryStreams=AppleMusicStreams, apple_music_sme_amLibraryEvents=AppleMusicStreams, apple_music_sme_amTotalLibraryAdds=AppleMusicStreams, apple_music_sme_amArtists=AppleMusicStreams, apple_music_sme_amPlaylists=AppleMusicStreams, apple_music_sme_amSongs=AppleMusicStreams, apple_music_awal_amStreams=AppleMusicStreams, apple_music_awal_amStreamsSummary=AppleMusicStreams, apple_music_awal_amContent=AppleMusicStreams, apple_music_awal_amContainer=AppleMusicStreams, apple_music_awal_amSubscriptionReference=AppleMusicStreams, apple_music_awal_amContentDemographics=AppleMusicStreams, apple_music_awal_amShazam=AppleMusicStreams, apple_music_awal_amNonRoyaltyStreams=AppleMusicStreams, apple_music_awal_amNonRoyaltySummaryStreams=AppleMusicStreams, apple_music_awal_amLibraryEvents=AppleMusicStreams, apple_music_awal_amTotalLibraryAdds=AppleMusicStreams, apple_music_awal_amArtists=AppleMusicStreams, apple_music_awal_amPlaylists=AppleMusicStreams, apple_music_awal_amSongs=AppleMusicStreams, apple_music_altafonte_amStreams=AppleMusicStreams, apple_music_altafonte_amStreamsSummary=AppleMusicStreams, apple_music_altafonte_amContent=AppleMusicStreams, apple_music_altafonte_amContainer=AppleMusicStreams, apple_music_altafonte_amSubscriptionReference=AppleMusicStreams, apple_music_altafonte_amContentDemographics=AppleMusicStreams, apple_music_altafonte_amShazam=AppleMusicStreams, apple_music_altafonte_amNonRoyaltyStreams=AppleMusicStreams, apple_music_altafonte_amNonRoyaltySummaryStreams=AppleMusicStreams, apple_music_altafonte_amLibraryEvents=AppleMusicStreams, apple_music_altafonte_amTotalLibraryAdds=AppleMusicStreams, apple_music_altafonte_amArtists=AppleMusicStreams, apple_music_altafonte_amPlaylists=AppleMusicStreams, apple_music_altafonte_amSongs=AppleMusicStreams, apple_id_mapping_sme=AppleIDMapping, deezer_daily_theorchard=deezer_executor.DeezerTheOrchard, deezer_daily_sme=deezer_executor.DeezerSme, deezer_daily_altafonte=deezer_executor.DeezerAltafonte, deezer_marketshare=DeezerMarketshareSF, physical_warehouse_reports=PhysicalWarehouseReportsSF, spotify_artificial_streams=SpotifyArtificialStreamsSnowflakeSQLExecutor, spotify_sme_aggregated_streams=Spotify, spotify_sme_streams=SpotifySMEFA, spotify_sme_sub_30_sec_streams=Spotify, spotify_sme_tracks=Spotify, spotify_sme_users=Spotify, spotify_smejp_aggregated_streams=Spotify, spotify_smejp_streams=SpotifySMEJPFA, spotify_smejp_sub_30_sec_streams=Spotify, spotify_smejp_tracks=Spotify, spotify_smejp_users=Spotify, spotify_smejpintl_aggregated_streams=Spotify, spotify_smejpintl_streams=SpotifySMEJPIntLFA, spotify_smejpintl_sub_30_sec_streams=Spotify, spotify_smejpintl_tracks=Spotify, spotify_smejpintl_users=Spotify, spotify_smecharity_aggregated_streams=Spotify, spotify_smecharity_streams=SpotifySMECharityFA, spotify_smecharity_sub_30_sec_streams=Spotify, spotify_smecharity_tracks=Spotify, spotify_smecharity_users=Spotify, spotify_theorchard_aggregated_streams=Spotify, spotify_theorchard_streams=SpotifyTheOrchardFA, spotify_theorchard_sub_30_sec_streams=Spotify, spotify_theorchard_tracks=Spotify, spotify_theorchard_users=Spotify, spotify_altafonte_aggregated_streams=Spotify, spotify_altafonte_streams=SpotifyAltafonteFA, spotify_altafonte_sub_30_sec_streams=Spotify, spotify_altafonte_tracks=Spotify, spotify_altafonte_users=Spotify, spotify_charts_daily_top_songs=SpotifyCharts, spotify_charts_weekly_top_songs=SpotifyCharts, spotify_marketshare=SpotifyMarketshareSF, spotify_marketshare_week_ending=SpotifyMarketshareWeekEndingSF, pandora_theorchard=PandoraTheOrchardFA, pandora_sme=PandoraSMEFA, qq_theorchard=QQTheOrchardFA, qq_sme=QQSMEFA, kugou_theorchard=KugouTheOrchardFA, kugou_sme=KugouSMEFA, kuwo_theorchard=KuwoTheOrchardFA, kuwo_sme=KuwoSMEFA, youtube_weekly=YoutubeWeekly, youtube_claim=YoutubeClaimExecutor, youtube_claim_theorchard=YoutubeClaimTheOrchard, youtube_claim_sme=YoutubeClaimSME, youtube_red_marketshare=YouTubeRedMarketshareSF, gfk=GFK, itunes=ITunes, itunes_marketshare=ITunesMarketshareSF, itunes_tickets=ITunesTicketsSF, itunes_hides=ITunesHidesSF, feature_fm_facebook=FeatureFmFacebook, youtube_facts_theorchard_video=YouTubeFactsVideoTheOrchard, youtube_facts_theorchard_asset=YouTubeFactsAssetTheOrchard, youtube_facts_sme_video=YouTubeFactsVideoSme, youtube_facts_sme_asset=YouTubeFactsAssetSme, tiktok_theorchard_TikTok=TikTokTheOrchard, tiktok_theorchard_Douyin=TikTokTheOrchard, tiktok_sme_TikTok=TikTokSME, tiktok_sme_Douyin=TikTokSME, tiktok_smejp_TikTok=TikTokSMEJP, tiktok_smejp_Douyin=TikTokSMEJP, tiktok_smejpintl_TikTok=TikTokSMEJPIntl, tiktok_smejpintl_Douyin=TikTokSMEJPIntl, tiktok_altafonte_TikTok=TikTokAltafonte, tiktok_altafonte_Douyin=TikTokAltafonte, tiktok_weekly=TikTokWeekly, tiktok_fraudulent_streams_report=TiktokFraudulentStreamsReport, mrc=MRCSFExecutor, youtube_video_theorchard=YoutubeVideo, youtube_video_sme=YoutubeVideo, youtube_channel_names=YouTubeChannelNames, youtube_channel_names_theorchard=YouTubeChannelNamesTheOrchard, youtube_channel_names_sme=YouTubeChannelNamesSME, youtube_neo4j=YouTubeNeo4J, line_theorchard=LineTheOrchard, line_smej=LineSMEJ, soundcloud_sme=SoundCloudSMEFA, soundcloud_theorchard=SoundCloudTheOrchardFA, awa_theorchard=AwaTheOrchard, awa_smej=AwaSmej, vevo_theorchard=VevoTheOrchard, vevo_sme=VevoSME, ritmogestion=Ritmogestion, seated=SeatedSnowflakeExecutor, setlive=SetliveSnowflakeExecutor, wynk=WYNK, beatport=Beatport, apple_podcasts_sales_summary=ApplePodcastsSalesSummarySF, apple_podcasts_subscription_snapshot=ApplePodcastsSubscriptionSnapshotSF, apple_podcasts_content_performance=ApplePodcastsContentPerformanceSF, apple_podcasts_subscription_events=ApplePodcastsSubscriptionEventsSF, apple_podcasts_subscription_events_weekly=ApplePodcastsSubsEventsWeeklySF, apple_podcasts_subscription_snapshot_monthly=APSubsSnapshotMonthlySF, apple_podcasts_subscription_events_monthly=ApplePodcastsSubsEventsMonthSF, apple_podcasts_subscription_snapshot_weekly=APSubsSnapshotWeeklySF, apple_podcasts_sales_summary_monthly=ApplePodcastsSSMonthlySF, apple_podcasts_sales_summary_weekly=ApplePodcastsSSWeeklySF, music_analytics_reports=MusicAnalyticsReportsSE, apple_financial=AppleFinancialSF, spotify_marquee=SpotifyMarqueeSF, ticketek=TicketekSnowflakeExecutor, netease=NetEaseSF, bandsintown=BandsInTownSF, gfk_physical=GfKPhysicalSFExecutor, gfk_streaming=GfKStreamingSFExecutor, # DEPRECATED # fandango_now=FandangoNOW, # elasticsearch_analytics=ElasticsearchAnalytics, # shazam_daily_events=ShazamDailyEventsSF, # google_music=GoogleMusic, # google_play=GooglePlay, # playstation_video=playstation_executor.PlaystationSF, # xbox_daily=xbox_executor.Xbox, # youtube_vod_weekly=youtube_vod_executor.YoutubeVODSF, # google_play_marketshare=GooglePlayMarketshareSF, # uma=UMA, # uma_marketshare=UMA_Marketshare, # rhapsody_theorchard=RhapsodyTheOrchard, # rhapsody_sme=RhapsodySME, # spotify_charts_daily_viral_songs=SpotifyCharts, ) # The list of flows migrated to secrets manager. # TODO: remove after migration is done secrets_manager_flows = ( 'apple_music', 'deezer_daily', # DEPRECATED FLOW # 'google_play_marketshare', 'itunes_priority', 'mrc', 'sme_latam', 'sms-week-ending', 'spotify_strikes', 'swf-ritmogestion', 'swf-soundcloud', 'swf-wynk', # DEPRECATED # 'google_music', # 'elasticsearch_analytics', # 'fandango_now', # 'amazon_instant_video_daily', # 'google_play', # 'youtube_vod_weekly', # 'youtube_workflow', # 'neo4j_to_snowflake', # 'swf-feed-ingestion-uma-marketshare', )