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


interface Credentials {
  youTubeOAuth2Api: CredentialReference;
}

/** Retrieve a channel */
export type YouTubeV1PlaylistGetParams = {
  resource: 'playlist';
  operation: 'get';
/**
 * Playlist ID
 */
    playlistId?: string | Expression<string> | PlaceholderValue;
/**
 * The fields parameter specifies a comma-separated list of one or more playlist resource properties that the API response will include
 * @default ["*"]
 */
    part?: Array<'*' | 'contentDetails' | 'id' | 'localizations' | 'player' | 'snippet' | 'status'>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value
     */
    onBehalfOfContentOwner?: string | Expression<string> | PlaceholderValue;
    /** The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added
     */
    onBehalfOfContentOwnerChannel?: string | Expression<string> | PlaceholderValue;
  };
};

export type YouTubeV1PlaylistGetOutput = {
  contentDetails?: {
    itemCount?: number;
  };
  etag?: string;
  id?: string;
  kind?: string;
  player?: {
    embedHtml?: string;
  };
  snippet?: {
    channelId?: string;
    channelTitle?: string;
    description?: string;
    localized?: {
      description?: string;
      title?: string;
    };
    publishedAt?: string;
    thumbnails?: {
      'default'?: {
        height?: number;
        url?: string;
        width?: number;
      };
      high?: {
        height?: number;
        url?: string;
        width?: number;
      };
      maxres?: {
        height?: number;
        url?: string;
        width?: number;
      };
      medium?: {
        height?: number;
        url?: string;
        width?: number;
      };
      standard?: {
        height?: number;
        url?: string;
        width?: number;
      };
    };
    title?: string;
  };
  status?: {
    privacyStatus?: string;
  };
};

export type YouTubeV1PlaylistGetNode = {
  type: 'n8n-nodes-base.youTube';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<YouTubeV1PlaylistGetParams>;
  output?: Items<YouTubeV1PlaylistGetOutput>;
};