/**
 * GitLab Node - Version 1
 * Discriminator: resource=issue, operation=create
 */


interface Credentials {
  gitlabApi: CredentialReference;
  gitlabOAuth2Api: CredentialReference;
}

/** Create a new issue */
export type GitlabV1IssueCreateParams = {
  resource: 'issue';
  operation: 'create';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * User, group or namespace of the project
 */
    owner?: string | Expression<string> | PlaceholderValue;
/**
 * The name of the project
 * @displayOptions.hide { resource: ["user"], operation: ["getRepositories"] }
 */
    repository?: string | Expression<string> | PlaceholderValue;
/**
 * The title of the issue
 */
    title?: string | Expression<string> | PlaceholderValue;
/**
 * The body of the issue
 */
    body?: string | Expression<string> | PlaceholderValue;
/**
 * Due Date for issue
 */
    due_date?: string | Expression<string>;
/**
 * Labels
 * @default {"label":""}
 */
    labels?: {
    /** Label to add to issue
     */
    label?: string | Expression<string> | PlaceholderValue;
  };
/**
 * Assignees
 * @default {"assignee":""}
 */
    assignee_ids?: {
    /** User ID to assign issue to
     * @default 0
     */
    assignee?: number | Expression<number>;
  };
};

export type GitlabV1IssueCreateOutput = {
  _links?: {
    award_emoji?: string;
    closed_as_duplicate_of?: null;
    notes?: string;
    project?: string;
    self?: string;
  };
  assignees?: Array<{
    avatar_url?: string;
    id?: number;
    locked?: boolean;
    name?: string;
    state?: string;
    username?: string;
    web_url?: string;
  }>;
  author?: {
    id?: number;
    locked?: boolean;
    name?: string;
    state?: string;
    username?: string;
    web_url?: string;
  };
  blocking_issues_count?: number;
  closed_at?: null;
  closed_by?: null;
  confidential?: boolean;
  created_at?: string;
  discussion_locked?: null;
  downvotes?: number;
  has_tasks?: boolean;
  id?: number;
  iid?: number;
  imported?: boolean;
  imported_from?: string;
  issue_type?: string;
  labels?: Array<string>;
  merge_requests_count?: number;
  milestone?: null;
  moved_to_id?: null;
  project_id?: number;
  references?: {
    full?: string;
    relative?: string;
    short?: string;
  };
  service_desk_reply_to?: null;
  severity?: string;
  state?: string;
  subscribed?: boolean;
  task_completion_status?: {
    completed_count?: number;
    count?: number;
  };
  task_status?: string;
  time_stats?: {
    human_time_estimate?: null;
    human_total_time_spent?: null;
    time_estimate?: number;
    total_time_spent?: number;
  };
  title?: string;
  type?: string;
  updated_at?: string;
  upvotes?: number;
  user_notes_count?: number;
  web_url?: string;
  weight?: null;
};

export type GitlabV1IssueCreateNode = {
  type: 'n8n-nodes-base.gitlab';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<GitlabV1IssueCreateParams>;
  output?: Items<GitlabV1IssueCreateOutput>;
};