/**
 * Spotify Node - Version 1
 * Discriminator: resource=playlist, operation=get
 */


interface Credentials {
  spotifyOAuth2Api: CredentialReference;
}

/** Get an album by URI or ID */
export type SpotifyV1PlaylistGetParams = {
  resource: 'playlist';
  operation: 'get';
/**
 * The playlist's Spotify URI or its ID
 */
    id?: string | Expression<string> | PlaceholderValue;
};

export type SpotifyV1PlaylistGetOutput = {
  collaborative?: boolean;
  description?: string;
  external_urls?: {
    spotify?: string;
  };
  followers?: {
    href?: null;
    total?: number;
  };
  href?: string;
  id?: string;
  name?: string;
  owner?: {
    display_name?: string;
    external_urls?: {
      spotify?: string;
    };
    href?: string;
    id?: string;
    type?: string;
    uri?: string;
  };
  public?: boolean;
  snapshot_id?: string;
  tracks?: {
    href?: string;
    items?: Array<{
      added_at?: string;
      added_by?: {
        external_urls?: {
          spotify?: string;
        };
        href?: string;
        id?: string;
        type?: string;
        uri?: string;
      };
      is_local?: boolean;
      primary_color?: null;
      track?: {
        album?: {
          artists?: Array<{
            external_urls?: {
              spotify?: string;
            };
            href?: string;
            id?: string;
            type?: string;
            uri?: string;
          }>;
          available_markets?: Array<string>;
          external_urls?: {
            spotify?: string;
          };
          images?: Array<{
            height?: number;
            url?: string;
            width?: number;
          }>;
          name?: string;
          total_tracks?: number;
          type?: string;
        };
        artists?: Array<{
          external_urls?: {
            spotify?: string;
          };
          type?: string;
        }>;
        available_markets?: Array<string>;
        disc_number?: number;
        duration_ms?: number;
        episode?: boolean;
        explicit?: boolean;
        external_ids?: {
          isrc?: string;
        };
        external_urls?: {
          spotify?: string;
        };
        is_local?: boolean;
        name?: string;
        popularity?: number;
        track?: boolean;
        track_number?: number;
        type?: string;
        uri?: string;
      };
      video_thumbnail?: {
        url?: null;
      };
    }>;
    limit?: number;
    offset?: number;
    previous?: null;
    total?: number;
  };
  type?: string;
  uri?: string;
};

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