# This file was generated based on ".graphqlconfig". Do not edit manually.

schema {
    query: Query
    mutation: Mutation
}

type Account {
    features(regex: String): [Feature!]!
    profiles: [Profile!]!
    users: [User] @deprecated(reason : "Please use profiles field instead.")
}

type AccountingPeriod {
    firstPeriodId: Int!
    lastPeriodId: Int!
    month: Int
    periodType: AccountingPeriodType!
    quarter: Int!
    year: Int!
}

type AdRead {
    adReadUrl: String
    copyUrlPath: String
    dueDate: Date
    episode: Episode
    episodeId: Int
    id: ID
    podcast: Podcast
    podcastId: Int
    rejectionReason: String
    status: AdReadStatus
    title: String
}

type AdReadResults {
    adReads: [AdRead]
}

type Analytics {
    demographicBreakdown(countries: [String], days: Int, startDate: String, storeIds: [Int]): Demographics
    downloads(countries: [String], days: Int, startDate: String, storeIds: [Int]): Downloads!
    sourceOfStreams(countries: [String], days: Int, startDate: String): SourceOfStreams!
    streams(countries: [String], days: Int, startDate: String, storeIds: [Int]): Streams!
    streamsBreakdown(countries: [String], days: Int, startDate: String, storeIds: [Int]): StreamsBreakdown!
    topCountriesByDownloads(days: Int, limit: Int, offset: Int, startDate: String, storeIds: [Int]): TopCountriesByDownloads!
    topCountriesByStreams(days: Int, limit: Int, offset: Int, startDate: String, storeIds: [Int]): TopCountriesByStreams!
    topMarkets: TopMarkets!
    topPlaylists(countries: [String], days: Int, limit: Int, offset: Int, startDate: String, storeIds: [Int]): TopPlaylists!
}

type AnalyticsFeed {
    id: Int
    name: String
    storeid: Int
    storename: String
}

type Application {
    name: String
    url: String
}

type Artist {
    artistId: ID
    artistInfoId: Int
    artistName: String
    artistType: String
    vendorId: Int
}

type ArtistSearchResult {
    artists: [Artist]
    totalCount: Int
}

type AssetFinal {
    assetSubtype: String
    assetType: String
    duration: Int
    filename: String
    url: String
}

type AssetTranscoderStatus {
    assets: [AssetFinal]
    errors: String
    status: String
}

type Collaborator {
    email: String @deprecated(reason : "No longer collecting this value.")
    id: Int
    labelParticipant: LabelParticipant
    name: String
    participant: Participant @deprecated(reason : "Please use LabelParticipant type instead.")
    paymentStatus: CollaboratorPaymentStatus
    performanceRights: Boolean
    reports(reportType: String): [CollaboratorReport]
    soundRecordings: [SoundRecording!]!
    splitRateType: CollaboratorSplitRateType
    subaccountId: Int
    tracks: [Track!]!
}

type CollaboratorReport {
    amount: Float
    collaboratorId: String
    collaboratorParams: String
    fileFormat: String
    fileLocation: String
    fileName: String
    generatedDateTime: Date
    generationType: CollaboratorReportGenerationType
    periodIds: String
    periodName: String
    requestedDateTime: Date
    status: String
    userIdType: String
}

type CollaboratorReportDownload {
    url: String
}

type CollaboratorReportsResults {
    reports: [CollaboratorReport!]!
    totalCount: Int!
}

type CollaboratorResults {
    collaborators: [Collaborator]
    totalCount: Int
}

type CollaboratorSplit {
    collaborator: Collaborator
    id: Int
    identifier: String
    splitRate: Float
}

type CountryDownloads {
    countryCode: String!
    downloads: Long!
}

type CountryStreams {
    countryCode: String!
    streams: Long!
}

type CreateProductCorrectionResult {
    releaseCorrectionId: Int
    releaseId: Int
    status: String
}

type CreateTransferWiseRecipientResponse {
    id: Int!
}

type DailyTimeseries {
    dailyChange: DeltaGrowth
    date: Date!
    value: Float
}

type DeleteCollaboratorReportResponse {
    collaboratorParams: String
    deleted: Boolean
}

type DeletePodcastAssetResult {
    id: ID
}

type DeleteProductCorrectionResult {
    message: String
}

type DeltaGrowth {
    growthPercentage: Float
    value: Float
}

type Demographic {
    age: DemographicAge
    gender: DemographicGender
}

type DemographicAge {
    UNKNOWN: Long
    _17: Long
    _18_22: Long
    _23_27: Long
    _28_34: Long
    _35_44: Long
    _45_59: Long
    _60_: Long
}

type DemographicGender {
    female: Long
    male: Long
    unknown: Long
}

type Demographics {
    demographics: Demographic!
    isrc: String!
    sources: [Store]!
}

type Device {
    deviceId: String
    operatingSystem: String!
    pushToken: String!
}

type DownloadData {
    items: [Timeseries]
}

type Downloads {
    aggregate: DownloadData!
    sources: [Store]!
    stores: [StoreDownloadData]!
}

type Episode {
    artworkUrl: String
    audioOriginalFilename: String
    audioUrl: String
    content: String
    createdDate: DateTime
    description: String
    draft: Boolean
    duration: Int
    episodeNumber: Int
    episodeType: String
    id: ID
    insertionPoints: [EpisodeInsertionPoint!]!
    peaksUrl: String
    plannedMidRollCount: Int
    plannedPostRollCount: Int
    plannedPreRollCount: Int
    podcastId: Int
    publishedDate: DateTime
    seasonNumber: Int
    status: String
    title: String
}

type EpisodeDailyDownloads {
    downloads: Int!
    episodeId: Int!
    podcastId: Int!
    reportDate: Date!
}

type EpisodeInsertionPoint {
    count: Int
    id: ID!
    pointType: String
    timecode: String
}

type EpisodeInsertionPointResult {
    insertionPoints: [EpisodeInsertionPoint!]!
}

type EpisodeResults {
    episodes: [Episode]
    totalCount: Int!
    totalDone: Int!
    totalDrafts: Int!
}

type Feature {
    feature: String
    value: String
}

type GlobalParticipant {
    appleMusicId: Int
    chartmetricId: Int
    id: ID!
    imageUrl: String
    name: String!
    spotifyId: String
}

type InventoryResult {
    podcastId: Int!
}

type LabelParticipant {
    appleMusicId: ID
    collaborator: Collaborator
    id: ID!
    name: String!
    spotifyId: ID
    subaccount: Subaccount!
    vendor: Vendor!
}

type LabelParticipation {
    labelParticipant: LabelParticipant!
    role: String!
}

type MarketStreams {
    countryCode: String
    growthPercentage: Float
    region: Region
    streams: Int
}

type Mutation {
    createAdRead(input: CreateAdReadInput): AdRead
    createCollaborator(input: CollaboratorInput): Collaborator
    createEpisode(input: CreateEpisodeInput): Episode
    createEpisodeInsertionPoints(input: CreateEpisodeInsertionPointsInput): EpisodeInsertionPointResult
    createInventory(input: CreateInventoryInput): InventoryResult
    createPodcast(input: CreatePodcastInput): Podcast
    createPodcastUser(input: CreatePodcastUserInput): PodcastUser
    createProduct(input: CreateProductInput): Product
    createProductCorrection(input: CreateProductCorrectionInput): CreateProductCorrectionResult
    createProductCorrectionDetail(input: ProductCorrectionDetailInput): [ProductCorrectionDetail]
    createProject(input: CreateProjectInput): Project
    createTransferWiseProfile(input: CreateTransferWiseProfileInput): TransferWiseProfile
    createTransferWiseRecipient(input: CreateTransferWiseRecipientInput): CreateTransferWiseRecipientResponse
    createVendorAgreement(input: VendorAgreementInput): VendorAgreement
    deleteAdRead(input: DeleteAdReadInput): AdRead
    deleteCollaboratorReport(input: DeleteCollaboratorReportInput): DeleteCollaboratorReportResponse
    deleteEpisode(input: DeleteEpisodeInput): Episode
    deletePodcast(input: DeletePodcastInput): Podcast
    deletePodcastUser(input: DeletePodcastUserInput): PodcastUser
    deleteProductCorrection(input: DeleteProductCorrectionInput): DeleteProductCorrectionResult
    followParticipant(input: FollowParticipantInput): Participant!
    instagramComment(input: InstagramCommentInput): SocialPost
    labelParticipantCreate(input: ParticipantCreateInput): Participant
    labelParticipantIncorrectProfile(input: ParticipantIncorrectProfileInput): Boolean
    labelParticipantUpdate(input: ParticipantUpdateInput): Participant
    linkParticipantSocialPlatformUrl(input: LinkParticipantSocialPlatformUrlInput!): String
    logoutMobileDevice(input: LogoutMobileDeviceInput): Boolean
    networkParticipantCreate(input: NetworkParticipantCreateInput): NetworkParticipant
    participantCreate(input: ParticipantCreateInput): Participant @deprecated(reason : "Renaming to reflect private data.")
    participantDelete(input: ParticipantDeleteInput): Participant @deprecated(reason : "Renaming to reflect private data.")
    participantIncorrectProfile(input: ParticipantIncorrectProfileInput): Boolean @deprecated(reason : "Renaming to reflect private data.")
    participantUpdate(input: ParticipantUpdateInput): Participant @deprecated(reason : "Renaming to reflect private data.")
    refreshTransferWiseRecipientRequirements(input: CreateTransferWiseRecipientInput): [TransferWiseAccountRequirement]
    registerUserDevice(input: RegisterUserDeviceInput): Device
    saveArtists(input: SaveArtistsInput): [Artist]
    saveCollaboratorSplits(input: SaveCollaboratorSplitsInput): SaveCollaboratorSplitsResult
    saveTracks(input: SaveTracksInput): [Track]
    saveVideoSingleProduct(input: SaveVideoSingleProductInput): VideoSingleProduct
    submitProduct(input: SubmitProductInput): Product
    triggerCollaboratorsReportGeneration(input: TriggerCollaboratorsReportGenerationInput): TriggerCollaboratorsReportGenerationResponse
    unfollowParticipant(input: FollowParticipantInput): Participant!
    unlinkParticipantSocialPlatform(input: UnlinkParticipantSocialPlatformInput): Participant!
    unregisterUserDevice(input: UnregisterUserDeviceInput): Boolean
    unsubmitProduct(input: UnsubmitProductInput): UnsubmitProductResult
    updateAdRead(input: UpdateAdReadInput): AdRead
    updateCollaborator(input: UpdateCollaboratorInput): Collaborator
    updateEpisode(input: UpdateEpisodeInput): Episode
    updatePodcast(input: UpdatePodcastInput): Podcast
    updatePodcastUser(input: UpdatePodcastUserInput): PodcastUser
    updateProduct(input: UpdateProductInput): Product
    updateProject(input: UpdateProjectInput): Project
}

type NetworkDailyDownloads {
    downloads: Int!
    networkId: Int!
    reportDate: Date!
}

type NetworkParticipant {
    id: ID
    name: String
    networkId: Int
}

type NetworkParticipantSearchResult {
    participants: [NetworkParticipant]
    totalCount: Int
}

type Participant {
    appleMusicId: ID
    chartmetricId: ID
    collaborator: Collaborator @deprecated(reason : "Please use LabelParticipant type instead.")
    coverImageLocation: String
    following: Boolean!
    id: ID!
    imageLocation: String
    name: String!
    relatedParticipants: RelatedParticipants!
    socialData(platforms: [SocialPlatform!]): ParticipantSocialData!
    spotifyId: ID
    subaccount: Subaccount! @deprecated(reason : "Please use LabelParticipant type instead.")
    vendor: Vendor! @deprecated(reason : "Please use LabelParticipant type instead.")
}

type ParticipantSearchResult {
    participants: [Participant]
    totalCount: Int
}

type ParticipantSearchResults {
    participants: [Participant!]!
    totalCount: Int!
}

type ParticipantServiceSearchResult {
    serviceArtists: [ServiceArtist]
}

type ParticipantSocialData {
    fans(fanTypes: [SocialFansType!], limit: Int, maxFollowers: Int, minFollowers: Int, offset: Int, orderBy: SocialFansOrderBy, platforms: [SocialPlatform]): [SocialFan]
    mentions(limit: Int, maxFollowers: Int, minFollowers: Int, offset: Int, orderBy: SocialPostsOrderBy, platforms: [SocialPlatform]): [SocialPost]
    posts(limit: Int, minFollowers: Int, offset: Int, orderBy: SocialPostsOrderBy, platforms: [SocialPlatform]): [SocialPost]
    socialAccounts(platforms: [SocialPlatform!]): [SocialAccount!]!
    spotifyPopularity: SpotifyPopularity
    totalFollowers: Long
    totalListeners: Long
}

type Performer {
    id: Int!
    name: String!
    roleId: Int!
    type: String!
}

type Playlist {
    countryCode: String
    followers: Int
    imageLocation: String
    ownerCategory: OwnerCategory!
    playlistId: String!
    playlistName: String!
    playlistUri: String!
    source: Store!
    storefront: String
    trackCount: Int
    userDisplayName: String!
}

type PlaylistPlacement {
    added: Date
    playlist: Playlist
    position: Int
    previousPosition: Int
    soundRecording: SoundRecording
    storefrontPlacements: [StorefrontPlacement]
    streams: Int
}

type PlaylistPlacements {
    placements: [PlaylistPlacement]!
    sources: [Store]!
    totalCount: Int
    unfilteredCount: Int
}

type PlaylistStreams {
    playlist: Playlist
    streams: Long
}

type Podcast {
    artworkUrl: String
    categories: [Int]
    copyright: String
    createdDate: DateTime
    description: String
    email: String
    episode(episodeId: ID!): Episode
    episodes(filterByState: EpisodeStates, limit: Int, offset: Int, orderBy: String, sortOrder: SortDir): EpisodeResults!
    explicit: String
    host: String
    id: ID
    language: String
    link: String
    networkId: Int
    numEpisodes: Int
    owner: String
    participants: [PodcastParticipant]
    showType: String
    slug: String
    title: String
}

type PodcastCategory {
    children: [PodcastCategory]
    id: ID
    name: String
}

type PodcastCountry {
    name: String!
}

type PodcastDailyDownloads {
    downloads: Int!
    podcastId: Int!
    reportDate: Date!
}

type PodcastNetwork {
    id: ID
    name: String
    numEpisodes: Int
    numShows: Int
}

type PodcastParticipant {
    name: String
    participantId: Int
    role: String
}

type PodcastPlayer {
    name: String!
}

type PodcastResults {
    podcasts: [Podcast]
    totalCount: Int!
}

type PodcastTopCountry {
    country: String
    downloads: Int
    objectId: Int
}

type PodcastTopEpisode {
    downloads: Int!
    episode: Episode!
    episodeId: Int!
    podcast: Podcast!
    podcastId: Int!
}

type PodcastTopEpisodes {
    topEpisodes: [PodcastTopEpisode!]!
    totalCount: Int!
}

type PodcastTopNetwork {
    downloads: Int!
    network: PodcastNetwork!
    networkId: Int!
}

type PodcastTopNetworks {
    topNetworks: [PodcastTopNetwork!]!
    totalCount: Int!
}

type PodcastTopPlayer {
    downloads: Int
    objectId: Int
    player: String
}

type PodcastTopPodcast {
    downloads: Int!
    podcast: Podcast!
    podcastId: Int!
}

type PodcastTopPodcasts {
    topPodcasts: [PodcastTopPodcast!]!
    totalCount: Int!
}

type PodcastUser {
    admin: Boolean
    email: String
    id: ID
    name: String
    networks: [PodcastNetwork]
    organization: String
    role: String
}

type PodcastUserResults {
    totalCount: Int!
    users: [PodcastUser]
}

type Product {
    analytics: ProductAnalytics
    artists: [Artist]
    cLine: String
    configuration: String
    contextType: String
    deletions: String
    deliveryLinks: [StoreLink]
    displayStatus: DisplayStatus
    displayUpc: String
    distributionFormatId: Int
    format: String
    genreId: Int
    imageLocation(size: String): String
    imprint: String
    labelParticipations: [LabelParticipation]
    metaLanguage: String
    notForDistribution: String
    numberOfStores: Int
    preorderDate: Date
    primaryArtists: [Artist] @deprecated(reason : "Use `artists`. This field returns the Project artist.")
    productConfiguration: String
    productId: Int
    productName: String
    productTypeId: Int
    project: Project
    releaseCorrectionId: Int
    releaseDate: Date
    releaseId: ID
    saleStartDate: Date
    specialInstructions: String
    status: String
    subaccount: Subaccount
    subaccountId: Int
    subaccountName: String @deprecated(reason : "Use `subaccount`.")
    subgenreId: Int
    tracks: [Track]
    typeOfVideo: String
    upc: String
    vendorId: Int
    version: String
}

type ProductAnalytics {
    streams: Streams!
}

type ProductCorrectionDetail {
    correctionDetailId: Int
    fieldName: String
    keyId: Int
    keyValue: String
    tableName: String
}

type ProductDelivery {
    product_id: ID
    store_links: [StoreLink]
}

type ProductSearchResults {
    products: [Product]
    totalCount: Int
}

type Profile {
    features(regex: String): [Feature!]!
    firstName: String
    imageLocation: String
    lastName: String
    profileId: String!
    profileName: String
    profileType: ProfileType!
    roles: [Role!]!
    vendorId: Int
}

type Project {
    created: Date
    description: String
    primaryArtists: [Artist]
    productCount: Int
    projectCode: String
    projectHighlights: String
    projectId: Int
    projectName: String
    updated: Date
    vendorId: Int
}

type Query {
    account: Account
    accountingPeriods: [AccountingPeriod]
    adReads: AdReadResults
    allProductsSearch(displayStatus: [DisplayStatus], endDate: Date, limit: Int, offset: Int, productConfiguration: [ProductConfiguration], productType: [Int], sortDir: SortDir, sortField: String, startDate: Date, status: [String], subaccounts: [Int], term: String): ProductSearchResults
    analyticsFeeds: [AnalyticsFeed]!
    applications: [Application]
    artist(artistId: Int!): Artist
    artistsSearch(limit: Int, offset: Int, term: String): ArtistSearchResult
    assetTranscoderUploadStatus(filename: String!): AssetTranscoderStatus
    assetTranscoderUploadToken: UploadToken
    collaborator(collaboratorId: Int!): Collaborator
    collaboratorReportDownload(collaboratorParams: String!): CollaboratorReportDownload
    collaboratorReports(isSummaryReport: Boolean, limit: Int, offset: Int, orderBy: String, reportType: String, sortOrder: SortDir): CollaboratorReportsResults
    collaboratorSearch(searchTerm: String!): CollaboratorResults
    collaborators(limit: Int, offset: Int): CollaboratorResults
    currentPodcastUser: PodcastUser
    deliveryLinks(productId: Int): ProductDelivery
    episode(episodeId: ID!, podcastId: ID!): Episode
    episodes(filterByState: EpisodeStates, limit: Int, offset: Int, orderBy: String, podcastId: ID!, sortOrder: SortDir): EpisodeResults
    featureFlag(name: String!): Boolean
    filterArtists(artistId: Int, artistName: String, vendorId: Int): [Artist]
    getAvailableVideoChannelsByProductId(productId: Int!): [VideoChannel]
    getAvailableVideoChannelsByProjectId(accountId: Int, projectId: Int!, subaccountId: Int): [VideoChannel]
    getEpisodeDailyDownloads(country: String, dateRange: String!, episodeIds: [Int!]!, player: String): [EpisodeDailyDownloads!]!
    getNetworkDailyDownloads(country: String, dateRange: String!, networkIds: [Int!]!, player: String): [NetworkDailyDownloads!]!
    getPodcastDailyDownloads(country: String, dateRange: String!, player: String, podcastIds: [Int!]!): [PodcastDailyDownloads!]!
    getVendorAgreement(excludeImpersonator: Boolean, optInPreferenceId: Int!): VendorAgreement
    globalParticipantById(appleMusicId: Int, chartmetricId: Int, id: ID, spotifyId: String): [GlobalParticipant]
    globalParticipantSearchByName(first: Int, offset: Int, term: String!): [GlobalParticipant]
    labelParticipantSearch(limit: Int, name: String!, offset: Int, role: String, subaccountId: Int, vendorId: Int!): ParticipantSearchResult
    networkParticipantSearch(name: String!, networkId: Int!): NetworkParticipantSearchResult
    participant(global: Boolean, id: ID!): Participant!
    participantSearch(limit: Int, name: String!, offset: Int, subaccountId: Int, vendorId: Int!): ParticipantSearchResult @deprecated(reason : "Renaming to reflect private data.")
    participantServiceArtist(identifier: String!, service: ParticipantServiceType!): ServiceArtist
    participantServiceSearch(limit: Int, offset: Int, query: String!, service: ParticipantServiceType!): ParticipantServiceSearchResult
    podcast(podcastId: ID!): Podcast
    podcastCategories: [PodcastCategory]
    podcastCountries: [PodcastCountry]
    podcastNetwork(networkId: ID!): PodcastNetwork
    podcastNetworks: [PodcastNetwork]
    podcastPlayers: [PodcastPlayer]
    podcastTopCountries(dateRange: String!, objectId: Int!, objectType: String!, player: String): [PodcastTopCountry]
    podcastTopEpisodes(country: String, dateRange: String!, limit: Int!, networkId: Int, offset: Int!, player: String): PodcastTopEpisodes!
    podcastTopNetworks(country: String, dateRange: String!, limit: Int!, offset: Int!, player: String): PodcastTopNetworks!
    podcastTopPlayers(country: String, dateRange: String!, objectId: Int!, objectType: String!): [PodcastTopPlayer]
    podcastTopPodcasts(country: String, dateRange: String!, limit: Int!, networkId: Int, offset: Int!, player: String): PodcastTopPodcasts!
    podcastUploadToken: UploadToken
    podcastUsers(limit: Int, offset: Int): PodcastUserResults
    podcasts(limit: Int, offset: Int): PodcastResults
    product(cached: Boolean, productId: String!): Product
    projectByProjectCode(accountId: Int!, projectCode: String!, subaccountId: Int!): Project
    recentPlacements(limit: Int, minFollowers: Int, offset: Int, ownerCategories: [OwnerCategory!], storeIds: [Int!]): PlaylistPlacements
    search(limit: Int, offset: Int, term: String): SearchResults!
    soundRecording(cached: Boolean, isrc: String!): SoundRecording
    soundRecordingsSearch(limit: Int, offset: Int, term: String, trackType: String): SoundRecordingSearchResults!
    starredItems: StarredItems!
    topSoundRecordings(metadataSource: String): [SoundRecording]
    track(tuid: ID!): Track
    transferWiseAccountRequirements(source: String!, target: String!): [TransferWiseAccountRequirement]
    vendorCurrency: VendorCurrency
}

type RankedMetric {
    rank: Long
    value: Long
}

type Region {
    regionName: String!
}

type RelatedParticipants {
    spotifyMonthlyListeners: RelatedParticipantsMetric!
}

type RelatedParticipantsMetric {
    genres: [String!]!
    participants: [Participant!]!
}

type SaveCollaboratorSplitsResult {
    created: [CollaboratorSplit!]!
    deleted: [Int!]!
    updated: [CollaboratorSplit!]!
}

type SearchResults {
    participantSearchResults(limit: Int, offset: Int, term: String): ParticipantSearchResults!
    productSearchResults(displayStatus: [DisplayStatus], endDate: Date, limit: Int, offset: Int, productConfiguration: [ProductConfiguration], productType: [Int], sortDir: SortDir, sortField: String, startDate: Date, status: [String], subaccounts: [Int], term: String): ProductSearchResults!
    soundRecordingSearchResults(limit: Int, offset: Int, term: String, trackType: TrackType): SoundRecordingSearchResults!
}

type ServiceArtist {
    followers: Int
    genres: [String]
    identifier: String!
    image: String
    name: String!
    url: String
}

type SocialAccount {
    followers: SocialAccountFollowers!
    linked: Boolean!
    platform: SocialPlatform!
    url: String
}

type SocialAccountFollowers {
    growthPercentage: Float
    items(days: Int, startDate: String): [DailyTimeseries!]!
    total: Long
    totalFollowersDifference: Long
    totalFollowersPercentage: Float
}

type SocialAsset {
    contentType: SocialContentType!
    url: String!
}

type SocialFan {
    displayName: String
    followers: Int
    id: ID!
    imageLocation: String
    mentions: Int
    platform: SocialPlatform!
    posts: [SocialPost]
    username: String
    verified: Boolean!
}

type SocialPost {
    assets: [SocialAsset!]!
    comments: Int
    content: String
    createdDate: DateTime!
    creator: SocialFan!
    id: ID!
    imageLocation: String @deprecated(reason : "Retrieve images from assets field.")
    likes: Int
    links: [SocialPostLink]
    platform: SocialPlatform!
    postId: ID!
    reposts: Int
    url: String!
    views: Int
}

type SocialPostLink {
    url: String
}

type SoundRecording {
    analytics: Analytics
    imageLocation: String
    isrc: String!
    name: String
    playlistPlacements(minFollowers: Int, ownerCategories: [OwnerCategory!], storeIds: [Int!]): PlaylistPlacements
    primaryArtists: [Artist]
    products(includeDeleted: Boolean): [Product]
}

type SoundRecordingSearchResults {
    soundRecordings: [SoundRecording!]!
    totalCount: Int!
}

type SourceOfStreams {
    active: StreamSource!
    collection: StreamSource!
    passive: StreamSource!
    sources: [Store]!
    unknown: StreamSource!
}

type SpotifyPopularity {
    fanConversionPercentage: Float
    index: Int
    monthlyListeners: RankedMetric
}

type StarredItems {
    participants: [Participant!]!
}

type Store {
    error: StoreError
    storeId: Int!
    storeName: String!
}

type StoreDownloadData {
    data: DownloadData
    store: Store
}

type StoreError {
    code: String
    message: String
    types: [String]
}

type StoreLink {
    go_live_date: Date
    link: String
    store_id: ID
    store_name: String
}

type StoreStreamData {
    data: StreamData
    store: Store
}

type Storefront {
    countryCode: String
    storefrontUri: String
    trackCount: Int
}

type StorefrontPlacement {
    added: Date
    position: Int
    previousPosition: Int
    soundRecording: SoundRecording
    storefront: Storefront
    streams: Int
}

type StreamData {
    allTime: Long
    growthPercentage: Float
    items: [Timeseries]
    skipRate: Float
}

type StreamSource {
    growthPercentage: Float
    total: Int!
    value: Float
}

type Streams {
    aggregate: StreamData!
    sources: [Store]!
    stores: [StoreStreamData]!
}

type StreamsBreakdown {
    active: StreamSource!
    adSupported: StreamSource!
    collection: StreamSource!
    midTier: StreamSource!
    passive: StreamSource!
    sourceOfStreams: SourceOfStreams!
    sources: [Store]!
    streamsBySubscription: StreamsBySubscription!
    subscription: StreamSource!
}

type StreamsBySubscription {
    adSupported: StreamSource!
    midTier: StreamSource!
    sources: [Store]!
    subscription: StreamSource!
}

type Subaccount {
    commissionOverride: Float
    countryId: Int
    description: String
    id: ID!
    subaccountName: String
    subaccountSplitType: SubaccountSplitType
    vendorId: ID
}

type Timeseries {
    date: Date
    saves: Int
    skipRate: Float
    value: Float
}

type TopCountriesByDownloads {
    countries: [CountryDownloads!]
    sources: [Store]!
}

type TopCountriesByStreams {
    countries: [CountryStreams!]
    sources: [Store]!
}

type TopMarkets {
    markets: [MarketStreams]!
    sources: [Store]!
}

type TopPlaylists {
    playlists: [PlaylistStreams!]
    sources: [Store]!
    totalStreams: Long
}

type Track {
    analytics: TrackAnalytics
    artists: [Artist] @deprecated(reason : "Use `primaryArtists`.")
    explicit: String
    isrc: String
    lyrics: String
    metaLanguageCode: String
    meta_language_code: String @deprecated(reason : "Use `metaLanguageCode`.")
    name: String @deprecated(reason : "Use `trackName`.")
    number: Int @deprecated(reason : "Use `trackNumber`.")
    originalRightsHolderCountryId: Int
    original_rights_holder_country_id: Int @deprecated(reason : "Use `originalRightsHolderCountryId`.")
    ownershipRights: String
    ownership_rights: String @deprecated(reason : "Use `ownershipRights`.")
    pInfo: String
    p_info: String @deprecated(reason : "Use `pInfo`.")
    performers: [Performer]
    previewStartTime: Int
    preview_start_time: Int @deprecated(reason : "Use `previewStartTime`.")
    primaryArtists: [Artist]
    product: Product
    productId: String
    product_id: Int @deprecated(reason : "Use `productId`.")
    publishing: TrackPublishing
    recordingCountryId: Int
    recording_country_id: Int @deprecated(reason : "Use `recordingCountryId`.")
    samples: [TrackSample]
    soundRecording: SoundRecording
    splits: [CollaboratorSplit]
    thumb: String
    trackCd: Int @deprecated(reason : "Use `volumeNumber`.")
    trackName: String
    trackNumber: Int
    trackType: String
    tuid: ID
    upc: String
    version: String
    volumeNumber: Int
    writers: [TrackWriter]
}

type TrackAnalytics {
    streams: Streams!
}

type TrackPublishing {
    publisherNames: [String]
    thirdPartyPublisher: String
    usPublishingObligation: String
}

type TrackSample {
    artists: [TrackSampleArtist]
    isrc: String
    notes: String
    pLine: String
    sampleId: Int
    sampleType: String
    trackLength: Int
    trackName: String
    uniqueTrackId: Int
    updatedDate: String
}

type TrackSampleArtist {
    artistId: Int
    artistName: String
    artistType: String
}

type TrackWriter {
    artistInfoId: Int
    artist_info_id: Int
    name: String
    trackWriterId: ID
    trackWriterName: String
    trackWriterType: String
    track_writer_id: ID
    type: String
}

type TransferWiseAccountField {
    example: String
    key: String!
    maxLength: Int
    minLength: Int
    name: String!
    refreshRequirementsOnChange: Boolean
    required: Boolean
    type: String!
    validationRegexp: String
    valuesAllowed: [TransferWiseAccountFieldValue!]
}

type TransferWiseAccountFieldValue {
    key: String!
    name: String!
}

type TransferWiseAccountRequirement {
    fields: [TransferWiseAccountField!]!
    title: String!
    type: String!
}

type TransferWiseProfile {
    id: ID!
    profileId: Int!
    subaccountId: Int
    vendorId: Int!
}

type TriggerCollaboratorsReportGenerationResponse {
    accepted: Boolean
}

type UnsubmitProductResult {
    result: String!
}

type UploadToken {
    bucket: String
    credentials: UploadTokenCredentials
    filename: String
}

type UploadTokenCredentials {
    awsAccessKeyId: String
    awsSecretAccessKey: String
    expiration: String
    token: String
}

type User {
    access(include: [String]): [String] @deprecated(reason : "Please use Profile type instead of User type.")
    accountId: String @deprecated(reason : "Please use Profile type instead of User type.")
    accountType: String @deprecated(reason : "Please use Profile type instead of User type.")
    features(regex: String): [Feature] @deprecated(reason : "Please use Profile type instead of User type.")
    imageLocation: String @deprecated(reason : "Please use Profile type instead of User type.")
    name: String @deprecated(reason : "Please use Profile type instead of User type.")
    subaccountId: String @deprecated(reason : "Please use Profile type instead of User type.")
    userId: String @deprecated(reason : "Please use Profile type instead of User type.")
}

type Vendor {
    id: ID!
}

type VendorAgreement {
    dateAccepted: Date
    impersonatorUserId: Int
    optInPreferenceId: Int
    userId: Int
    vendorAgreementId: ID!
    vendorId: Int
}

type VendorCurrency {
    code: String
    currencyId: Int
    symbol: String
    vendorId: Int
}

type VideoChannel {
    artistId: Int
    channelId: Int
    channelName: String
    id: ID!
    vevoControlled: Boolean
}

type VideoSingleProduct {
    productId: Int
}

enum AccountingPeriodType {
    MONTH
    QUARTER
}

enum AdReadStatus {
    COMPLETED
    NEW
    REJECTED
    SUBMITTED
}

enum CacheControlScope {
    PRIVATE
    PUBLIC
}

enum CollaboratorPaymentStatus {
    NOT_SET_UP
}

enum CollaboratorReportGenerationType {
    AUTOMATED
    MANUAL
}

enum CollaboratorSplitRateType {
    GROSS
    NET
}

enum DemographicAgeCategory {
    UNKNOWN
    _17
    _18_22
    _23_27
    _28_34
    _35_44
    _45_59
    _60_
}

enum DisplayStatus {
    ACTION_REQUIRED
    COMPLETED
    ERROR_CORRECTION
    IN_PROGRESS
    SUBMITTED
    action_required @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    completed @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    error_correction @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    in_progress @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    submitted @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
}

enum EpisodeStates {
    ALL
    DONE
    DRAFT
}

enum OperatingSystem {
    ANDROID
    IOS
}

enum OwnerCategory {
    CURATED
    EDITORIAL
    USER_GENERATED
}

enum ParticipantServiceType {
    APPLE_MUSIC
    SPOTIFY
}

enum ProductConfiguration {
    DIGITAL_AUDIO
    DigitalAudio @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    MOVIE
    MUSIC_VIDEO
    Movie @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    MusicVideo @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    OTHER
    Other @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    PHYSICAL_AUDIO
    PhysicalAudio @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    TVShow @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    TV_SHOW
}

enum ProfileType {
    ARTIST
    INSIGHTS
    LABEL
}

enum Role {
    ACCOUNTING
    ADMINISTRATOR
    ADVERTISING
    ANALYTICS
    CATALOG
    MANAGE_RIGHTS
    MARKETING
}

enum SampleArtistType {
    ARTIST
    PRODUCER
    SONGWRITER
}

enum SocialContentType {
    IMAGE
    VIDEO
}

enum SocialFansOrderBy {
    FOLLOWERS
    MENTIONS
    RELEVANCE
}

enum SocialFansType {
    BLOG
    EVENT
    FAN
    FAN_PAGE
    RADIO
}

enum SocialPlatform {
    DEEZER
    FACEBOOK
    INSTAGRAM
    SOUNDCLOUD
    SPOTIFY
    TWITTER
    YOUTUBE
}

enum SocialPostsOrderBy {
    DATE
    POPULARITY
}

enum SortDir {
    ASC
    DESC
    asc @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
    desc @deprecated(reason : "Enumerated values should be UPPER_CAMEL_CASE.")
}

enum SubaccountSplitType {
    GROSS
    NET
}

enum TrackType {
    MUSIC
}

input CollaboratorInput {
    email: String
    name: String!
    participantId: Int
    subaccountId: Int
}

input CorrectionDetailInput {
    fieldName: String!
    keyId: Int
    keyValue: String!
    tableName: String!
}

input CreateAdReadInput {
    copyUrlPath: String!
    dueDate: Date!
    episodeId: Int!
    podcastId: Int!
    title: String!
}

input CreateArtistInput {
    artistId: Int
    artistInfoId: Int
    artistName: String!
    artistType: String
    subaccountId: Int
    vendorId: Int
}

input CreateCollaboratorSplitInput {
    collaboratorId: Int!
    identifier: String!
    splitRate: Float!
    splitTypeId: Int!
}

input CreateEpisodeInput {
    artworkFilename: String
    audioFilename: String
    content: String
    description: String
    draft: Boolean!
    episodeNumber: Int
    episodeType: String
    plannedMidRollCount: Int
    plannedPostRollCount: Int
    plannedPreRollCount: Int
    podcastId: Int!
    publishedDate: DateTime
    seasonNumber: Int
    title: String!
}

input CreateEpisodeInsertionPointInput {
    count: Int!
    pointType: String!
    timecode: String!
}

input CreateEpisodeInsertionPointsInput {
    episodeId: Int!
    insertionPoints: [CreateEpisodeInsertionPointInput!]!
    podcastId: Int!
}

input CreateInventoryInput {
    dates: [DateTime!]!
    midRolls: Int!
    podcastId: Int!
    postRolls: Int!
    preRolls: Int!
    titlePrefix: String!
}

input CreatePodcastInput {
    artworkFilename: String!
    categories: [Int!]!
    copyright: String!
    description: String!
    email: String!
    explicit: String!
    host: String!
    language: String!
    link: String!
    networkId: Int!
    owner: String!
    participants: [PodcastParticipantInput!]
    showType: String!
    slug: String!
    title: String!
}

input CreatePodcastUserInput {
    admin: Boolean
    email: String!
    name: String!
    networkIds: [Int!]!
    organization: String!
    role: String
}

input CreateProductCorrectionInput {
    productId: ID!
}

input CreateProductInput {
    accountId: Int
    accountType: String
    cLine: String
    channelSelection: String
    description: String
    format: String
    genreId: Int
    imprint: String
    metaLanguage: String
    pLine: String
    primaryArtists: [CreateArtistInput]
    productCode: String
    productConfiguration: ProductConfiguration
    productHighlights: String!
    productName: String!
    projectId: Int!
    specialInstructions: String
    subaccountId: Int
    subgenreId: Int
    upc: String
    version: String
}

input CreateProjectInput {
    accountId: Int
    artistId: Int
    description: String
    name: String!
    projectCode: String!
    subaccountId: Int
}

input CreateSampleInput {
    artists: [SampleArtistInput]
    isrc: String
    notes: String
    pLine: String
    sampleType: String
    trackLength: Int
    trackName: String!
}

input CreateTrackArtistInput {
    artistInfoId: Int
    artistName: String!
    artistType: String!
    trackArtistId: Int
}

input CreateTrackInput {
    artists: [CreateTrackArtistInput]
    explicit: String!
    isrc: String
    lyrics: String
    metaLanguageCode: String
    originalRightsHolderCountryId: Int
    ownershipRights: String
    pInfo: String
    performers: [CreateTrackPerformerInput]
    previewStartTime: Int
    publishers: [CreateTrackPublisherInput]
    recordingCountryId: Int
    samples: [CreateSampleInput]
    trackName: String!
    trackNumber: Int
    trackType: String
    upc: String
    version: String
    volumeNumber: Int
    writers: [CreateTrackWriterInput]
}

input CreateTrackPerformerInput {
    name: String!
    roleId: Int!
    type: String!
}

input CreateTrackPublisherInput {
    name: String!
}

input CreateTrackWriterInput {
    artistInfoId: Int
    trackWriterId: Int
    writerName: String!
    writerType: String
}

input CreateTracksInput {
    productId: Int!
    tracks: [CreateTrackInput]
}

input CreateTransferWiseProfileInput {
    profileId: Int!
    subaccountId: Int
}

input CreateTransferWiseRecipientInput {
    abartn: String
    accountHolderName: String
    accountNumber: String
    accountType: String
    addressCity: String
    addressCountry: String
    addressFirstLine: String
    addressPostCode: String
    addressState: String
    currency: String!
    legalType: String
    type: String!
}

input CreateVideoSingleProductInput {
    accountId: Int
    associatedTrackId: Int
    channelSelection: String
    clineCopyrightHolder: String
    clineYear: Int
    description: String
    genreId: Int
    imprint: String
    isrc: String
    languageOfVideoContent: String
    languageOfVideoTitle: String
    lyrics: String
    parentalAdvisory: String
    plineCopyrightHolder: String
    plineYear: Int
    primaryArtists: [CreateArtistInput]
    productCode: String
    projectId: String!
    specialInstructions: String
    subaccountId: Int
    subgenreId: Int
    typeOfVideo: String
    upc: String
    version: String
    videoTitle: String
}

input DeleteAdReadInput {
    id: ID!
}

input DeleteCollaboratorReportInput {
    collaboratorParams: String!
}

input DeleteCollaboratorSplitInput {
    id: Int!
}

input DeleteEpisodeInput {
    id: ID!
    podcastId: Int!
}

input DeletePodcastInput {
    id: ID
}

input DeletePodcastUserInput {
    id: ID!
}

input DeleteProductCorrectionInput {
    productId: ID!
    releaseCorrectionId: ID!
}

input DeleteTracksInput {
    productId: ID!
    tracks: [ID!]!
}

input FollowParticipantInput {
    participantId: ID!
}

input InstagramCommentInput {
    comment: String!
    participantId: String!
    postId: ID!
}

input LinkParticipantSocialPlatformUrlInput {
    callbackUrl: String!
    participantId: String!
    platform: SocialPlatform!
}

input LogoutMobileDeviceInput {
    deviceId: String!
    refreshToken: ID!
}

input NetworkParticipantCreateInput {
    name: String!
    networkId: Int!
}

input ParticipantCreateInput {
    appleMusicId: String
    collaboratorId: ID
    name: String!
    spotifyId: String
    subaccountId: ID!
    vendorId: ID!
}

input ParticipantDeleteInput {
    id: ID!
}

input ParticipantIncorrectProfileInput {
    message: String!
    participantId: ID!
    participantName: String
    productId: ID
    productName: String
    subaccountId: ID!
    upc: String
    vendorId: ID!
}

input ParticipantUpdateInput {
    collaboratorId: ID
    id: ID!
    name: String
    subaccountId: ID
    vendorId: ID
}

input PodcastParticipantInput {
    name: String!
    participantId: Int!
    role: String!
}

input ProductCorrectionDetailInput {
    corrections: [CorrectionDetailInput!]!
    productId: Int!
    releaseCorrectionId: Int!
}

input RegisterUserDeviceInput {
    deviceId: String
    operatingSystem: OperatingSystem!
    pushToken: String!
}

input SampleArtistInput {
    artistName: String
    artistType: SampleArtistType
}

input SaveArtistsInput {
    create: [CreateArtistInput]
}

input SaveCollaboratorSplitsInput {
    create: [CreateCollaboratorSplitInput!]
    delete: [DeleteCollaboratorSplitInput!]
    update: [UpdateCollaboratorSplitInput!]
}

input SaveTracksInput {
    create: CreateTracksInput
    delete: DeleteTracksInput
    update: UpdateTracksBodyInput
    updatePosition: UpdateTracksPositionInput
}

input SaveVideoSingleProductInput {
    create: CreateVideoSingleProductInput
    update: UpdateVideoSingleProductInput
}

input SubmitProductInput {
    productId: ID!
    subaccountId: ID
    vendorId: ID
}

input TriggerCollaboratorsReportGenerationInput {
    clientEmail: String!
    collaboratorIds: [Int]
    firstPeriodId: Int!
    lastPeriodId: Int!
    periodName: String!
    reportRunName: String!
}

input UnlinkParticipantSocialPlatformInput {
    participantId: String!
    platform: SocialPlatform!
}

input UnregisterUserDeviceInput {
    deviceId: String!
}

input UnsubmitProductInput {
    productId: ID!
}

input UpdateAdReadInput {
    adReadUrl: String
    id: ID!
    rejectionReason: String
    status: AdReadStatus
}

input UpdateCollaboratorInput {
    email: String
    id: Int!
    name: String
    performanceRights: Boolean
    splitRateType: CollaboratorSplitRateType
}

input UpdateCollaboratorSplitInput {
    collaboratorId: Int
    id: Int!
    splitRate: Float
}

input UpdateEpisodeInput {
    artworkFilename: String
    audioFilename: String
    content: String
    description: String
    draft: Boolean!
    episodeNumber: Int
    episodeType: String
    id: ID!
    plannedMidRollCount: Int
    plannedPostRollCount: Int
    plannedPreRollCount: Int
    podcastId: Int!
    publishedDate: DateTime
    seasonNumber: Int
    title: String!
}

input UpdatePodcastInput {
    artworkFilename: String
    categories: [Int!]
    copyright: String
    description: String
    email: String
    explicit: String
    host: String
    id: ID!
    language: String
    link: String
    owner: String
    participants: [PodcastParticipantInput!]
    showType: String
    title: String
}

input UpdatePodcastUserInput {
    id: ID!
    networkIds: [Int!]
}

input UpdateProductInput {
    accountId: Int
    accountType: String
    artistId: Int
    cLine: String
    channelSelection: String
    description: String
    format: String
    genreId: Int
    imprint: String
    manufacturerUpc: String
    metaLanguage: String
    notForDistribution: String
    pLine: String
    preorderDate: String
    previewable: String
    primaryArtists: [CreateArtistInput]
    productCode: String
    productConfiguration: ProductConfiguration
    productHighlights: String
    productId: Int!
    productName: String
    projectCode: String
    projectId: String
    releaseDate: String
    saleStartDate: String
    specialInstructions: String
    subgenreId: Int
    vendorReleaseIdentifier: String
    version: String
}

input UpdateProjectInput {
    artistId: Int
    description: String
    name: String
    projectCode: String
    projectHighlights: String
    projectId: Int!
}

input UpdateTrackBodyInput {
    artists: [CreateTrackArtistInput]
    explicit: String
    isrc: String
    lyrics: String
    metaLanguageCode: String
    originalRightsHolderCountryId: Int
    ownershipRights: String
    pInfo: String
    performers: [CreateTrackPerformerInput]
    previewStartTime: Int
    publishers: [CreateTrackPublisherInput]
    recordingCountryId: Int
    samples: [CreateSampleInput]
    trackName: String
    trackType: String
    upc: String
    version: String
    writers: [CreateTrackWriterInput]
}

input UpdateTrackPositionInput {
    trackNumber: Int!
    tuid: Int!
    volumeNumber: Int!
}

input UpdateTracksBodyInput {
    body: UpdateTrackBodyInput
    tracks: [ID!]!
}

input UpdateTracksPositionInput {
    productId: Int!
    tracks: [UpdateTrackPositionInput!]!
}

input UpdateVideoSingleProductInput {
    accountId: Int
    associatedTrackId: Int
    channelSelection: String
    clineCopyrightHolder: String
    clineYear: Int
    description: String
    genreId: Int
    imprint: String
    languageOfVideoContent: String
    languageOfVideoTitle: String
    lyrics: String
    parentalAdvisory: String
    plineCopyrightHolder: String
    plineYear: Int
    primaryArtists: [CreateArtistInput]
    productId: String!
    specialInstructions: String
    subaccountId: Int
    subgenreId: Int
    typeOfVideo: String
    version: String
    videoTitle: String
}

input VendorAgreementInput {
    impersonatorUserId: Int
    optInPreferenceId: Int!
    userId: Int
}


scalar Date

"The `Long` scalar type represents 52-bit integers"
scalar Long

"A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar."
scalar DateTime

"A time string at UTC, such as 10:15:30Z, compliant with the `full-time` format outlined in section 5.6 of the RFC 3339profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar."
scalar Time
