/**
 * Spotify Node - Version 1
 * Discriminator: resource=artist, operation=getAlbums
 */


interface Credentials {
  spotifyOAuth2Api: CredentialReference;
}

/** Get an artist's albums by URI or ID */
export type SpotifyV1ArtistGetAlbumsParams = {
  resource: 'artist';
  operation: 'getAlbums';
/**
 * The artist's Spotify URI or ID
 * @displayOptions.hide { operation: ["search"] }
 */
    id?: string | Expression<string> | PlaceholderValue;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 50
 */
    limit?: number | Expression<number>;
};

export type SpotifyV1ArtistGetAlbumsOutput = {
  album_group?: string;
  album_type?: string;
  artists?: Array<{
    external_urls?: {
      spotify?: string;
    };
    href?: string;
    id?: string;
    name?: string;
    type?: string;
    uri?: string;
  }>;
  available_markets?: Array<string>;
  external_urls?: {
    spotify?: string;
  };
  href?: string;
  id?: string;
  images?: Array<{
    height?: number;
    url?: string;
    width?: number;
  }>;
  name?: string;
  release_date?: string;
  release_date_precision?: string;
  total_tracks?: number;
  type?: string;
  uri?: string;
};

export type SpotifyV1ArtistGetAlbumsNode = {
  type: 'n8n-nodes-base.spotify';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<SpotifyV1ArtistGetAlbumsParams>;
  output?: Items<SpotifyV1ArtistGetAlbumsOutput>;
};