...

Source file src/github.com/xanzy/go-gitlab/settings.go

Documentation: github.com/xanzy/go-gitlab

     1  //
     2  // Copyright 2021, Sander van Harmelen
     3  //
     4  // Licensed under the Apache License, Version 2.0 (the "License");
     5  // you may not use this file except in compliance with the License.
     6  // You may obtain a copy of the License at
     7  //
     8  //     http://www.apache.org/licenses/LICENSE-2.0
     9  //
    10  // Unless required by applicable law or agreed to in writing, software
    11  // distributed under the License is distributed on an "AS IS" BASIS,
    12  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  // See the License for the specific language governing permissions and
    14  // limitations under the License.
    15  //
    16  
    17  package gitlab
    18  
    19  import (
    20  	"net/http"
    21  	"time"
    22  )
    23  
    24  // SettingsService handles communication with the application SettingsService
    25  // related methods of the GitLab API.
    26  //
    27  // GitLab API docs: https://docs.gitlab.com/ee/api/settings.html
    28  type SettingsService struct {
    29  	client *Client
    30  }
    31  
    32  // Settings represents the GitLab application settings.
    33  //
    34  // GitLab API docs: https://docs.gitlab.com/ee/api/settings.html
    35  //
    36  // The available parameters have been modeled directly after the code, as the
    37  // documentation seems to be inaccurate.
    38  //
    39  // https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/lib/api/settings.rb
    40  // https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/lib/api/entities/application_setting.rb#L5
    41  // https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/app/helpers/application_settings_helper.rb#L192
    42  // https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/ee/lib/ee/api/helpers/settings_helpers.rb#L10
    43  // https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/ee/app/helpers/ee/application_settings_helper.rb#L20
    44  type Settings struct {
    45  	ID                                                    int               `json:"id"`
    46  	AbuseNotificationEmail                                string            `json:"abuse_notification_email"`
    47  	AdminMode                                             bool              `json:"admin_mode"`
    48  	AfterSignOutPath                                      string            `json:"after_sign_out_path"`
    49  	AfterSignUpText                                       string            `json:"after_sign_up_text"`
    50  	AkismetAPIKey                                         string            `json:"akismet_api_key"`
    51  	AkismetEnabled                                        bool              `json:"akismet_enabled"`
    52  	AllowGroupOwnersToManageLDAP                          bool              `json:"allow_group_owners_to_manage_ldap"`
    53  	AllowLocalRequestsFromSystemHooks                     bool              `json:"allow_local_requests_from_system_hooks"`
    54  	AllowLocalRequestsFromWebHooksAndServices             bool              `json:"allow_local_requests_from_web_hooks_and_services"`
    55  	ArchiveBuildsInHumanReadable                          string            `json:"archive_builds_in_human_readable"`
    56  	AssetProxyAllowlist                                   []string          `json:"asset_proxy_allowlist"`
    57  	AssetProxyEnabled                                     bool              `json:"asset_proxy_enabled"`
    58  	AssetProxyURL                                         string            `json:"asset_proxy_url"`
    59  	AssetProxySecretKey                                   string            `json:"asset_proxy_secret_key"`
    60  	AuthorizedKeysEnabled                                 bool              `json:"authorized_keys_enabled"`
    61  	AutoDevOpsDomain                                      string            `json:"auto_devops_domain"`
    62  	AutoDevOpsEnabled                                     bool              `json:"auto_devops_enabled"`
    63  	AutomaticPurchasedStorageAllocation                   bool              `json:"automatic_purchased_storage_allocation"`
    64  	CanCreateGroup                                        bool              `json:"can_create_group"`
    65  	CheckNamespacePlan                                    bool              `json:"check_namespace_plan"`
    66  	CommitEmailHostname                                   string            `json:"commit_email_hostname"`
    67  	ContainerExpirationPoliciesEnableHistoricEntries      bool              `json:"container_expiration_policies_enable_historic_entries"`
    68  	ContainerRegistryCleanupTagsServiceMaxListSize        int               `json:"container_registry_cleanup_tags_service_max_list_size"`
    69  	ContainerRegistryDeleteTagsServiceTimeout             int               `json:"container_registry_delete_tags_service_timeout"`
    70  	ContainerRegistryExpirationPoliciesCaching            bool              `json:"container_registry_expiration_policies_caching"`
    71  	ContainerRegistryExpirationPoliciesWorkerCapacity     int               `json:"container_registry_expiration_policies_worker_capacity"`
    72  	ContainerRegistryImportCreatedBefore                  *time.Time        `json:"container_registry_import_created_before"`
    73  	ContainerRegistryImportMaxRetries                     int               `json:"container_registry_import_max_retries"`
    74  	ContainerRegistryImportMaxStepDuration                int               `json:"container_registry_import_max_step_duration"`
    75  	ContainerRegistryImportMaxTagsCount                   int               `json:"container_registry_import_max_tags_count"`
    76  	ContainerRegistryImportStartMaxRetries                int               `json:"container_registry_import_start_max_retries"`
    77  	ContainerRegistryImportTargetPlan                     string            `json:"container_registry_import_target_plan"`
    78  	ContainerRegistryTokenExpireDelay                     int               `json:"container_registry_token_expire_delay"`
    79  	CreatedAt                                             *time.Time        `json:"created_at"`
    80  	CustomHTTPCloneURLRoot                                string            `json:"custom_http_clone_url_root"`
    81  	DNSRebindingProtectionEnabled                         bool              `json:"dns_rebinding_protection_enabled"`
    82  	DSAKeyRestriction                                     int               `json:"dsa_key_restriction"`
    83  	DeactivateDormantUsers                                bool              `json:"deactivate_dormant_users"`
    84  	DefaultArtifactsExpireIn                              string            `json:"default_artifacts_expire_in"`
    85  	DefaultBranchName                                     string            `json:"default_branch_name"`
    86  	DefaultBranchProtection                               int               `json:"default_branch_protection"`
    87  	DefaultCiConfigPath                                   string            `json:"default_ci_config_path"`
    88  	DefaultGroupVisibility                                VisibilityValue   `json:"default_group_visibility"`
    89  	DefaultProjectCreation                                int               `json:"default_project_creation"`
    90  	DefaultProjectDeletionProtection                      bool              `json:"default_project_deletion_protection"`
    91  	DefaultProjectVisibility                              VisibilityValue   `json:"default_project_visibility"`
    92  	DefaultProjectsLimit                                  int               `json:"default_projects_limit"`
    93  	DefaultSnippetVisibility                              VisibilityValue   `json:"default_snippet_visibility"`
    94  	DelayedGroupDeletion                                  bool              `json:"delayed_group_deletion"`
    95  	DelayedProjectDeletion                                bool              `json:"delayed_project_deletion"`
    96  	DeleteInactiveProjects                                bool              `json:"delete_inactive_projects"`
    97  	DeletionAdjournedPeriod                               int               `json:"deletion_adjourned_period"`
    98  	DiffMaxFiles                                          int               `json:"diff_max_files"`
    99  	DiffMaxLines                                          int               `json:"diff_max_lines"`
   100  	DiffMaxPatchBytes                                     int               `json:"diff_max_patch_bytes"`
   101  	DisableFeedToken                                      bool              `json:"disable_feed_token"`
   102  	DisableOverridingApproversPerMergeRequest             bool              `json:"disable_overriding_approvers_per_merge_request"`
   103  	DisabledOauthSignInSources                            []string          `json:"disabled_oauth_sign_in_sources"`
   104  	DomainAllowlist                                       []string          `json:"domain_allowlist"`
   105  	DomainDenylist                                        []string          `json:"domain_denylist"`
   106  	DomainDenylistEnabled                                 bool              `json:"domain_denylist_enabled"`
   107  	ECDSAKeyRestriction                                   int               `json:"ecdsa_key_restriction"`
   108  	ECDSASKKeyRestriction                                 int               `json:"ecdsa_sk_key_restriction"`
   109  	EKSAccessKeyID                                        string            `json:"eks_access_key_id"`
   110  	EKSAccountID                                          string            `json:"eks_account_id"`
   111  	EKSIntegrationEnabled                                 bool              `json:"eks_integration_enabled"`
   112  	EKSSecretAccessKey                                    string            `json:"eks_secret_access_key"`
   113  	Ed25519KeyRestriction                                 int               `json:"ed25519_key_restriction"`
   114  	Ed25519SKKeyRestriction                               int               `json:"ed25519_sk_key_restriction"`
   115  	ElasticsearchAWS                                      bool              `json:"elasticsearch_aws"`
   116  	ElasticsearchAWSAccessKey                             string            `json:"elasticsearch_aws_access_key"`
   117  	ElasticsearchAWSRegion                                string            `json:"elasticsearch_aws_region"`
   118  	ElasticsearchAWSSecretAccessKey                       string            `json:"elasticsearch_aws_secret_access_key"`
   119  	ElasticsearchAnalyzersKuromojiEnabled                 bool              `json:"elasticsearch_analyzers_kuromoji_enabled"`
   120  	ElasticsearchAnalyzersKuromojiSearch                  bool              `json:"elasticsearch_analyzers_kuromoji_search"`
   121  	ElasticsearchAnalyzersSmartCNEnabled                  bool              `json:"elasticsearch_analyzers_smartcn_enabled"`
   122  	ElasticsearchAnalyzersSmartCNSearch                   bool              `json:"elasticsearch_analyzers_smartcn_search"`
   123  	ElasticsearchClientRequestTimeout                     int               `json:"elasticsearch_client_request_timeout"`
   124  	ElasticsearchIndexedFieldLengthLimit                  int               `json:"elasticsearch_indexed_field_length_limit"`
   125  	ElasticsearchIndexedFileSizeLimitKB                   int               `json:"elasticsearch_indexed_file_size_limit_kb"`
   126  	ElasticsearchIndexing                                 bool              `json:"elasticsearch_indexing"`
   127  	ElasticsearchLimitIndexing                            bool              `json:"elasticsearch_limit_indexing"`
   128  	ElasticsearchMaxBulkConcurrency                       int               `json:"elasticsearch_max_bulk_concurrency"`
   129  	ElasticsearchMaxBulkSizeMB                            int               `json:"elasticsearch_max_bulk_size_mb"`
   130  	ElasticsearchNamespaceIDs                             []int             `json:"elasticsearch_namespace_ids"`
   131  	ElasticsearchPassword                                 string            `json:"elasticsearch_password"`
   132  	ElasticsearchPauseIndexing                            bool              `json:"elasticsearch_pause_indexing"`
   133  	ElasticsearchProjectIDs                               []int             `json:"elasticsearch_project_ids"`
   134  	ElasticsearchReplicas                                 int               `json:"elasticsearch_replicas"`
   135  	ElasticsearchSearch                                   bool              `json:"elasticsearch_search"`
   136  	ElasticsearchShards                                   int               `json:"elasticsearch_shards"`
   137  	ElasticsearchURL                                      []string          `json:"elasticsearch_url"`
   138  	ElasticsearchUsername                                 string            `json:"elasticsearch_username"`
   139  	EmailAdditionalText                                   string            `json:"email_additional_text"`
   140  	EmailAuthorInBody                                     bool              `json:"email_author_in_body"`
   141  	EmailRestrictions                                     string            `json:"email_restrictions"`
   142  	EmailRestrictionsEnabled                              bool              `json:"email_restrictions_enabled"`
   143  	EnabledGitAccessProtocol                              string            `json:"enabled_git_access_protocol"`
   144  	EnforceNamespaceStorageLimit                          bool              `json:"enforce_namespace_storage_limit"`
   145  	EnforcePATExpiration                                  bool              `json:"enforce_pat_expiration"`
   146  	EnforceSSHKeyExpiration                               bool              `json:"enforce_ssh_key_expiration"`
   147  	EnforceTerms                                          bool              `json:"enforce_terms"`
   148  	ExternalAuthClientCert                                string            `json:"external_auth_client_cert"`
   149  	ExternalAuthClientKey                                 string            `json:"external_auth_client_key"`
   150  	ExternalAuthClientKeyPass                             string            `json:"external_auth_client_key_pass"`
   151  	ExternalAuthorizationServiceDefaultLabel              string            `json:"external_authorization_service_default_label"`
   152  	ExternalAuthorizationServiceEnabled                   bool              `json:"external_authorization_service_enabled"`
   153  	ExternalAuthorizationServiceTimeout                   float64           `json:"external_authorization_service_timeout"`
   154  	ExternalAuthorizationServiceURL                       string            `json:"external_authorization_service_url"`
   155  	ExternalPipelineValidationServiceTimeout              int               `json:"external_pipeline_validation_service_timeout"`
   156  	ExternalPipelineValidationServiceToken                string            `json:"external_pipeline_validation_service_token"`
   157  	ExternalPipelineValidationServiceURL                  string            `json:"external_pipeline_validation_service_url"`
   158  	FileTemplateProjectID                                 int               `json:"file_template_project_id"`
   159  	FirstDayOfWeek                                        int               `json:"first_day_of_week"`
   160  	FlocEnabled                                           bool              `json:"floc_enabled"`
   161  	GeoNodeAllowedIPs                                     string            `json:"geo_node_allowed_ips"`
   162  	GeoStatusTimeout                                      int               `json:"geo_status_timeout"`
   163  	GitTwoFactorSessionExpiry                             int               `json:"git_two_factor_session_expiry"`
   164  	GitalyTimeoutDefault                                  int               `json:"gitaly_timeout_default"`
   165  	GitalyTimeoutFast                                     int               `json:"gitaly_timeout_fast"`
   166  	GitalyTimeoutMedium                                   int               `json:"gitaly_timeout_medium"`
   167  	GitpodEnabled                                         bool              `json:"gitpod_enabled"`
   168  	GitpodURL                                             string            `json:"gitpod_url"`
   169  	GitRateLimitUsersAllowlist                            []string          `json:"git_rate_limit_users_allowlist"`
   170  	GrafanaEnabled                                        bool              `json:"grafana_enabled"`
   171  	GrafanaURL                                            string            `json:"grafana_url"`
   172  	GravatarEnabled                                       bool              `json:"gravatar_enabled"`
   173  	GroupDownloadExportLimit                              int               `json:"group_download_export_limit"`
   174  	GroupExportLimit                                      int               `json:"group_export_limit"`
   175  	GroupImportLimit                                      int               `json:"group_import_limit"`
   176  	GroupOwnersCanManageDefaultBranchProtection           bool              `json:"group_owners_can_manage_default_branch_protection"`
   177  	GroupRunnerTokenExpirationInterval                    int               `json:"group_runner_token_expiration_interval"`
   178  	HTMLEmailsEnabled                                     bool              `json:"html_emails_enabled"`
   179  	HashedStorageEnabled                                  bool              `json:"hashed_storage_enabled"`
   180  	HelpPageDocumentationBaseURL                          string            `json:"help_page_documentation_base_url"`
   181  	HelpPageHideCommercialContent                         bool              `json:"help_page_hide_commercial_content"`
   182  	HelpPageSupportURL                                    string            `json:"help_page_support_url"`
   183  	HelpPageText                                          string            `json:"help_page_text"`
   184  	HelpText                                              string            `json:"help_text"`
   185  	HideThirdPartyOffers                                  bool              `json:"hide_third_party_offers"`
   186  	HomePageURL                                           string            `json:"home_page_url"`
   187  	HousekeepingBitmapsEnabled                            bool              `json:"housekeeping_bitmaps_enabled"`
   188  	HousekeepingEnabled                                   bool              `json:"housekeeping_enabled"`
   189  	HousekeepingFullRepackPeriod                          int               `json:"housekeeping_full_repack_period"`
   190  	HousekeepingGcPeriod                                  int               `json:"housekeeping_gc_period"`
   191  	HousekeepingIncrementalRepackPeriod                   int               `json:"housekeeping_incremental_repack_period"`
   192  	HousekeepingOptimizeRepositoryPeriod                  int               `json:"housekeeping_optimize_repository_period"`
   193  	ImportSources                                         []string          `json:"import_sources"`
   194  	InactiveProjectsDeleteAfterMonths                     int               `json:"inactive_projects_delete_after_months"`
   195  	InactiveProjectsMinSizeMB                             int               `json:"inactive_projects_min_size_mb"`
   196  	InactiveProjectsSendWarningEmailAfterMonths           int               `json:"inactive_projects_send_warning_email_after_months"`
   197  	InProductMarketingEmailsEnabled                       bool              `json:"in_product_marketing_emails_enabled"`
   198  	InvisibleCaptchaEnabled                               bool              `json:"invisible_captcha_enabled"`
   199  	IssuesCreateLimit                                     int               `json:"issues_create_limit"`
   200  	KeepLatestArtifact                                    bool              `json:"keep_latest_artifact"`
   201  	KrokiEnabled                                          bool              `json:"kroki_enabled"`
   202  	KrokiFormats                                          map[string]bool   `json:"kroki_formats"`
   203  	KrokiURL                                              string            `json:"kroki_url"`
   204  	LocalMarkdownVersion                                  int               `json:"local_markdown_version"`
   205  	LockMembershipsToLDAP                                 bool              `json:"lock_memberships_to_ldap"`
   206  	LoginRecaptchaProtectionEnabled                       bool              `json:"login_recaptcha_protection_enabled"`
   207  	MailgunEventsEnabled                                  bool              `json:"mailgun_events_enabled"`
   208  	MailgunSigningKey                                     string            `json:"mailgun_signing_key"`
   209  	MaintenanceMode                                       bool              `json:"maintenance_mode"`
   210  	MaintenanceModeMessage                                string            `json:"maintenance_mode_message"`
   211  	MaxArtifactsSize                                      int               `json:"max_artifacts_size"`
   212  	MaxAttachmentSize                                     int               `json:"max_attachment_size"`
   213  	MaxExportSize                                         int               `json:"max_export_size"`
   214  	MaxImportSize                                         int               `json:"max_import_size"`
   215  	MaxNumberOfRepositoryDownloads                        int               `json:"max_number_of_repository_downloads"`
   216  	MaxNumberOfRepositoryDownloadsWithinTimePeriod        int               `json:"max_number_of_repository_downloads_within_time_period"`
   217  	MaxPagesSize                                          int               `json:"max_pages_size"`
   218  	MaxPersonalAccessTokenLifetime                        int               `json:"max_personal_access_token_lifetime"`
   219  	MaxSSHKeyLifetime                                     int               `json:"max_ssh_key_lifetime"`
   220  	MaxYAMLDepth                                          int               `json:"max_yaml_depth"`
   221  	MaxYAMLSizeBytes                                      int               `json:"max_yaml_size_bytes"`
   222  	MetricsMethodCallThreshold                            int               `json:"metrics_method_call_threshold"`
   223  	MinimumPasswordLength                                 int               `json:"minimum_password_length"`
   224  	MirrorAvailable                                       bool              `json:"mirror_available"`
   225  	MirrorCapacityThreshold                               int               `json:"mirror_capacity_threshold"`
   226  	MirrorMaxCapacity                                     int               `json:"mirror_max_capacity"`
   227  	MirrorMaxDelay                                        int               `json:"mirror_max_delay"`
   228  	NPMPackageRequestsForwarding                          bool              `json:"npm_package_requests_forwarding"`
   229  	NotesCreateLimit                                      int               `json:"notes_create_limit"`
   230  	NotifyOnUnknownSignIn                                 bool              `json:"notify_on_unknown_sign_in"`
   231  	OutboundLocalRequestsAllowlistRaw                     string            `json:"outbound_local_requests_allowlist_raw"`
   232  	OutboundLocalRequestsWhitelist                        []string          `json:"outbound_local_requests_whitelist"`
   233  	PackageRegistryCleanupPoliciesWorkerCapacity          int               `json:"package_registry_cleanup_policies_worker_capacity"`
   234  	PagesDomainVerificationEnabled                        bool              `json:"pages_domain_verification_enabled"`
   235  	PasswordAuthenticationEnabledForGit                   bool              `json:"password_authentication_enabled_for_git"`
   236  	PasswordAuthenticationEnabledForWeb                   bool              `json:"password_authentication_enabled_for_web"`
   237  	PasswordNumberRequired                                bool              `json:"password_number_required"`
   238  	PasswordSymbolRequired                                bool              `json:"password_symbol_required"`
   239  	PasswordUppercaseRequired                             bool              `json:"password_uppercase_required"`
   240  	PasswordLowercaseRequired                             bool              `json:"password_lowercase_required"`
   241  	PerformanceBarAllowedGroupID                          int               `json:"performance_bar_allowed_group_id"`
   242  	PerformanceBarAllowedGroupPath                        string            `json:"performance_bar_allowed_group_path"`
   243  	PerformanceBarEnabled                                 bool              `json:"performance_bar_enabled"`
   244  	PersonalAccessTokenPrefix                             string            `json:"personal_access_token_prefix"`
   245  	PipelineLimitPerProjectUserSha                        int               `json:"pipeline_limit_per_project_user_sha"`
   246  	PlantumlEnabled                                       bool              `json:"plantuml_enabled"`
   247  	PlantumlURL                                           string            `json:"plantuml_url"`
   248  	PollingIntervalMultiplier                             float64           `json:"polling_interval_multiplier,string"`
   249  	PreventMergeRequestsAuthorApproval                    bool              `json:"prevent_merge_request_author_approval"`
   250  	PreventMergeRequestsCommittersApproval                bool              `json:"prevent_merge_request_committers_approval"`
   251  	ProjectDownloadExportLimit                            int               `json:"project_download_export_limit"`
   252  	ProjectExportEnabled                                  bool              `json:"project_export_enabled"`
   253  	ProjectExportLimit                                    int               `json:"project_export_limit"`
   254  	ProjectImportLimit                                    int               `json:"project_import_limit"`
   255  	ProjectRunnerTokenExpirationInterval                  int               `json:"project_runner_token_expiration_interval"`
   256  	PrometheusMetricsEnabled                              bool              `json:"prometheus_metrics_enabled"`
   257  	ProtectedCIVariables                                  bool              `json:"protected_ci_variables"`
   258  	PseudonymizerEnabled                                  bool              `json:"pseudonymizer_enabled"`
   259  	PushEventActivitiesLimit                              int               `json:"push_event_activities_limit"`
   260  	PushEventHooksLimit                                   int               `json:"push_event_hooks_limit"`
   261  	PyPIPackageRequestsForwarding                         bool              `json:"pypi_package_requests_forwarding"`
   262  	RSAKeyRestriction                                     int               `json:"rsa_key_restriction"`
   263  	RateLimitingResponseText                              string            `json:"rate_limiting_response_text"`
   264  	RawBlobRequestLimit                                   int               `json:"raw_blob_request_limit"`
   265  	RecaptchaEnabled                                      bool              `json:"recaptcha_enabled"`
   266  	RecaptchaPrivateKey                                   string            `json:"recaptcha_private_key"`
   267  	RecaptchaSiteKey                                      string            `json:"recaptcha_site_key"`
   268  	ReceiveMaxInputSize                                   int               `json:"receive_max_input_size"`
   269  	RepositoryChecksEnabled                               bool              `json:"repository_checks_enabled"`
   270  	RepositorySizeLimit                                   int               `json:"repository_size_limit"`
   271  	RepositoryStorages                                    []string          `json:"repository_storages"`
   272  	RepositoryStoragesWeighted                            map[string]int    `json:"repository_storages_weighted"`
   273  	RequireAdminApprovalAfterUserSignup                   bool              `json:"require_admin_approval_after_user_signup"`
   274  	RequireTwoFactorAuthentication                        bool              `json:"require_two_factor_authentication"`
   275  	RestrictedVisibilityLevels                            []VisibilityValue `json:"restricted_visibility_levels"`
   276  	RunnerTokenExpirationInterval                         int               `json:"runner_token_expiration_interval"`
   277  	SearchRateLimit                                       int               `json:"search_rate_limit"`
   278  	SearchRateLimitUnauthenticated                        int               `json:"search_rate_limit_unauthenticated"`
   279  	SecretDetectionRevocationTokenTypesURL                string            `json:"secret_detection_revocation_token_types_url"`
   280  	SecretDetectionTokenRevocationEnabled                 bool              `json:"secret_detection_token_revocation_enabled"`
   281  	SecretDetectionTokenRevocationToken                   string            `json:"secret_detection_token_revocation_token"`
   282  	SecretDetectionTokenRevocationURL                     string            `json:"secret_detection_token_revocation_url"`
   283  	SendUserConfirmationEmail                             bool              `json:"send_user_confirmation_email"`
   284  	SentryClientsideDSN                                   string            `json:"sentry_clientside_dsn"`
   285  	SentryDSN                                             string            `json:"sentry_dsn"`
   286  	SentryEnabled                                         bool              `json:"sentry_enabled"`
   287  	SentryEnvironment                                     string            `json:"sentry_environment"`
   288  	SessionExpireDelay                                    int               `json:"session_expire_delay"`
   289  	SharedRunnersEnabled                                  bool              `json:"shared_runners_enabled"`
   290  	SharedRunnersMinutes                                  int               `json:"shared_runners_minutes"`
   291  	SharedRunnersText                                     string            `json:"shared_runners_text"`
   292  	SidekiqJobLimiterCompressionThresholdBytes            int               `json:"sidekiq_job_limiter_compression_threshold_bytes"`
   293  	SidekiqJobLimiterLimitBytes                           int               `json:"sidekiq_job_limiter_limit_bytes"`
   294  	SidekiqJobLimiterMode                                 string            `json:"sidekiq_job_limiter_mode"`
   295  	SignInText                                            string            `json:"sign_in_text"`
   296  	SignupEnabled                                         bool              `json:"signup_enabled"`
   297  	SlackAppEnabled                                       bool              `json:"slack_app_enabled"`
   298  	SlackAppID                                            string            `json:"slack_app_id"`
   299  	SlackAppSecret                                        string            `json:"slack_app_secret"`
   300  	SlackAppSigningSecret                                 string            `json:"slack_app_signing_secret"`
   301  	SlackAppVerificationToken                             string            `json:"slack_app_verification_token"`
   302  	SnippetSizeLimit                                      int               `json:"snippet_size_limit"`
   303  	SnowplowAppID                                         string            `json:"snowplow_app_id"`
   304  	SnowplowCollectorHostname                             string            `json:"snowplow_collector_hostname"`
   305  	SnowplowCookieDomain                                  string            `json:"snowplow_cookie_domain"`
   306  	SnowplowEnabled                                       bool              `json:"snowplow_enabled"`
   307  	SourcegraphEnabled                                    bool              `json:"sourcegraph_enabled"`
   308  	SourcegraphPublicOnly                                 bool              `json:"sourcegraph_public_only"`
   309  	SourcegraphURL                                        string            `json:"sourcegraph_url"`
   310  	SpamCheckAPIKey                                       string            `json:"spam_check_api_key"`
   311  	SpamCheckEndpointEnabled                              bool              `json:"spam_check_endpoint_enabled"`
   312  	SpamCheckEndpointURL                                  string            `json:"spam_check_endpoint_url"`
   313  	SuggestPipelineEnabled                                bool              `json:"suggest_pipeline_enabled"`
   314  	TerminalMaxSessionTime                                int               `json:"terminal_max_session_time"`
   315  	Terms                                                 string            `json:"terms"`
   316  	ThrottleAuthenticatedAPIEnabled                       bool              `json:"throttle_authenticated_api_enabled"`
   317  	ThrottleAuthenticatedAPIPeriodInSeconds               int               `json:"throttle_authenticated_api_period_in_seconds"`
   318  	ThrottleAuthenticatedAPIRequestsPerPeriod             int               `json:"throttle_authenticated_api_requests_per_period"`
   319  	ThrottleAuthenticatedDeprecatedAPIEnabled             bool              `json:"throttle_authenticated_deprecated_api_enabled"`
   320  	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     int               `json:"throttle_authenticated_deprecated_api_period_in_seconds"`
   321  	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   int               `json:"throttle_authenticated_deprecated_api_requests_per_period"`
   322  	ThrottleAuthenticatedFilesAPIEnabled                  bool              `json:"throttle_authenticated_files_api_enabled"`
   323  	ThrottleAuthenticatedFilesAPIPeriodInSeconds          int               `json:"throttle_authenticated_files_api_period_in_seconds"`
   324  	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        int               `json:"throttle_authenticated_files_api_requests_per_period"`
   325  	ThrottleAuthenticatedGitLFSEnabled                    bool              `json:"throttle_authenticated_git_lfs_enabled"`
   326  	ThrottleAuthenticatedGitLFSPeriodInSeconds            int               `json:"throttle_authenticated_git_lfs_period_in_seconds"`
   327  	ThrottleAuthenticatedGitLFSRequestsPerPeriod          int               `json:"throttle_authenticated_git_lfs_requests_per_period"`
   328  	ThrottleAuthenticatedPackagesAPIEnabled               bool              `json:"throttle_authenticated_packages_api_enabled"`
   329  	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       int               `json:"throttle_authenticated_packages_api_period_in_seconds"`
   330  	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     int               `json:"throttle_authenticated_packages_api_requests_per_period"`
   331  	ThrottleAuthenticatedWebEnabled                       bool              `json:"throttle_authenticated_web_enabled"`
   332  	ThrottleAuthenticatedWebPeriodInSeconds               int               `json:"throttle_authenticated_web_period_in_seconds"`
   333  	ThrottleAuthenticatedWebRequestsPerPeriod             int               `json:"throttle_authenticated_web_requests_per_period"`
   334  	ThrottleIncidentManagementNotificationEnabled         bool              `json:"throttle_incident_management_notification_enabled"`
   335  	ThrottleIncidentManagementNotificationPerPeriod       int               `json:"throttle_incident_management_notification_per_period"`
   336  	ThrottleIncidentManagementNotificationPeriodInSeconds int               `json:"throttle_incident_management_notification_period_in_seconds"`
   337  	ThrottleProtectedPathsEnabled                         bool              `json:"throttle_protected_paths_enabled"`
   338  	ThrottleProtectedPathsPeriodInSeconds                 int               `json:"throttle_protected_paths_period_in_seconds"`
   339  	ThrottleProtectedPathsRequestsPerPeriod               int               `json:"throttle_protected_paths_requests_per_period"`
   340  	ThrottleUnauthenticatedAPIEnabled                     bool              `json:"throttle_unauthenticated_api_enabled"`
   341  	ThrottleUnauthenticatedAPIPeriodInSeconds             int               `json:"throttle_unauthenticated_api_period_in_seconds"`
   342  	ThrottleUnauthenticatedAPIRequestsPerPeriod           int               `json:"throttle_unauthenticated_api_requests_per_period"`
   343  	ThrottleUnauthenticatedDeprecatedAPIEnabled           bool              `json:"throttle_unauthenticated_deprecated_api_enabled"`
   344  	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   int               `json:"throttle_unauthenticated_deprecated_api_period_in_seconds"`
   345  	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod int               `json:"throttle_unauthenticated_deprecated_api_requests_per_period"`
   346  	ThrottleUnauthenticatedFilesAPIEnabled                bool              `json:"throttle_unauthenticated_files_api_enabled"`
   347  	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        int               `json:"throttle_unauthenticated_files_api_period_in_seconds"`
   348  	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      int               `json:"throttle_unauthenticated_files_api_requests_per_period"`
   349  	ThrottleUnauthenticatedGitLFSEnabled                  bool              `json:"throttle_unauthenticated_git_lfs_enabled"`
   350  	ThrottleUnauthenticatedGitLFSPeriodInSeconds          int               `json:"throttle_unauthenticated_git_lfs_period_in_seconds"`
   351  	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        int               `json:"throttle_unauthenticated_git_lfs_requests_per_period"`
   352  	ThrottleUnauthenticatedPackagesAPIEnabled             bool              `json:"throttle_unauthenticated_packages_api_enabled"`
   353  	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     int               `json:"throttle_unauthenticated_packages_api_period_in_seconds"`
   354  	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   int               `json:"throttle_unauthenticated_packages_api_requests_per_period"`
   355  	ThrottleUnauthenticatedWebEnabled                     bool              `json:"throttle_unauthenticated_web_enabled"`
   356  	ThrottleUnauthenticatedWebPeriodInSeconds             int               `json:"throttle_unauthenticated_web_period_in_seconds"`
   357  	ThrottleUnauthenticatedWebRequestsPerPeriod           int               `json:"throttle_unauthenticated_web_requests_per_period"`
   358  	TimeTrackingLimitToHours                              bool              `json:"time_tracking_limit_to_hours"`
   359  	TwoFactorGracePeriod                                  int               `json:"two_factor_grace_period"`
   360  	UniqueIPsLimitEnabled                                 bool              `json:"unique_ips_limit_enabled"`
   361  	UniqueIPsLimitPerUser                                 int               `json:"unique_ips_limit_per_user"`
   362  	UniqueIPsLimitTimeWindow                              int               `json:"unique_ips_limit_time_window"`
   363  	UpdatedAt                                             *time.Time        `json:"updated_at"`
   364  	UpdatingNameDisabledForUsers                          bool              `json:"updating_name_disabled_for_users"`
   365  	UsagePingEnabled                                      bool              `json:"usage_ping_enabled"`
   366  	UsagePingFeaturesEnabled                              bool              `json:"usage_ping_features_enabled"`
   367  	UserDeactivationEmailsEnabled                         bool              `json:"user_deactivation_emails_enabled"`
   368  	UserDefaultExternal                                   bool              `json:"user_default_external"`
   369  	UserDefaultInternalRegex                              string            `json:"user_default_internal_regex"`
   370  	UserOauthApplications                                 bool              `json:"user_oauth_applications"`
   371  	UserShowAddSSHKeyMessage                              bool              `json:"user_show_add_ssh_key_message"`
   372  	UsersGetByIDLimit                                     int               `json:"users_get_by_id_limit"`
   373  	UsersGetByIDLimitAllowlistRaw                         string            `json:"users_get_by_id_limit_allowlist_raw"`
   374  	VersionCheckEnabled                                   bool              `json:"version_check_enabled"`
   375  	WebIDEClientsidePreviewEnabled                        bool              `json:"web_ide_clientside_preview_enabled"`
   376  	WhatsNewVariant                                       string            `json:"whats_new_variant"`
   377  	WikiPageMaxContentBytes                               int               `json:"wiki_page_max_content_bytes"`
   378  
   379  	// Deprecated: Use AbuseNotificationEmail instead.
   380  	AdminNotificationEmail string `json:"admin_notification_email"`
   381  	// Deprecated: Use AllowLocalRequestsFromWebHooksAndServices instead.
   382  	AllowLocalRequestsFromHooksAndServices bool `json:"allow_local_requests_from_hooks_and_services"`
   383  	// Deprecated: Use AssetProxyAllowlist instead.
   384  	AssetProxyWhitelist []string `json:"asset_proxy_whitelist"`
   385  	// Deprecated: Use ThrottleUnauthenticatedWebEnabled or ThrottleUnauthenticatedAPIEnabled instead. (Deprecated in GitLab 14.3)
   386  	ThrottleUnauthenticatedEnabled bool `json:"throttle_unauthenticated_enabled"`
   387  	// Deprecated: Use ThrottleUnauthenticatedWebPeriodInSeconds or ThrottleUnauthenticatedAPIPeriodInSeconds instead. (Deprecated in GitLab 14.3)
   388  	ThrottleUnauthenticatedPeriodInSeconds int `json:"throttle_unauthenticated_period_in_seconds"`
   389  	// Deprecated: Use ThrottleUnauthenticatedWebRequestsPerPeriod or ThrottleUnauthenticatedAPIRequestsPerPeriod instead. (Deprecated in GitLab 14.3)
   390  	ThrottleUnauthenticatedRequestsPerPeriod int `json:"throttle_unauthenticated_requests_per_period"`
   391  	// Deprecated: Replaced by SearchRateLimit in GitLab 14.9 (removed in 15.0).
   392  	UserEmailLookupLimit int `json:"user_email_lookup_limit"`
   393  }
   394  
   395  func (s Settings) String() string {
   396  	return Stringify(s)
   397  }
   398  
   399  // GetSettings gets the current application settings.
   400  //
   401  // GitLab API docs:
   402  // https://docs.gitlab.com/ee/api/settings.html#get-current-application-settings
   403  func (s *SettingsService) GetSettings(options ...RequestOptionFunc) (*Settings, *Response, error) {
   404  	req, err := s.client.NewRequest(http.MethodGet, "application/settings", nil, options)
   405  	if err != nil {
   406  		return nil, nil, err
   407  	}
   408  
   409  	as := new(Settings)
   410  	resp, err := s.client.Do(req, as)
   411  	if err != nil {
   412  		return nil, resp, err
   413  	}
   414  
   415  	return as, resp, nil
   416  }
   417  
   418  // UpdateSettingsOptions represents the available UpdateSettings() options.
   419  //
   420  // GitLab API docs:
   421  // https://docs.gitlab.com/ee/api/settings.html#change-application-settings
   422  type UpdateSettingsOptions struct {
   423  	AbuseNotificationEmail                                *string            `url:"abuse_notification_email,omitempty" json:"abuse_notification_email,omitempty"`
   424  	AdminMode                                             *bool              `url:"admin_mode,omitempty" json:"admin_mode,omitempty"`
   425  	AdminNotificationEmail                                *string            `url:"admin_notification_email,omitempty" json:"admin_notification_email,omitempty"`
   426  	AfterSignOutPath                                      *string            `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"`
   427  	AfterSignUpText                                       *string            `url:"after_sign_up_text,omitempty" json:"after_sign_up_text,omitempty"`
   428  	AkismetAPIKey                                         *string            `url:"akismet_api_key,omitempty" json:"akismet_api_key,omitempty"`
   429  	AkismetEnabled                                        *bool              `url:"akismet_enabled,omitempty" json:"akismet_enabled,omitempty"`
   430  	AllowGroupOwnersToManageLDAP                          *bool              `url:"allow_group_owners_to_manage_ldap,omitempty" json:"allow_group_owners_to_manage_ldap,omitempty"`
   431  	AllowLocalRequestsFromHooksAndServices                *bool              `url:"allow_local_requests_from_hooks_and_services,omitempty" json:"allow_local_requests_from_hooks_and_services,omitempty"`
   432  	AllowLocalRequestsFromSystemHooks                     *bool              `url:"allow_local_requests_from_system_hooks,omitempty" json:"allow_local_requests_from_system_hooks,omitempty"`
   433  	AllowLocalRequestsFromWebHooksAndServices             *bool              `url:"allow_local_requests_from_web_hooks_and_services,omitempty" json:"allow_local_requests_from_web_hooks_and_services,omitempty"`
   434  	ArchiveBuildsInHumanReadable                          *string            `url:"archive_builds_in_human_readable,omitempty" json:"archive_builds_in_human_readable,omitempty"`
   435  	AssetProxyAllowlist                                   *[]string          `url:"asset_proxy_allowlist,omitempty" json:"asset_proxy_allowlist,omitempty"`
   436  	AssetProxyEnabled                                     *bool              `url:"asset_proxy_enabled,omitempty" json:"asset_proxy_enabled,omitempty"`
   437  	AssetProxySecretKey                                   *string            `url:"asset_proxy_secret_key,omitempty" json:"asset_proxy_secret_key,omitempty"`
   438  	AssetProxyURL                                         *string            `url:"asset_proxy_url,omitempty" json:"asset_proxy_url,omitempty"`
   439  	AssetProxyWhitelist                                   *[]string          `url:"asset_proxy_whitelist,omitempty" json:"asset_proxy_whitelist,omitempty"`
   440  	AuthorizedKeysEnabled                                 *bool              `url:"authorized_keys_enabled,omitempty" json:"authorized_keys_enabled,omitempty"`
   441  	AutoDevOpsDomain                                      *string            `url:"auto_devops_domain,omitempty" json:"auto_devops_domain,omitempty"`
   442  	AutoDevOpsEnabled                                     *bool              `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
   443  	AutomaticPurchasedStorageAllocation                   *bool              `url:"automatic_purchased_storage_allocation,omitempty" json:"automatic_purchased_storage_allocation,omitempty"`
   444  	CanCreateGroup                                        *bool              `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
   445  	CheckNamespacePlan                                    *bool              `url:"check_namespace_plan,omitempty" json:"check_namespace_plan,omitempty"`
   446  	CommitEmailHostname                                   *string            `url:"commit_email_hostname,omitempty" json:"commit_email_hostname,omitempty"`
   447  	ContainerExpirationPoliciesEnableHistoricEntries      *bool              `url:"container_expiration_policies_enable_historic_entries,omitempty" json:"container_expiration_policies_enable_historic_entries,omitempty"`
   448  	ContainerRegistryCleanupTagsServiceMaxListSize        *int               `url:"container_registry_cleanup_tags_service_max_list_size,omitempty" json:"container_registry_cleanup_tags_service_max_list_size,omitempty"`
   449  	ContainerRegistryDeleteTagsServiceTimeout             *int               `url:"container_registry_delete_tags_service_timeout,omitempty" json:"container_registry_delete_tags_service_timeout,omitempty"`
   450  	ContainerRegistryExpirationPoliciesCaching            *bool              `url:"container_registry_expiration_policies_caching,omitempty" json:"container_registry_expiration_policies_caching,omitempty"`
   451  	ContainerRegistryExpirationPoliciesWorkerCapacity     *int               `url:"container_registry_expiration_policies_worker_capacity,omitempty" json:"container_registry_expiration_policies_worker_capacity,omitempty"`
   452  	ContainerRegistryImportCreatedBefore                  *time.Time         `url:"container_registry_import_created_before,omitempty" json:"container_registry_import_created_before,omitempty"`
   453  	ContainerRegistryImportMaxRetries                     *int               `url:"container_registry_import_max_retries,omitempty" json:"container_registry_import_max_retries,omitempty"`
   454  	ContainerRegistryImportMaxStepDuration                *int               `url:"container_registry_import_max_step_duration,omitempty" json:"container_registry_import_max_step_duration,omitempty"`
   455  	ContainerRegistryImportMaxTagsCount                   *int               `url:"container_registry_import_max_tags_count,omitempty" json:"container_registry_import_max_tags_count,omitempty"`
   456  	ContainerRegistryImportStartMaxRetries                *int               `url:"container_registry_import_start_max_retries,omitempty" json:"container_registry_import_start_max_retries,omitempty"`
   457  	ContainerRegistryImportTargetPlan                     *string            `url:"container_registry_import_target_plan,omitempty" json:"container_registry_import_target_plan,omitempty"`
   458  	ContainerRegistryTokenExpireDelay                     *int               `url:"container_registry_token_expire_delay,omitempty" json:"container_registry_token_expire_delay,omitempty"`
   459  	CustomHTTPCloneURLRoot                                *string            `url:"custom_http_clone_url_root,omitempty" json:"custom_http_clone_url_root,omitempty"`
   460  	DNSRebindingProtectionEnabled                         *bool              `url:"dns_rebinding_protection_enabled,omitempty" json:"dns_rebinding_protection_enabled,omitempty"`
   461  	DSAKeyRestriction                                     *int               `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
   462  	DeactivateDormantUsers                                *bool              `url:"deactivate_dormant_users,omitempty" json:"deactivate_dormant_users,omitempty"`
   463  	DefaultArtifactsExpireIn                              *string            `url:"default_artifacts_expire_in,omitempty" json:"default_artifacts_expire_in,omitempty"`
   464  	DefaultBranchName                                     *string            `url:"default_branch_name,omitempty" json:"default_branch_name,omitempty"`
   465  	DefaultBranchProtection                               *int               `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
   466  	DefaultCiConfigPath                                   *string            `url:"default_ci_config_path,omitempty" json:"default_ci_config_path,omitempty"`
   467  	DefaultGroupVisibility                                *VisibilityValue   `url:"default_group_visibility,omitempty" json:"default_group_visibility,omitempty"`
   468  	DefaultProjectCreation                                *int               `url:"default_project_creation,omitempty" json:"default_project_creation,omitempty"`
   469  	DefaultProjectDeletionProtection                      *bool              `url:"default_project_deletion_protection,omitempty" json:"default_project_deletion_protection,omitempty"`
   470  	DefaultProjectVisibility                              *VisibilityValue   `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
   471  	DefaultProjectsLimit                                  *int               `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
   472  	DefaultSnippetVisibility                              *VisibilityValue   `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
   473  	DelayedGroupDeletion                                  *bool              `url:"delayed_group_deletion,omitempty" json:"delayed_group_deletion,omitempty"`
   474  	DelayedProjectDeletion                                *bool              `url:"delayed_project_deletion,omitempty" json:"delayed_project_deletion,omitempty"`
   475  	DeleteInactiveProjects                                *bool              `url:"delete_inactive_projects,omitempty" json:"delete_inactive_projects,omitempty"`
   476  	DeletionAdjournedPeriod                               *int               `url:"deletion_adjourned_period,omitempty" json:"deletion_adjourned_period,omitempty"`
   477  	DiffMaxFiles                                          *int               `url:"diff_max_files,omitempty" json:"diff_max_files,omitempty"`
   478  	DiffMaxLines                                          *int               `url:"diff_max_lines,omitempty" json:"diff_max_lines,omitempty"`
   479  	DiffMaxPatchBytes                                     *int               `url:"diff_max_patch_bytes,omitempty" json:"diff_max_patch_bytes,omitempty"`
   480  	DisableFeedToken                                      *bool              `url:"disable_feed_token,omitempty" json:"disable_feed_token,omitempty"`
   481  	DisableOverridingApproversPerMergeRequest             *bool              `url:"disable_overriding_approvers_per_merge_request,omitempty" json:"disable_overriding_approvers_per_merge_request,omitempty"`
   482  	DisabledOauthSignInSources                            *[]string          `url:"disabled_oauth_sign_in_sources,omitempty" json:"disabled_oauth_sign_in_sources,omitempty"`
   483  	DomainAllowlist                                       *[]string          `url:"domain_allowlist,omitempty" json:"domain_allowlist,omitempty"`
   484  	DomainDenylist                                        *[]string          `url:"domain_denylist,omitempty" json:"domain_denylist,omitempty"`
   485  	DomainDenylistEnabled                                 *bool              `url:"domain_denylist_enabled,omitempty" json:"domain_denylist_enabled,omitempty"`
   486  	ECDSAKeyRestriction                                   *int               `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
   487  	ECDSASKKeyRestriction                                 *int               `url:"ecdsa_sk_key_restriction,omitempty" json:"ecdsa_sk_key_restriction,omitempty"`
   488  	EKSAccessKeyID                                        *string            `url:"eks_access_key_id,omitempty" json:"eks_access_key_id,omitempty"`
   489  	EKSAccountID                                          *string            `url:"eks_account_id,omitempty" json:"eks_account_id,omitempty"`
   490  	EKSIntegrationEnabled                                 *bool              `url:"eks_integration_enabled,omitempty" json:"eks_integration_enabled,omitempty"`
   491  	EKSSecretAccessKey                                    *string            `url:"eks_secret_access_key,omitempty" json:"eks_secret_access_key,omitempty"`
   492  	Ed25519KeyRestriction                                 *int               `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
   493  	Ed25519SKKeyRestriction                               *int               `url:"ed25519_sk_key_restriction,omitempty" json:"ed25519_sk_key_restriction,omitempty"`
   494  	ElasticsearchAWS                                      *bool              `url:"elasticsearch_aws,omitempty" json:"elasticsearch_aws,omitempty"`
   495  	ElasticsearchAWSAccessKey                             *string            `url:"elasticsearch_aws_access_key,omitempty" json:"elasticsearch_aws_access_key,omitempty"`
   496  	ElasticsearchAWSRegion                                *string            `url:"elasticsearch_aws_region,omitempty" json:"elasticsearch_aws_region,omitempty"`
   497  	ElasticsearchAWSSecretAccessKey                       *string            `url:"elasticsearch_aws_secret_access_key,omitempty" json:"elasticsearch_aws_secret_access_key,omitempty"`
   498  	ElasticsearchAnalyzersKuromojiEnabled                 *bool              `url:"elasticsearch_analyzers_kuromoji_enabled,omitempty" json:"elasticsearch_analyzers_kuromoji_enabled,omitempty"`
   499  	ElasticsearchAnalyzersKuromojiSearch                  *int               `url:"elasticsearch_analyzers_kuromoji_search,omitempty" json:"elasticsearch_analyzers_kuromoji_search,omitempty"`
   500  	ElasticsearchAnalyzersSmartCNEnabled                  *bool              `url:"elasticsearch_analyzers_smartcn_enabled,omitempty" json:"elasticsearch_analyzers_smartcn_enabled,omitempty"`
   501  	ElasticsearchAnalyzersSmartCNSearch                   *int               `url:"elasticsearch_analyzers_smartcn_search,omitempty" json:"elasticsearch_analyzers_smartcn_search,omitempty"`
   502  	ElasticsearchClientRequestTimeout                     *int               `url:"elasticsearch_client_request_timeout,omitempty" json:"elasticsearch_client_request_timeout,omitempty"`
   503  	ElasticsearchIndexedFieldLengthLimit                  *int               `url:"elasticsearch_indexed_field_length_limit,omitempty" json:"elasticsearch_indexed_field_length_limit,omitempty"`
   504  	ElasticsearchIndexedFileSizeLimitKB                   *int               `url:"elasticsearch_indexed_file_size_limit_kb,omitempty" json:"elasticsearch_indexed_file_size_limit_kb,omitempty"`
   505  	ElasticsearchIndexing                                 *bool              `url:"elasticsearch_indexing,omitempty" json:"elasticsearch_indexing,omitempty"`
   506  	ElasticsearchLimitIndexing                            *bool              `url:"elasticsearch_limit_indexing,omitempty" json:"elasticsearch_limit_indexing,omitempty"`
   507  	ElasticsearchMaxBulkConcurrency                       *int               `url:"elasticsearch_max_bulk_concurrency,omitempty" json:"elasticsearch_max_bulk_concurrency,omitempty"`
   508  	ElasticsearchMaxBulkSizeMB                            *int               `url:"elasticsearch_max_bulk_size_mb,omitempty" json:"elasticsearch_max_bulk_size_mb,omitempty"`
   509  	ElasticsearchNamespaceIDs                             *[]int             `url:"elasticsearch_namespace_ids,omitempty" json:"elasticsearch_namespace_ids,omitempty"`
   510  	ElasticsearchPassword                                 *string            `url:"elasticsearch_password,omitempty" json:"elasticsearch_password,omitempty"`
   511  	ElasticsearchPauseIndexing                            *bool              `url:"elasticsearch_pause_indexing,omitempty" json:"elasticsearch_pause_indexing,omitempty"`
   512  	ElasticsearchProjectIDs                               *[]int             `url:"elasticsearch_project_ids,omitempty" json:"elasticsearch_project_ids,omitempty"`
   513  	ElasticsearchReplicas                                 *int               `url:"elasticsearch_replicas,omitempty" json:"elasticsearch_replicas,omitempty"`
   514  	ElasticsearchSearch                                   *bool              `url:"elasticsearch_search,omitempty" json:"elasticsearch_search,omitempty"`
   515  	ElasticsearchShards                                   *int               `url:"elasticsearch_shards,omitempty" json:"elasticsearch_shards,omitempty"`
   516  	ElasticsearchURL                                      *string            `url:"elasticsearch_url,omitempty" json:"elasticsearch_url,omitempty"`
   517  	ElasticsearchUsername                                 *string            `url:"elasticsearch_username,omitempty" json:"elasticsearch_username,omitempty"`
   518  	EmailAdditionalText                                   *string            `url:"email_additional_text,omitempty" json:"email_additional_text,omitempty"`
   519  	EmailAuthorInBody                                     *bool              `url:"email_author_in_body,omitempty" json:"email_author_in_body,omitempty"`
   520  	EmailRestrictions                                     *string            `url:"email_restrictions,omitempty" json:"email_restrictions,omitempty"`
   521  	EmailRestrictionsEnabled                              *bool              `url:"email_restrictions_enabled,omitempty" json:"email_restrictions_enabled,omitempty"`
   522  	EnabledGitAccessProtocol                              *string            `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
   523  	EnforceNamespaceStorageLimit                          *bool              `url:"enforce_namespace_storage_limit,omitempty" json:"enforce_namespace_storage_limit,omitempty"`
   524  	EnforcePATExpiration                                  *bool              `url:"enforce_pat_expiration,omitempty" json:"enforce_pat_expiration,omitempty"`
   525  	EnforceSSHKeyExpiration                               *bool              `url:"enforce_ssh_key_expiration,omitempty" json:"enforce_ssh_key_expiration,omitempty"`
   526  	EnforceTerms                                          *bool              `url:"enforce_terms,omitempty" json:"enforce_terms,omitempty"`
   527  	ExternalAuthClientCert                                *string            `url:"external_auth_client_cert,omitempty" json:"external_auth_client_cert,omitempty"`
   528  	ExternalAuthClientKey                                 *string            `url:"external_auth_client_key,omitempty" json:"external_auth_client_key,omitempty"`
   529  	ExternalAuthClientKeyPass                             *string            `url:"external_auth_client_key_pass,omitempty" json:"external_auth_client_key_pass,omitempty"`
   530  	ExternalAuthorizationServiceDefaultLabel              *string            `url:"external_authorization_service_default_label,omitempty" json:"external_authorization_service_default_label,omitempty"`
   531  	ExternalAuthorizationServiceEnabled                   *bool              `url:"external_authorization_service_enabled,omitempty" json:"external_authorization_service_enabled,omitempty"`
   532  	ExternalAuthorizationServiceTimeout                   *float64           `url:"external_authorization_service_timeout,omitempty" json:"external_authorization_service_timeout,omitempty"`
   533  	ExternalAuthorizationServiceURL                       *string            `url:"external_authorization_service_url,omitempty" json:"external_authorization_service_url,omitempty"`
   534  	ExternalPipelineValidationServiceTimeout              *int               `url:"external_pipeline_validation_service_timeout,omitempty" json:"external_pipeline_validation_service_timeout,omitempty"`
   535  	ExternalPipelineValidationServiceToken                *string            `url:"external_pipeline_validation_service_token,omitempty" json:"external_pipeline_validation_service_token,omitempty"`
   536  	ExternalPipelineValidationServiceURL                  *string            `url:"external_pipeline_validation_service_url,omitempty" json:"external_pipeline_validation_service_url,omitempty"`
   537  	FileTemplateProjectID                                 *int               `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
   538  	FirstDayOfWeek                                        *int               `url:"first_day_of_week,omitempty" json:"first_day_of_week,omitempty"`
   539  	FlocEnabled                                           *bool              `url:"floc_enabled,omitempty" json:"floc_enabled,omitempty"`
   540  	GeoNodeAllowedIPs                                     *string            `url:"geo_node_allowed_ips,omitempty" json:"geo_node_allowed_ips,omitempty"`
   541  	GeoStatusTimeout                                      *int               `url:"geo_status_timeout,omitempty" json:"geo_status_timeout,omitempty"`
   542  	GitTwoFactorSessionExpiry                             *int               `url:"git_two_factor_session_expiry,omitempty" json:"git_two_factor_session_expiry,omitempty"`
   543  	GitalyTimeoutDefault                                  *int               `url:"gitaly_timeout_default,omitempty" json:"gitaly_timeout_default,omitempty"`
   544  	GitalyTimeoutFast                                     *int               `url:"gitaly_timeout_fast,omitempty" json:"gitaly_timeout_fast,omitempty"`
   545  	GitalyTimeoutMedium                                   *int               `url:"gitaly_timeout_medium,omitempty" json:"gitaly_timeout_medium,omitempty"`
   546  	GitpodEnabled                                         *bool              `url:"gitpod_enabled,omitempty" json:"gitpod_enabled,omitempty"`
   547  	GitpodURL                                             *string            `url:"gitpod_url,omitempty" json:"gitpod_url,omitempty"`
   548  	GitRateLimitUsersAllowlist                            *[]string          `url:"git_rate_limit_users_allowlist,omitempty" json:"git_rate_limit_users_allowlist,omitempty"`
   549  	GrafanaEnabled                                        *bool              `url:"grafana_enabled,omitempty" json:"grafana_enabled,omitempty"`
   550  	GrafanaURL                                            *string            `url:"grafana_url,omitempty" json:"grafana_url,omitempty"`
   551  	GravatarEnabled                                       *bool              `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"`
   552  	GroupDownloadExportLimit                              *int               `url:"group_download_export_limit,omitempty" json:"group_download_export_limit,omitempty"`
   553  	GroupExportLimit                                      *int               `url:"group_export_limit,omitempty" json:"group_export_limit,omitempty"`
   554  	GroupImportLimit                                      *int               `url:"group_import_limit,omitempty" json:"group_import_limit,omitempty"`
   555  	GroupOwnersCanManageDefaultBranchProtection           *bool              `url:"group_owners_can_manage_default_branch_protection,omitempty" json:"group_owners_can_manage_default_branch_protection,omitempty"`
   556  	GroupRunnerTokenExpirationInterval                    *int               `url:"group_runner_token_expiration_interval,omitempty" json:"group_runner_token_expiration_interval,omitempty"`
   557  	HTMLEmailsEnabled                                     *bool              `url:"html_emails_enabled,omitempty" json:"html_emails_enabled,omitempty"`
   558  	HashedStorageEnabled                                  *bool              `url:"hashed_storage_enabled,omitempty" json:"hashed_storage_enabled,omitempty"`
   559  	HelpPageDocumentationBaseURL                          *string            `url:"help_page_documentation_base_url,omitempty" json:"help_page_documentation_base_url,omitempty"`
   560  	HelpPageHideCommercialContent                         *bool              `url:"help_page_hide_commercial_content,omitempty" json:"help_page_hide_commercial_content,omitempty"`
   561  	HelpPageSupportURL                                    *string            `url:"help_page_support_url,omitempty" json:"help_page_support_url,omitempty"`
   562  	HelpPageText                                          *string            `url:"help_page_text,omitempty" json:"help_page_text,omitempty"`
   563  	HelpText                                              *string            `url:"help_text,omitempty" json:"help_text,omitempty"`
   564  	HideThirdPartyOffers                                  *bool              `url:"hide_third_party_offers,omitempty" json:"hide_third_party_offers,omitempty"`
   565  	HomePageURL                                           *string            `url:"home_page_url,omitempty" json:"home_page_url,omitempty"`
   566  	HousekeepingBitmapsEnabled                            *bool              `url:"housekeeping_bitmaps_enabled,omitempty" json:"housekeeping_bitmaps_enabled,omitempty"`
   567  	HousekeepingEnabled                                   *bool              `url:"housekeeping_enabled,omitempty" json:"housekeeping_enabled,omitempty"`
   568  	HousekeepingFullRepackPeriod                          *int               `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
   569  	HousekeepingGcPeriod                                  *int               `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
   570  	HousekeepingIncrementalRepackPeriod                   *int               `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
   571  	HousekeepingOptimizeRepositoryPeriod                  *int               `url:"housekeeping_optimize_repository_period,omitempty" json:"housekeeping_optimize_repository_period,omitempty"`
   572  	ImportSources                                         *[]string          `url:"import_sources,omitempty" json:"import_sources,omitempty"`
   573  	InactiveProjectsDeleteAfterMonths                     *int               `url:"inactive_projects_delete_after_months,omitempty" json:"inactive_projects_delete_after_months,omitempty"`
   574  	InactiveProjectsMinSizeMB                             *int               `url:"inactive_projects_min_size_mb,omitempty" json:"inactive_projects_min_size_mb,omitempty"`
   575  	InactiveProjectsSendWarningEmailAfterMonths           *int               `url:"inactive_projects_send_warning_email_after_months,omitempty" json:"inactive_projects_send_warning_email_after_months,omitempty"`
   576  	InProductMarketingEmailsEnabled                       *bool              `url:"in_product_marketing_emails_enabled,omitempty" json:"in_product_marketing_emails_enabled,omitempty"`
   577  	InvisibleCaptchaEnabled                               *bool              `url:"invisible_captcha_enabled,omitempty" json:"invisible_captcha_enabled,omitempty"`
   578  	IssuesCreateLimit                                     *int               `url:"issues_create_limit,omitempty" json:"issues_create_limit,omitempty"`
   579  	KeepLatestArtifact                                    *bool              `url:"keep_latest_artifact,omitempty" json:"keep_latest_artifact,omitempty"`
   580  	KrokiEnabled                                          *bool              `url:"kroki_enabled,omitempty" json:"kroki_enabled,omitempty"`
   581  	KrokiFormats                                          *map[string]bool   `url:"kroki_formats,omitempty" json:"kroki_formats,omitempty"`
   582  	KrokiURL                                              *string            `url:"kroki_url,omitempty" json:"kroki_url,omitempty"`
   583  	LocalMarkdownVersion                                  *int               `url:"local_markdown_version,omitempty" json:"local_markdown_version,omitempty"`
   584  	LockMembershipsToLDAP                                 *bool              `url:"lock_memberships_to_ldap,omitempty" json:"lock_memberships_to_ldap,omitempty"`
   585  	LoginRecaptchaProtectionEnabled                       *bool              `url:"login_recaptcha_protection_enabled,omitempty" json:"login_recaptcha_protection_enabled,omitempty"`
   586  	MailgunEventsEnabled                                  *bool              `url:"mailgun_events_enabled,omitempty" json:"mailgun_events_enabled,omitempty"`
   587  	MailgunSigningKey                                     *string            `url:"mailgun_signing_key,omitempty" json:"mailgun_signing_key,omitempty"`
   588  	MaintenanceMode                                       *bool              `url:"maintenance_mode,omitempty" json:"maintenance_mode,omitempty"`
   589  	MaintenanceModeMessage                                *string            `url:"maintenance_mode_message,omitempty" json:"maintenance_mode_message,omitempty"`
   590  	MaxArtifactsSize                                      *int               `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
   591  	MaxAttachmentSize                                     *int               `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
   592  	MaxExportSize                                         *int               `url:"max_export_size,omitempty" json:"max_export_size,omitempty"`
   593  	MaxImportSize                                         *int               `url:"max_import_size,omitempty" json:"max_import_size,omitempty"`
   594  	MaxNumberOfRepositoryDownloads                        *int               `url:"max_number_of_repository_downloads,omitempty" json:"max_number_of_repository_downloads,omitempty"`
   595  	MaxNumberOfRepositoryDownloadsWithinTimePeriod        *int               `url:"max_number_of_repository_downloads_within_time_period,omitempty" json:"max_number_of_repository_downloads_within_time_period,omitempty"`
   596  	MaxPagesSize                                          *int               `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
   597  	MaxPersonalAccessTokenLifetime                        *int               `url:"max_personal_access_token_lifetime,omitempty" json:"max_personal_access_token_lifetime,omitempty"`
   598  	MaxSSHKeyLifetime                                     *int               `url:"max_ssh_key_lifetime,omitempty" json:"max_ssh_key_lifetime,omitempty"`
   599  	MaxYAMLDepth                                          *int               `url:"max_yaml_depth,omitempty" json:"max_yaml_depth,omitempty"`
   600  	MaxYAMLSizeBytes                                      *int               `url:"max_yaml_size_bytes,omitempty" json:"max_yaml_size_bytes,omitempty"`
   601  	MetricsMethodCallThreshold                            *int               `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
   602  	MinimumPasswordLength                                 *int               `url:"minimum_password_length,omitempty" json:"minimum_password_length,omitempty"`
   603  	MirrorAvailable                                       *bool              `url:"mirror_available,omitempty" json:"mirror_available,omitempty"`
   604  	MirrorCapacityThreshold                               *int               `url:"mirror_capacity_threshold,omitempty" json:"mirror_capacity_threshold,omitempty"`
   605  	MirrorMaxCapacity                                     *int               `url:"mirror_max_capacity,omitempty" json:"mirror_max_capacity,omitempty"`
   606  	MirrorMaxDelay                                        *int               `url:"mirror_max_delay,omitempty" json:"mirror_max_delay,omitempty"`
   607  	NPMPackageRequestsForwarding                          *bool              `url:"npm_package_requests_forwarding,omitempty" json:"npm_package_requests_forwarding,omitempty"`
   608  	NotesCreateLimit                                      *int               `url:"notes_create_limit,omitempty" json:"notes_create_limit,omitempty"`
   609  	NotifyOnUnknownSignIn                                 *bool              `url:"notify_on_unknown_sign_in,omitempty" json:"notify_on_unknown_sign_in,omitempty"`
   610  	OutboundLocalRequestsAllowlistRaw                     *string            `url:"outbound_local_requests_allowlist_raw,omitempty" json:"outbound_local_requests_allowlist_raw,omitempty"`
   611  	OutboundLocalRequestsWhitelist                        *[]string          `url:"outbound_local_requests_whitelist,omitempty" json:"outbound_local_requests_whitelist,omitempty"`
   612  	PackageRegistryCleanupPoliciesWorkerCapacity          *int               `url:"package_registry_cleanup_policies_worker_capacity,omitempty" json:"package_registry_cleanup_policies_worker_capacity,omitempty"`
   613  	PagesDomainVerificationEnabled                        *bool              `url:"pages_domain_verification_enabled,omitempty" json:"pages_domain_verification_enabled,omitempty"`
   614  	PasswordAuthenticationEnabledForGit                   *bool              `url:"password_authentication_enabled_for_git,omitempty" json:"password_authentication_enabled_for_git,omitempty"`
   615  	PasswordAuthenticationEnabledForWeb                   *bool              `url:"password_authentication_enabled_for_web,omitempty" json:"password_authentication_enabled_for_web,omitempty"`
   616  	PasswordNumberRequired                                *bool              `url:"password_number_required,omitempty" json:"password_number_required,omitempty"`
   617  	PasswordSymbolRequired                                *bool              `url:"password_symbol_required,omitempty" json:"password_symbol_required,omitempty"`
   618  	PasswordUppercaseRequired                             *bool              `url:"password_uppercase_required,omitempty" json:"password_uppercase_required,omitempty"`
   619  	PasswordLowercaseRequired                             *bool              `url:"password_lowercase_required,omitempty" json:"password_lowercase_required,omitempty"`
   620  	PerformanceBarAllowedGroupID                          *int               `url:"performance_bar_allowed_group_id,omitempty" json:"performance_bar_allowed_group_id,omitempty"`
   621  	PerformanceBarAllowedGroupPath                        *string            `url:"performance_bar_allowed_group_path,omitempty" json:"performance_bar_allowed_group_path,omitempty"`
   622  	PerformanceBarEnabled                                 *bool              `url:"performance_bar_enabled,omitempty" json:"performance_bar_enabled,omitempty"`
   623  	PersonalAccessTokenPrefix                             *string            `url:"personal_access_token_prefix,omitempty" json:"personal_access_token_prefix,omitempty"`
   624  	PlantumlEnabled                                       *bool              `url:"plantuml_enabled,omitempty" json:"plantuml_enabled,omitempty"`
   625  	PlantumlURL                                           *string            `url:"plantuml_url,omitempty" json:"plantuml_url,omitempty"`
   626  	PipelineLimitPerProjectUserSha                        *int               `url:"pipeline_limit_per_project_user_sha,omitempty" json:"pipeline_limit_per_project_user_sha,omitempty"`
   627  	PollingIntervalMultiplier                             *float64           `url:"polling_interval_multiplier,omitempty" json:"polling_interval_multiplier,omitempty"`
   628  	PreventMergeRequestsAuthorApproval                    *bool              `url:"prevent_merge_requests_author_approval,omitempty" json:"prevent_merge_requests_author_approval,omitempty"`
   629  	PreventMergeRequestsCommittersApproval                *bool              `url:"prevent_merge_requests_committers_approval,omitempty" json:"prevent_merge_requests_committers_approval,omitempty"`
   630  	ProjectDownloadExportLimit                            *int               `url:"project_download_export_limit,omitempty" json:"project_download_export_limit,omitempty"`
   631  	ProjectExportEnabled                                  *bool              `url:"project_export_enabled,omitempty" json:"project_export_enabled,omitempty"`
   632  	ProjectExportLimit                                    *int               `url:"project_export_limit,omitempty" json:"project_export_limit,omitempty"`
   633  	ProjectImportLimit                                    *int               `url:"project_import_limit,omitempty" json:"project_import_limit,omitempty"`
   634  	ProjectRunnerTokenExpirationInterval                  *int               `url:"project_runner_token_expiration_interval,omitempty" json:"project_runner_token_expiration_interval,omitempty"`
   635  	PrometheusMetricsEnabled                              *bool              `url:"prometheus_metrics_enabled,omitempty" json:"prometheus_metrics_enabled,omitempty"`
   636  	ProtectedCIVariables                                  *bool              `url:"protected_ci_variables,omitempty" json:"protected_ci_variables,omitempty"`
   637  	PseudonymizerEnabled                                  *bool              `url:"pseudonymizer_enabled,omitempty" json:"pseudonymizer_enabled,omitempty"`
   638  	PushEventActivitiesLimit                              *int               `url:"push_event_activities_limit,omitempty" json:"push_event_activities_limit,omitempty"`
   639  	PushEventHooksLimit                                   *int               `url:"push_event_hooks_limit,omitempty" json:"push_event_hooks_limit,omitempty"`
   640  	PyPIPackageRequestsForwarding                         *bool              `url:"pypi_package_requests_forwarding,omitempty" json:"pypi_package_requests_forwarding,omitempty"`
   641  	RSAKeyRestriction                                     *int               `url:"rsa_key_restriction,omitempty" json:"rsa_key_restriction,omitempty"`
   642  	RateLimitingResponseText                              *string            `url:"rate_limiting_response_text,omitempty" json:"rate_limiting_response_text,omitempty"`
   643  	RawBlobRequestLimit                                   *int               `url:"raw_blob_request_limit,omitempty" json:"raw_blob_request_limit,omitempty"`
   644  	RecaptchaEnabled                                      *bool              `url:"recaptcha_enabled,omitempty" json:"recaptcha_enabled,omitempty"`
   645  	RecaptchaPrivateKey                                   *string            `url:"recaptcha_private_key,omitempty" json:"recaptcha_private_key,omitempty"`
   646  	RecaptchaSiteKey                                      *string            `url:"recaptcha_site_key,omitempty" json:"recaptcha_site_key,omitempty"`
   647  	ReceiveMaxInputSize                                   *int               `url:"receive_max_input_size,omitempty" json:"receive_max_input_size,omitempty"`
   648  	RepositoryChecksEnabled                               *bool              `url:"repository_checks_enabled,omitempty" json:"repository_checks_enabled,omitempty"`
   649  	RepositorySizeLimit                                   *int               `url:"repository_size_limit,omitempty" json:"repository_size_limit,omitempty"`
   650  	RepositoryStorages                                    *[]string          `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
   651  	RepositoryStoragesWeighted                            *map[string]int    `url:"repository_storages_weighted,omitempty" json:"repository_storages_weighted,omitempty"`
   652  	RequireAdminApprovalAfterUserSignup                   *bool              `url:"require_admin_approval_after_user_signup,omitempty" json:"require_admin_approval_after_user_signup,omitempty"`
   653  	RequireTwoFactorAuthentication                        *bool              `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
   654  	RestrictedVisibilityLevels                            *[]VisibilityValue `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"`
   655  	RunnerTokenExpirationInterval                         *int               `url:"runner_token_expiration_interval,omitempty" json:"runner_token_expiration_interval,omitempty"`
   656  	SearchRateLimit                                       *int               `url:"search_rate_limit,omitempty" json:"search_rate_limit,omitempty"`
   657  	SearchRateLimitUnauthenticated                        *int               `url:"search_rate_limit_unauthenticated,omitempty" json:"search_rate_limit_unauthenticated,omitempty"`
   658  	SecretDetectionRevocationTokenTypesURL                *string            `url:"secret_detection_revocation_token_types_url,omitempty" json:"secret_detection_revocation_token_types_url,omitempty"`
   659  	SecretDetectionTokenRevocationEnabled                 *bool              `url:"secret_detection_token_revocation_enabled,omitempty" json:"secret_detection_token_revocation_enabled,omitempty"`
   660  	SecretDetectionTokenRevocationToken                   *string            `url:"secret_detection_token_revocation_token,omitempty" json:"secret_detection_token_revocation_token,omitempty"`
   661  	SecretDetectionTokenRevocationURL                     *string            `url:"secret_detection_token_revocation_url,omitempty" json:"secret_detection_token_revocation_url,omitempty"`
   662  	SendUserConfirmationEmail                             *bool              `url:"send_user_confirmation_email,omitempty" json:"send_user_confirmation_email,omitempty"`
   663  	SentryClientsideDSN                                   *string            `url:"sentry_clientside_dsn,omitempty" json:"sentry_clientside_dsn,omitempty"`
   664  	SentryDSN                                             *string            `url:"sentry_dsn,omitempty" json:"sentry_dsn,omitempty"`
   665  	SentryEnabled                                         *string            `url:"sentry_enabled,omitempty" json:"sentry_enabled,omitempty"`
   666  	SentryEnvironment                                     *string            `url:"sentry_environment,omitempty" json:"sentry_environment,omitempty"`
   667  	SessionExpireDelay                                    *int               `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
   668  	SharedRunnersEnabled                                  *bool              `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
   669  	SharedRunnersMinutes                                  *int               `url:"shared_runners_minutes,omitempty" json:"shared_runners_minutes,omitempty"`
   670  	SharedRunnersText                                     *string            `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
   671  	SidekiqJobLimiterCompressionThresholdBytes            *int               `url:"sidekiq_job_limiter_compression_threshold_bytes,omitempty" json:"sidekiq_job_limiter_compression_threshold_bytes,omitempty"`
   672  	SidekiqJobLimiterLimitBytes                           *int               `url:"sidekiq_job_limiter_limit_bytes,omitempty" json:"sidekiq_job_limiter_limit_bytes,omitempty"`
   673  	SidekiqJobLimiterMode                                 *string            `url:"sidekiq_job_limiter_mode,omitempty" json:"sidekiq_job_limiter_mode,omitempty"`
   674  	SignInText                                            *string            `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
   675  	SignupEnabled                                         *bool              `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"`
   676  	SlackAppEnabled                                       *bool              `url:"slack_app_enabled,omitempty" json:"slack_app_enabled,omitempty"`
   677  	SlackAppID                                            *string            `url:"slack_app_id,omitempty" json:"slack_app_id,omitempty"`
   678  	SlackAppSecret                                        *string            `url:"slack_app_secret,omitempty" json:"slack_app_secret,omitempty"`
   679  	SlackAppSigningSecret                                 *string            `url:"slack_app_signing_secret,omitempty" json:"slack_app_signing_secret,omitempty"`
   680  	SlackAppVerificationToken                             *string            `url:"slack_app_verification_token,omitempty" json:"slack_app_verification_token,omitempty"`
   681  	SnippetSizeLimit                                      *int               `url:"snippet_size_limit,omitempty" json:"snippet_size_limit,omitempty"`
   682  	SnowplowAppID                                         *string            `url:"snowplow_app_id,omitempty" json:"snowplow_app_id,omitempty"`
   683  	SnowplowCollectorHostname                             *string            `url:"snowplow_collector_hostname,omitempty" json:"snowplow_collector_hostname,omitempty"`
   684  	SnowplowCookieDomain                                  *string            `url:"snowplow_cookie_domain,omitempty" json:"snowplow_cookie_domain,omitempty"`
   685  	SnowplowEnabled                                       *bool              `url:"snowplow_enabled,omitempty" json:"snowplow_enabled,omitempty"`
   686  	SourcegraphEnabled                                    *bool              `url:"sourcegraph_enabled,omitempty" json:"sourcegraph_enabled,omitempty"`
   687  	SourcegraphPublicOnly                                 *bool              `url:"sourcegraph_public_only,omitempty" json:"sourcegraph_public_only,omitempty"`
   688  	SourcegraphURL                                        *string            `url:"sourcegraph_url,omitempty" json:"sourcegraph_url,omitempty"`
   689  	SpamCheckAPIKey                                       *string            `url:"spam_check_api_key,omitempty" json:"spam_check_api_key,omitempty"`
   690  	SpamCheckEndpointEnabled                              *bool              `url:"spam_check_endpoint_enabled,omitempty" json:"spam_check_endpoint_enabled,omitempty"`
   691  	SpamCheckEndpointURL                                  *string            `url:"spam_check_endpoint_url,omitempty" json:"spam_check_endpoint_url,omitempty"`
   692  	SuggestPipelineEnabled                                *bool              `url:"suggest_pipeline_enabled,omitempty" json:"suggest_pipeline_enabled,omitempty"`
   693  	TerminalMaxSessionTime                                *int               `url:"terminal_max_session_time,omitempty" json:"terminal_max_session_time,omitempty"`
   694  	Terms                                                 *string            `url:"terms,omitempty" json:"terms,omitempty"`
   695  	ThrottleAuthenticatedAPIEnabled                       *bool              `url:"throttle_authenticated_api_enabled,omitempty" json:"throttle_authenticated_api_enabled,omitempty"`
   696  	ThrottleAuthenticatedAPIPeriodInSeconds               *int               `url:"throttle_authenticated_api_period_in_seconds,omitempty" json:"throttle_authenticated_api_period_in_seconds,omitempty"`
   697  	ThrottleAuthenticatedAPIRequestsPerPeriod             *int               `url:"throttle_authenticated_api_requests_per_period,omitempty" json:"throttle_authenticated_api_requests_per_period,omitempty"`
   698  	ThrottleAuthenticatedDeprecatedAPIEnabled             *bool              `url:"throttle_authenticated_deprecated_api_enabled,omitempty" json:"throttle_authenticated_deprecated_api_enabled,omitempty"`
   699  	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     *int               `url:"throttle_authenticated_deprecated_api_period_in_seconds,omitempty" json:"throttle_authenticated_deprecated_api_period_in_seconds,omitempty"`
   700  	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   *int               `url:"throttle_authenticated_deprecated_api_requests_per_period,omitempty" json:"throttle_authenticated_deprecated_api_requests_per_period,omitempty"`
   701  	ThrottleAuthenticatedFilesAPIEnabled                  *bool              `url:"throttle_authenticated_files_api_enabled,omitempty" json:"throttle_authenticated_files_api_enabled,omitempty"`
   702  	ThrottleAuthenticatedFilesAPIPeriodInSeconds          *int               `url:"throttle_authenticated_files_api_period_in_seconds,omitempty" json:"throttle_authenticated_files_api_period_in_seconds,omitempty"`
   703  	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        *int               `url:"throttle_authenticated_files_api_requests_per_period,omitempty" json:"throttle_authenticated_files_api_requests_per_period,omitempty"`
   704  	ThrottleAuthenticatedGitLFSEnabled                    *bool              `url:"throttle_authenticated_git_lfs_enabled,omitempty" json:"throttle_authenticated_git_lfs_enabled,omitempty"`
   705  	ThrottleAuthenticatedGitLFSPeriodInSeconds            *int               `url:"throttle_authenticated_git_lfs_period_in_seconds,omitempty" json:"throttle_authenticated_git_lfs_period_in_seconds,omitempty"`
   706  	ThrottleAuthenticatedGitLFSRequestsPerPeriod          *int               `url:"throttle_authenticated_git_lfs_requests_per_period,omitempty" json:"throttle_authenticated_git_lfs_requests_per_period,omitempty"`
   707  	ThrottleAuthenticatedPackagesAPIEnabled               *bool              `url:"throttle_authenticated_packages_api_enabled,omitempty" json:"throttle_authenticated_packages_api_enabled,omitempty"`
   708  	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       *int               `url:"throttle_authenticated_packages_api_period_in_seconds,omitempty" json:"throttle_authenticated_packages_api_period_in_seconds,omitempty"`
   709  	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     *int               `url:"throttle_authenticated_packages_api_requests_per_period,omitempty" json:"throttle_authenticated_packages_api_requests_per_period,omitempty"`
   710  	ThrottleAuthenticatedWebEnabled                       *bool              `url:"throttle_authenticated_web_enabled,omitempty" json:"throttle_authenticated_web_enabled,omitempty"`
   711  	ThrottleAuthenticatedWebPeriodInSeconds               *int               `url:"throttle_authenticated_web_period_in_seconds,omitempty" json:"throttle_authenticated_web_period_in_seconds,omitempty"`
   712  	ThrottleAuthenticatedWebRequestsPerPeriod             *int               `url:"throttle_authenticated_web_requests_per_period,omitempty" json:"throttle_authenticated_web_requests_per_period,omitempty"`
   713  	ThrottleIncidentManagementNotificationEnabled         *bool              `url:"throttle_incident_management_notification_enabled,omitempty" json:"throttle_incident_management_notification_enabled,omitempty"`
   714  	ThrottleIncidentManagementNotificationPerPeriod       *int               `url:"throttle_incident_management_notification_per_period,omitempty" json:"throttle_incident_management_notification_per_period,omitempty"`
   715  	ThrottleIncidentManagementNotificationPeriodInSeconds *int               `url:"throttle_incident_management_notification_period_in_seconds,omitempty" json:"throttle_incident_management_notification_period_in_seconds,omitempty"`
   716  	ThrottleProtectedPathsEnabled                         *bool              `url:"throttle_protected_paths_enabled_enabled,omitempty" json:"throttle_protected_paths_enabled,omitempty"`
   717  	ThrottleProtectedPathsPeriodInSeconds                 *int               `url:"throttle_protected_paths_enabled_period_in_seconds,omitempty" json:"throttle_protected_paths_period_in_seconds,omitempty"`
   718  	ThrottleProtectedPathsRequestsPerPeriod               *int               `url:"throttle_protected_paths_enabled_requests_per_period,omitempty" json:"throttle_protected_paths_per_period,omitempty"`
   719  	ThrottleUnauthenticatedAPIEnabled                     *bool              `url:"throttle_unauthenticated_api_enabled,omitempty" json:"throttle_unauthenticated_api_enabled,omitempty"`
   720  	ThrottleUnauthenticatedAPIPeriodInSeconds             *int               `url:"throttle_unauthenticated_api_period_in_seconds,omitempty" json:"throttle_unauthenticated_api_period_in_seconds,omitempty"`
   721  	ThrottleUnauthenticatedAPIRequestsPerPeriod           *int               `url:"throttle_unauthenticated_api_requests_per_period,omitempty" json:"throttle_unauthenticated_api_requests_per_period,omitempty"`
   722  	ThrottleUnauthenticatedDeprecatedAPIEnabled           *bool              `url:"throttle_unauthenticated_deprecated_api_enabled,omitempty" json:"throttle_unauthenticated_deprecated_api_enabled,omitempty"`
   723  	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   *int               `url:"throttle_unauthenticated_deprecated_api_period_in_seconds,omitempty" json:"throttle_unauthenticated_deprecated_api_period_in_seconds,omitempty"`
   724  	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod *int               `url:"throttle_unauthenticated_deprecated_api_requests_per_period,omitempty" json:"throttle_unauthenticated_deprecated_api_requests_per_period,omitempty"`
   725  	ThrottleUnauthenticatedEnabled                        *bool              `url:"throttle_unauthenticated_enabled,omitempty" json:"throttle_unauthenticated_enabled,omitempty"`
   726  	ThrottleUnauthenticatedFilesAPIEnabled                *bool              `url:"throttle_unauthenticated_files_api_enabled,omitempty" json:"throttle_unauthenticated_files_api_enabled,omitempty"`
   727  	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        *int               `url:"throttle_unauthenticated_files_api_period_in_seconds,omitempty" json:"throttle_unauthenticated_files_api_period_in_seconds,omitempty"`
   728  	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      *int               `url:"throttle_unauthenticated_files_api_requests_per_period,omitempty" json:"throttle_unauthenticated_files_api_requests_per_period,omitempty"`
   729  	ThrottleUnauthenticatedGitLFSEnabled                  *bool              `url:"throttle_unauthenticated_git_lfs_enabled,omitempty" json:"throttle_unauthenticated_git_lfs_enabled,omitempty"`
   730  	ThrottleUnauthenticatedGitLFSPeriodInSeconds          *int               `url:"throttle_unauthenticated_git_lfs_period_in_seconds,omitempty" json:"throttle_unauthenticated_git_lfs_period_in_seconds,omitempty"`
   731  	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        *int               `url:"throttle_unauthenticated_git_lfs_requests_per_period,omitempty" json:"throttle_unauthenticated_git_lfs_requests_per_period,omitempty"`
   732  	ThrottleUnauthenticatedPackagesAPIEnabled             *bool              `url:"throttle_unauthenticated_packages_api_enabled,omitempty" json:"throttle_unauthenticated_packages_api_enabled,omitempty"`
   733  	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     *int               `url:"throttle_unauthenticated_packages_api_period_in_seconds,omitempty" json:"throttle_unauthenticated_packages_api_period_in_seconds,omitempty"`
   734  	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   *int               `url:"throttle_unauthenticated_packages_api_requests_per_period,omitempty" json:"throttle_unauthenticated_packages_api_requests_per_period,omitempty"`
   735  	ThrottleUnauthenticatedPeriodInSeconds                *int               `url:"throttle_unauthenticated_period_in_seconds,omitempty" json:"throttle_unauthenticated_period_in_seconds,omitempty"`
   736  	ThrottleUnauthenticatedRequestsPerPeriod              *int               `url:"throttle_unauthenticated_requests_per_period,omitempty" json:"throttle_unauthenticated_requests_per_period,omitempty"`
   737  	ThrottleUnauthenticatedWebEnabled                     *bool              `url:"throttle_unauthenticated_web_enabled,omitempty" json:"throttle_unauthenticated_web_enabled,omitempty"`
   738  	ThrottleUnauthenticatedWebPeriodInSeconds             *int               `url:"throttle_unauthenticated_web_period_in_seconds,omitempty" json:"throttle_unauthenticated_web_period_in_seconds,omitempty"`
   739  	ThrottleUnauthenticatedWebRequestsPerPeriod           *int               `url:"throttle_unauthenticated_web_requests_per_period,omitempty" json:"throttle_unauthenticated_web_requests_per_period,omitempty"`
   740  	TimeTrackingLimitToHours                              *bool              `url:"time_tracking_limit_to_hours,omitempty" json:"time_tracking_limit_to_hours,omitempty"`
   741  	TwoFactorGracePeriod                                  *int               `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
   742  	UniqueIPsLimitEnabled                                 *bool              `url:"unique_ips_limit_enabled,omitempty" json:"unique_ips_limit_enabled,omitempty"`
   743  	UniqueIPsLimitPerUser                                 *int               `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
   744  	UniqueIPsLimitTimeWindow                              *int               `url:"unique_ips_limit_time_window,omitempty" json:"unique_ips_limit_time_window,omitempty"`
   745  	UpdatingNameDisabledForUsers                          *bool              `url:"updating_name_disabled_for_users,omitempty" json:"updating_name_disabled_for_users,omitempty"`
   746  	UsagePingEnabled                                      *bool              `url:"usage_ping_enabled,omitempty" json:"usage_ping_enabled,omitempty"`
   747  	UsagePingFeaturesEnabled                              *bool              `url:"usage_ping_features_enabled,omitempty" json:"usage_ping_features_enabled,omitempty"`
   748  	UserDeactivationEmailsEnabled                         *bool              `url:"user_deactivation_emails_enabled,omitempty" json:"user_deactivation_emails_enabled,omitempty"`
   749  	UserDefaultExternal                                   *bool              `url:"user_default_external,omitempty" json:"user_default_external,omitempty"`
   750  	UserDefaultInternalRegex                              *string            `url:"user_default_internal_regex,omitempty" json:"user_default_internal_regex,omitempty"`
   751  	UserEmailLookupLimit                                  *int               `url:"user_email_lookup_limit,omitempty" json:"user_email_lookup_limit,omitempty"`
   752  	UserOauthApplications                                 *bool              `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"`
   753  	UserShowAddSSHKeyMessage                              *bool              `url:"user_show_add_ssh_key_message,omitempty" json:"user_show_add_ssh_key_message,omitempty"`
   754  	UsersGetByIDLimit                                     *int               `url:"users_get_by_id_limit,omitempty" json:"users_get_by_id_limit,omitempty"`
   755  	UsersGetByIDLimitAllowlistRaw                         *string            `url:"users_get_by_id_limit_allowlist_raw,omitempty" json:"users_get_by_id_limit_allowlist_raw,omitempty"`
   756  	VersionCheckEnabled                                   *bool              `url:"version_check_enabled,omitempty" json:"version_check_enabled,omitempty"`
   757  	WebIDEClientsidePreviewEnabled                        *bool              `url:"web_ide_clientside_preview_enabled,omitempty" json:"web_ide_clientside_preview_enabled,omitempty"`
   758  	WhatsNewVariant                                       *string            `url:"whats_new_variant,omitempty" json:"whats_new_variant,omitempty"`
   759  	WikiPageMaxContentBytes                               *int               `url:"wiki_page_max_content_bytes,omitempty" json:"wiki_page_max_content_bytes,omitempty"`
   760  }
   761  
   762  // UpdateSettings updates the application settings.
   763  //
   764  // GitLab API docs:
   765  // https://docs.gitlab.com/ee/api/settings.html#change-application-settings
   766  func (s *SettingsService) UpdateSettings(opt *UpdateSettingsOptions, options ...RequestOptionFunc) (*Settings, *Response, error) {
   767  	req, err := s.client.NewRequest(http.MethodPut, "application/settings", opt, options)
   768  	if err != nil {
   769  		return nil, nil, err
   770  	}
   771  
   772  	as := new(Settings)
   773  	resp, err := s.client.Do(req, as)
   774  	if err != nil {
   775  		return nil, resp, err
   776  	}
   777  
   778  	return as, resp, nil
   779  }
   780  

View as plain text