/**
 * Wordpress Node - Version 1
 * Discriminator: resource=page, operation=create
 */


interface Credentials {
  wordpressApi: CredentialReference;
  wordpressOAuth2Api: CredentialReference;
}

/** Create a post */
export type WordpressV1PageCreateParams = {
  resource: 'page';
  operation: 'create';
/**
 * The authentication method to use
 * @default basicAuth
 */
    authType?: 'basicAuth' | 'oAuth2' | Expression<string>;
/**
 * The title for the page
 */
    title?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** The ID for the author of the object. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     */
    authorId?: string | Expression<string>;
    /** The ID for the parent of the post
     */
    parent?: number | Expression<number>;
    /** The content for the page
     */
    content?: string | Expression<string> | PlaceholderValue;
    /** An alphanumeric identifier for the object unique to its type
     */
    slug?: string | Expression<string> | PlaceholderValue;
    /** A password to protect access to the content and excerpt
     */
    password?: string | Expression<string> | PlaceholderValue;
    /** A named status for the page
     * @default draft
     */
    status?: 'draft' | 'future' | 'pending' | 'private' | 'publish' | Expression<string>;
    /** Whether or not comments are open on the page
     * @default open
     */
    commentStatus?: 'open' | 'closed' | Expression<string>;
    /** If the a message should be send to announce the page
     * @default open
     */
    pingStatus?: 'open' | 'closed' | Expression<string>;
    /** Template
     * @default {}
     */
    pageTemplate?: {
        /** Values
     */
    values?: {
      /** Whether site uses elementor page builder
       * @default true
       */
      elementor?: boolean | Expression<boolean>;
      /** The theme file to use
       * @displayOptions.show { elementor: [false] }
       */
      template?: string | Expression<string> | PlaceholderValue;
      /** The Elementor template to use
       * @displayOptions.show { elementor: [true] }
       */
      template?: '' | 'elementor_canvas' | 'elementor_header_footer' | 'elementor_theme' | Expression<string>;
    };
  };
    /** The order of the page in relation to other pages
     * @default 0
     */
    menuOrder?: number | Expression<number>;
    /** The ID of the featured media for the page
     */
    featuredMediaId?: number | Expression<number>;
  };
};

export type WordpressV1PageCreateOutput = {
  _links?: {
    about?: Array<{
      href?: string;
    }>;
    author?: Array<{
      embeddable?: boolean;
      href?: string;
    }>;
    collection?: Array<{
      href?: string;
    }>;
    curies?: Array<{
      href?: string;
      name?: string;
      templated?: boolean;
    }>;
    replies?: Array<{
      embeddable?: boolean;
      href?: string;
    }>;
    self?: Array<{
      href?: string;
      targetHints?: {
        allow?: Array<string>;
      };
    }>;
    'version-history'?: Array<{
      count?: number;
      href?: string;
    }>;
    'wp:action-assign-author'?: Array<{
      href?: string;
    }>;
    'wp:action-publish'?: Array<{
      href?: string;
    }>;
    'wp:action-unfiltered-html'?: Array<{
      href?: string;
    }>;
    'wp:attachment'?: Array<{
      href?: string;
    }>;
  };
  author?: number;
  comment_status?: string;
  content?: {
    block_version?: number;
    protected?: boolean;
    raw?: string;
  };
  date?: string;
  date_gmt?: string;
  excerpt?: {
    protected?: boolean;
    raw?: string;
    rendered?: string;
  };
  featured_media?: number;
  generated_slug?: string;
  guid?: {
    raw?: string;
    rendered?: string;
  };
  id?: number;
  link?: string;
  menu_order?: number;
  meta?: {
    footnotes?: string;
  };
  modified?: string;
  modified_gmt?: string;
  parent?: number;
  password?: string;
  permalink_template?: string;
  ping_status?: string;
  slug?: string;
  status?: string;
  template?: string;
  title?: {
    raw?: string;
    rendered?: string;
  };
  type?: string;
};

export type WordpressV1PageCreateNode = {
  type: 'n8n-nodes-base.wordpress';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<WordpressV1PageCreateParams>;
  output?: Items<WordpressV1PageCreateOutput>;
};