/**
 * GitLab Node - Version 1
 * Discriminator: resource=repository, operation=get
 */


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

/** Get the data of a single issue */
export type GitlabV1RepositoryGetParams = {
  resource: 'repository';
  operation: 'get';
  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;
};

export type GitlabV1RepositoryGetOutput = {
  _links?: {
    cluster_agents?: string;
    events?: string;
    issues?: string;
    labels?: string;
    members?: string;
    merge_requests?: string;
    repo_branches?: string;
    self?: string;
  };
  allow_pipeline_trigger_approve_deployment?: boolean;
  analytics_access_level?: string;
  approvals_before_merge?: number;
  archived?: boolean;
  auto_cancel_pending_pipelines?: string;
  auto_devops_deploy_strategy?: string;
  auto_devops_enabled?: boolean;
  autoclose_referenced_issues?: boolean;
  build_git_strategy?: string;
  build_timeout?: number;
  builds_access_level?: string;
  can_create_merge_request_in?: boolean;
  ci_allow_fork_pipelines_to_run_in_parent_project?: boolean;
  ci_delete_pipelines_in_seconds?: null;
  ci_forward_deployment_rollback_allowed?: boolean;
  ci_id_token_sub_claim_components?: Array<string>;
  ci_job_token_scope_enabled?: boolean;
  ci_pipeline_variables_minimum_override_role?: string;
  ci_push_repository_for_job_token_allowed?: boolean;
  ci_restrict_pipeline_cancellation_role?: string;
  ci_separated_caches?: boolean;
  container_registry_access_level?: string;
  container_registry_enabled?: boolean;
  container_registry_image_prefix?: string;
  created_at?: string;
  creator_id?: number;
  default_branch?: string;
  description_html?: string;
  emails_enabled?: boolean;
  empty_repo?: boolean;
  enforce_auth_checks_on_uploads?: boolean;
  environments_access_level?: string;
  feature_flags_access_level?: string;
  forking_access_level?: string;
  forks_count?: number;
  group_runners_enabled?: boolean;
  http_url_to_repo?: string;
  id?: number;
  import_error?: null;
  import_status?: string;
  infrastructure_access_level?: string;
  issues_access_level?: string;
  issues_enabled?: boolean;
  jobs_enabled?: boolean;
  keep_latest_artifact?: boolean;
  last_activity_at?: string;
  lfs_enabled?: boolean;
  marked_for_deletion_at?: null;
  marked_for_deletion_on?: null;
  max_artifacts_size?: null;
  merge_method?: string;
  merge_pipelines_enabled?: boolean;
  merge_requests_access_level?: string;
  merge_requests_enabled?: boolean;
  merge_trains_enabled?: boolean;
  merge_trains_skip_train_allowed?: boolean;
  mirror?: boolean;
  model_experiments_access_level?: string;
  model_registry_access_level?: string;
  monitor_access_level?: string;
  name?: string;
  name_with_namespace?: string;
  namespace?: {
    full_path?: string;
    id?: number;
    kind?: string;
    name?: string;
    path?: string;
    web_url?: string;
  };
  only_allow_merge_if_all_discussions_are_resolved?: boolean;
  only_allow_merge_if_pipeline_succeeds?: boolean;
  open_issues_count?: number;
  pages_access_level?: string;
  path?: string;
  path_with_namespace?: string;
  permissions?: {
    group_access?: {
      access_level?: number;
      notification_level?: number;
    };
  };
  printing_merge_request_link_enabled?: boolean;
  public_jobs?: boolean;
  releases_access_level?: string;
  repository_access_level?: string;
  repository_object_format?: string;
  request_access_enabled?: boolean;
  requirements_access_level?: string;
  requirements_enabled?: boolean;
  restrict_user_defined_variables?: boolean;
  runner_token_expiration_interval?: null;
  security_and_compliance_access_level?: string;
  security_and_compliance_enabled?: boolean;
  service_desk_enabled?: boolean;
  shared_runners_enabled?: boolean;
  shared_with_groups?: Array<{
    expires_at?: null;
    group_access_level?: number;
    group_full_path?: string;
    group_id?: number;
    group_name?: string;
  }>;
  snippets_access_level?: string;
  snippets_enabled?: boolean;
  squash_commit_template?: null;
  squash_option?: string;
  ssh_url_to_repo?: string;
  star_count?: number;
  updated_at?: string;
  visibility?: string;
  warn_about_potentially_unwanted_characters?: boolean;
  web_url?: string;
  wiki_access_level?: string;
  wiki_enabled?: boolean;
};

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