import { BaseResource } from '@gitbeaker/requester-utils'; import { RequestHelper } from '../infrastructure'; import type { BaseRequestOptions, GitlabAPIResponse, ShowExpanded, Sudo } from '../infrastructure'; export interface ApplicationSettingsSchema extends Record { admin_mode?: boolean; admin_notification_email?: string; abuse_notification_email?: string; after_sign_out_path?: string; after_sign_up_text?: string; akismet_api_key?: string; akismet_enabled?: boolean; allow_group_owners_to_manage_ldap?: boolean; allow_local_requests_from_hooks_and_services?: boolean; allow_local_requests_from_system_hooks?: boolean; allow_local_requests_from_web_hooks_and_services?: boolean; allow_runner_registration_token?: boolean; archive_builds_in_human_readable?: string; asset_proxy_enabled?: boolean; asset_proxy_secret_key?: string; asset_proxy_url?: string; asset_proxy_whitelist?: string | string[]; asset_proxy_allowlist?: string | string[]; authorized_keys_enabled?: boolean; auto_devops_domain?: string; auto_devops_enabled?: boolean; automatic_purchased_storage_allocation?: boolean; bulk_import_enabled?: boolean; can_create_group?: boolean; check_namespace_plan?: boolean; commit_email_hostname?: string; container_expiration_policies_enable_historic_entries?: boolean; container_registry_cleanup_tags_service_max_list_size?: number; container_registry_delete_tags_service_timeout?: number; container_registry_expiration_policies_caching?: boolean; container_registry_expiration_policies_worker_capacity?: number; container_registry_token_expire_delay?: number; package_registry_cleanup_policies_worker_capacity?: number; deactivate_dormant_users?: boolean; deactivate_dormant_users_period?: number; default_artifacts_expire_in?: string; default_branch_name?: string; default_branch_protection?: number; default_ci_config_path?: string; default_group_visibility?: string; default_preferred_language?: string; default_project_creation?: number; default_project_visibility?: string; default_projects_limit?: number; default_snippet_visibility?: string; default_syntax_highlighting_theme?: number; delayed_project_deletion?: boolean; delayed_group_deletion?: boolean; deletion_adjourned_period?: number; diff_max_patch_bytes?: number; diff_max_files?: number; diff_max_lines?: number; disable_admin_oauth_scopes?: boolean; disable_feed_token?: boolean; disable_personal_access_token?: boolean; disabled_oauth_sign_in_sources?: string[]; dns_rebinding_protection_enabled?: boolean; domain_denylist_enabled?: boolean; domain_denylist?: string[]; domain_allowlist?: string[]; dsa_key_restriction?: number; ecdsa_key_restriction?: number; ecdsa_sk_key_restriction?: number; ed25519_key_restriction?: number; ed25519_sk_key_restriction?: number; eks_access_key_id?: string; eks_account_id?: string; eks_integration_enabled?: boolean; eks_secret_access_key?: string; elasticsearch_aws_access_key?: string; elasticsearch_aws_region?: string; elasticsearch_aws_secret_access_key?: string; elasticsearch_aws?: boolean; elasticsearch_indexed_field_length_limit?: number; elasticsearch_indexed_file_size_limit_kb?: number; elasticsearch_indexing?: boolean; elasticsearch_limit_indexing?: boolean; elasticsearch_max_bulk_concurrency?: number; elasticsearch_max_bulk_size_mb?: number; elasticsearch_namespace_ids?: number[]; elasticsearch_project_ids?: number[]; elasticsearch_search?: boolean; elasticsearch_url?: string; elasticsearch_username?: string; elasticsearch_password?: string; email_additional_text?: string; email_author_in_body?: boolean; email_confirmation_setting?: string; enabled_git_access_protocol?: string; enforce_namespace_storage_limit?: boolean; enforce_terms?: boolean; external_auth_client_cert?: string; external_auth_client_key_pass?: string; external_auth_client_key?: string; external_authorization_service_default_label?: string; external_authorization_service_enabled?: boolean; external_authorization_service_timeout?: number; external_authorization_service_url?: string; external_pipeline_validation_service_url?: string; external_pipeline_validation_service_token?: string; external_pipeline_validation_service_timeout?: number; file_template_project_id?: number; first_day_of_week?: number; geo_node_allowed_ips?: string; geo_status_timeout?: number; git_two_factor_session_expiry?: number; gitaly_timeout_default?: number; gitaly_timeout_fast?: number; gitaly_timeout_medium?: number; gitlab_dedicated_instance?: boolean; grafana_enabled?: boolean; grafana_url?: string; gravatar_enabled?: boolean; group_owners_can_manage_default_branch_protection?: boolean; hashed_storage_enabled?: boolean; help_page_hide_commercial_content?: boolean; help_page_support_url?: string; help_page_text?: string; help_text?: string; hide_third_party_offers?: boolean; home_page_url?: string; housekeeping_enabled?: boolean; housekeeping_optimize_repository_period?: number; html_emails_enabled?: boolean; import_sources?: string[]; in_product_marketing_emails_enabled?: boolean; invisible_captcha_enabled?: boolean; issues_create_limit?: number; keep_latest_artifact?: boolean; local_markdown_version?: number; mailgun_signing_key?: string; mailgun_events_enabled?: boolean; maintenance_mode_message?: string; maintenance_mode?: boolean; max_artifacts_size?: number; max_attachment_size?: number; max_export_size?: number; max_import_size?: number; max_pages_size?: number; max_personal_access_token_lifetime?: number; max_ssh_key_lifetime?: number; max_terraform_state_size_bytes?: number; metrics_method_call_threshold?: number; max_number_of_repository_downloads?: number; max_number_of_repository_downloads_within_time_period?: number; git_rate_limit_users_allowlist?: string[]; git_rate_limit_users_alertlist?: number[]; auto_ban_user_on_excessive_projects_download?: boolean; mirror_available?: boolean; mirror_capacity_threshold?: number; mirror_max_capacity?: number; mirror_max_delay?: number; maven_package_requests_forwarding?: boolean; npm_package_requests_forwarding?: boolean; pypi_package_requests_forwarding?: boolean; outbound_local_requests_whitelist?: string[]; pages_domain_verification_enabled?: boolean; password_authentication_enabled_for_git?: boolean; password_authentication_enabled_for_web?: boolean; password_number_required?: boolean; password_symbol_required?: boolean; password_uppercase_required?: boolean; password_lowercase_required?: boolean; performance_bar_allowed_group_path?: string; personal_access_token_prefix?: string; pipeline_limit_per_project_user_sha?: number; plantuml_enabled?: boolean; plantuml_url?: string; polling_interval_multiplier?: number; project_export_enabled?: boolean; projects_api_rate_limit_unauthenticated?: number; prometheus_metrics_enabled?: boolean; protected_ci_variables?: boolean; push_event_activities_limit?: number; push_event_hooks_limit?: number; rate_limiting_response_text?: string; raw_blob_request_limit?: number; search_rate_limit?: number; search_rate_limit_unauthenticated?: number; recaptcha_enabled?: boolean; recaptcha_private_key?: string; recaptcha_site_key?: string; receive_max_input_size?: number; repository_checks_enabled?: boolean; repository_size_limit?: number; repository_storages_weighted?: Record; repository_storages?: string[]; require_admin_approval_after_user_signup?: boolean; require_two_factor_authentication?: boolean; restricted_visibility_levels?: string[]; rsa_key_restriction?: number; session_expire_delay?: number; shared_runners_enabled?: boolean; shared_runners_minutes?: number; shared_runners_text?: string; sidekiq_job_limiter_mode?: string; sidekiq_job_limiter_compression_threshold_bytes?: number; sidekiq_job_limiter_limit_bytes?: number; sign_in_text?: string; signup_enabled?: boolean; slack_app_enabled?: boolean; slack_app_id?: string; slack_app_secret?: string; slack_app_signing_secret?: string; slack_app_verification_token?: string; snippet_size_limit?: number; snowplow_app_id?: string; snowplow_collector_hostname?: string; snowplow_cookie_domain?: string; snowplow_enabled?: boolean; sourcegraph_enabled?: boolean; sourcegraph_public_only?: boolean; sourcegraph_url?: string; spam_check_endpoint_enabled?: boolean; spam_check_endpoint_url?: string; spam_check_api_key?: string; suggest_pipeline_enabled?: boolean; terminal_max_session_time?: number; terms?: string; throttle_authenticated_api_enabled?: boolean; throttle_authenticated_api_period_in_seconds?: number; throttle_authenticated_api_requests_per_period?: number; throttle_authenticated_packages_api_enabled?: boolean; throttle_authenticated_packages_api_period_in_seconds?: number; throttle_authenticated_packages_api_requests_per_period?: number; throttle_authenticated_web_enabled?: boolean; throttle_authenticated_web_period_in_seconds?: number; throttle_authenticated_web_requests_per_period?: number; throttle_unauthenticated_api_enabled?: boolean; throttle_unauthenticated_api_period_in_seconds?: number; throttle_unauthenticated_api_requests_per_period?: number; throttle_unauthenticated_packages_api_enabled?: boolean; throttle_unauthenticated_packages_api_period_in_seconds?: number; throttle_unauthenticated_packages_api_requests_per_period?: number; throttle_unauthenticated_web_enabled?: boolean; throttle_unauthenticated_web_period_in_seconds?: number; throttle_unauthenticated_web_requests_per_period?: number; time_tracking_limit_to_hours?: boolean; two_factor_grace_period?: number; unique_ips_limit_enabled?: boolean; unique_ips_limit_per_user?: number; unique_ips_limit_time_window?: number; usage_ping_enabled?: boolean; user_deactivation_emails_enabled?: boolean; user_default_external?: boolean; user_default_internal_regex?: string; user_defaults_to_private_profile?: boolean; user_oauth_applications?: boolean; user_show_add_ssh_key_message?: boolean; version_check_enabled?: boolean; whats_new_variant?: string; wiki_page_max_content_bytes?: number; jira_connect_application_key?: string; jira_connect_proxy_url?: string; } export class ApplicationSettings extends BaseResource { show( options?: Sudo & ShowExpanded, ): Promise> { return RequestHelper.get()(this, 'application/settings', options); } edit( options?: BaseRequestOptions, ): Promise> { return RequestHelper.put()(this, 'application/settings', options); } }