/**
 * Medium Node - Version 1
 * Discriminator: resource=post, operation=create
 */


interface Credentials {
  mediumApi: CredentialReference;
  mediumOAuth2Api: CredentialReference;
}

/** Create a post */
export type MediumV1PostCreateParams = {
  resource: 'post';
  operation: 'create';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Whether you are posting for a publication
 * @default false
 */
    publication?: boolean | Expression<boolean>;
/**
 * Publication IDs. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 * @displayOptions.show { publication: [true] }
 */
    publicationId?: string | Expression<string>;
/**
 * Title of the post. Max Length : 100 characters.
 */
    title?: string | Expression<string> | PlaceholderValue;
/**
 * The format of the content to be posted
 */
    contentFormat?: 'html' | 'markdown' | Expression<string>;
/**
 * The body of the post, in a valid semantic HTML fragment, or Markdown
 */
    content?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** The original home of this content, if it was originally published elsewhere
     */
    canonicalUrl?: string | Expression<string> | PlaceholderValue;
    /** License of the post
     * @default all-rights-reserved
     */
    license?: 'all-rights-reserved' | 'cc-40-by' | 'cc-40-by-nc' | 'cc-40-by-nc-nd' | 'cc-40-by-nc-sa' | 'cc-40-by-nd' | 'cc-40-by-sa' | 'cc-40-zero' | 'public-domain' | Expression<string>;
    /** Whether to notify followers that the user has published
     * @default false
     */
    notifyFollowers?: boolean | Expression<boolean>;
    /** The status of the post
     * @default public
     */
    publishStatus?: 'public' | 'draft' | 'unlisted' | Expression<string>;
    /** Comma-separated strings to be used as tags for post classification. Max allowed tags: 5. Max tag length: 25 characters.
     */
    tags?: string | Expression<string> | PlaceholderValue;
  };
};

export type MediumV1PostCreateOutput = {
  authorId?: string;
  canonicalUrl?: string;
  id?: string;
  license?: string;
  licenseUrl?: string;
  publishedAt?: number;
  publishStatus?: string;
  tags?: Array<string>;
  title?: string;
  url?: string;
};

export type MediumV1PostCreateNode = {
  type: 'n8n-nodes-base.medium';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<MediumV1PostCreateParams>;
  output?: Items<MediumV1PostCreateOutput>;
};